最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

gRPC超時攔截器實現(xiàn)示例

 更新時間:2022年06月15日 16:49:03   作者:尹東勛  
這篇文章主要為大家介紹了gRPC超時攔截器實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

介紹

本文介紹如何通過 rk-boot 快速搭建 gRPC 超時攔截器。

什么是 gRPC 超時攔截器?

攔截器會攔截 gRPC 請求,并根據策略返回超時錯誤。

安裝

go get github.com/rookie-ninja/rk-boot
go get github.com/rookie-ninja/rk-grpc

快速開始

使用 rk-boot 啟動的 gRPC 服務。

支持全局超時和 API 超時設定。

1.創(chuàng)建 boot.yaml

boot.yaml 文件告訴 rk-boot 如何啟動 gRPC 服務。

為了驗證,我們啟動了 commonService,commonService 里包含了一系列常用 API,例如 /rk/v1/gc。

設定全局超時為 5秒,讓 GC 的超時時間定位 1 毫秒,GC 一般會超過 1 毫秒。

---
grpc:
  - name: greeter                                   # Required
    port: 8080                                      # Required
    enabled: true                                   # Required
    commonService:
      enabled: true                                 # Optional, Enable common service for testing
    interceptors:
      timeout:
        enabled: true                               # Optional, default: false
        timeoutMs: 5000                             # Optional, default: 5000
        paths: 
          - path: "/rk.api.v1.RkCommonService/Gc"   # Optional, default: ""
            timeoutMs: 1                            # Optional, default: 5000

2.創(chuàng)建 main.go

// Copyright (c) 2021 rookie-ninja
//
// Use of this source code is governed by an Apache-style
// license that can be found in the LICENSE file.
package main
import (
	"context"
	"github.com/rookie-ninja/rk-boot"
        _ "github.com/rookie-ninja/rk-grpc/boot"
)
// Application entrance.
func main() {
	// Create a new boot instance.
	boot := rkboot.NewBoot()
	// Bootstrap
	boot.Bootstrap(context.Background())
	// Wait for shutdown sig
	boot.WaitForShutdownSig(context.Background())
}

3.啟動 main.go

$ go run main.go

4.驗證

發(fā)送 GC 請求。

$ grpcurl -plaintext localhost:8080 rk.api.v1.RkCommonService.Gc
ERROR:
  Code: Canceled
  Message: Request timed out!
  Details:
  1)	{"@type":"type.googleapis.com/rk.api.v1.ErrorDetail","code":1,"message":"[from-grpc] Request timed out!","status":"Canceled"}
$ curl -X GET localhost:8080/rk/v1/gc
{
    "error":{
        "code":408,
        "status":"Request Timeout",
        "message":"Request timed out!",
        "details":[
            {
                "code":1,
                "status":"Canceled",
                "message":"[from-grpc] Request timed out!"
            }
        ]
    }
}

以上就是gRPC超時攔截器實現(xiàn)示例的詳細內容,更多關于gRPC超時攔截器的資料請關注腳本之家其它相關文章!

相關文章

  • golang遍歷時修改被遍歷對象的示例詳解

    golang遍歷時修改被遍歷對象的示例詳解

    這篇文章主要介紹了golang遍歷時修改被遍歷對象的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Golang實現(xiàn)自己的Redis(有序集合跳表)實例探究

    Golang實現(xiàn)自己的Redis(有序集合跳表)實例探究

    這篇文章主要為大家介紹了Golang實現(xiàn)自己的Redis(有序集合跳表)實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Golang語言JSON解碼函數(shù)Unmarshal的使用

    Golang語言JSON解碼函數(shù)Unmarshal的使用

    本文主要介紹了Golang語言JSON解碼函數(shù)Unmarshal的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Golang并發(fā)繞不開的重要組件之Goroutine詳解

    Golang并發(fā)繞不開的重要組件之Goroutine詳解

    Goroutine、Channel、Context、Sync都是Golang并發(fā)編程中的幾個重要組件,這篇文中主要為大家介紹了Goroutine的相關知識,需要的可以參考一下
    2023-06-06
  • Go工具鏈之go tool cover使用方法和示例詳解

    Go工具鏈之go tool cover使用方法和示例詳解

    go tool cover是Go工具鏈中的一個命令,作用是分析測試用例的代碼覆蓋率,本文將對go tool cover 作用,使用方法和使用場景作一個簡單的介紹,感興趣的同學可以參考閱讀一下
    2023-07-07
  • 聊聊Golang性能分析工具pprof的使用

    聊聊Golang性能分析工具pprof的使用

    對于線上穩(wěn)定運行的服務來說,?可能會遇到?cpu、mem?利用率升高的問題,那我們就需要使用?pprof?工具來進行性能分析,所以本文就來和大家講講pprof的具體使用吧
    2023-05-05
  • Go 每日一庫之termtables的使用

    Go 每日一庫之termtables的使用

    本文主要介紹了Go 每日一庫之termtables的使用,termtables處理表格形式數(shù)據的輸出。是一個很小巧的工具庫。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Go語言如何輕松編寫高效可靠的并發(fā)程序

    Go語言如何輕松編寫高效可靠的并發(fā)程序

    這篇文章主要為大家介紹了Go語言輕松編寫高效可靠的并發(fā)程序實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • golang?gorm學習之如何指定數(shù)據表

    golang?gorm學習之如何指定數(shù)據表

    在sql中首先要指定是從哪張表中查詢,所以這篇文章小編就來帶大家一起看一下gorm是如何根據model來自動解析表名的,感興趣的小伙伴可以了解下
    2023-08-08
  • Golang使用反射的動態(tài)方法調用詳解

    Golang使用反射的動態(tài)方法調用詳解

    Go是一種靜態(tài)類型的語言,提供了大量的安全性和性能。這篇文章主要和大家介紹一下Golang使用反射的動態(tài)方法調用,感興趣的小伙伴可以了解一下
    2023-03-03

最新評論

太湖县| 海安县| 丽江市| 甘洛县| 连城县| 株洲县| 邢台县| 东乡族自治县| 名山县| 永清县| 酉阳| 太保市| 玉田县| 佛教| 宁波市| 启东市| 青阳县| 克山县| 女性| 隆昌县| 宜兴市| 长子县| 大庆市| 吉木乃县| 临城县| 昆明市| 武夷山市| 区。| 蒙自县| 永城市| 台中县| 沂源县| 聂荣县| 南漳县| 台湾省| 蚌埠市| 惠州市| 朝阳市| 黄冈市| 德格县| 克拉玛依市|