Golang gRPC Retry 未生效,不知是哪的问题,请教大佬,谢谢。

题目描述

使用 grpc.WithDefaultServiceConfig(RetryPolicy) 重试不生效。

题目来源及自己的思路

client

// 设置 retry 配置
grpc.WithDefaultServiceConfig(RetryPolicy),
// 重试配置
var RetryPolicy = `{
"methodConfig": [{ "name": [{"service": "hello.Hello"}], "waitForReady": true, "retryPolicy": { "MaxAttempts": 4, "InitialBackoff": "0.1s", "MaxBackoff": "1s", "BackoffMultiplier": 2.0, "RetryableStatusCodes": [ "UNAVAILABLE" ] } }]}`

server

func (h *HelloController) SayHello(ctx context.Context, in *hello.HelloRequest) (*hello.HelloResponse, error) {
   return nil, status.Errorf(codes.Unavailable, "Unavailable")
}

你期待的结果是什么?实际看到的错误信息又是什么?

调用 SayHello 期待会出现重试,实际上没有重试。

请大佬指点,感谢!!!

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进