【问题标题】:server error: rpc error: code = Unavailable desc = transport is closing" in gRPC服务器错误:rpc 错误:代码 = 不可用 desc = 传输正在关闭”在 gRPC
【发布时间】:2021-07-24 01:22:54
【问题描述】:

我有一个 grpc 服务器和一个客户端(在我的博客项目中)。当我运行服务器时,似乎一切正常,当我运行客户端时,我遇到了这个错误,服务器和客户端都关闭了。

rpc error: code = Unavailable desc = transport is closing

我认为错误与这段代码有关:

func newPost(c proto_blog.BlogServiceClient) {
    fmt.Println("Starting to do a Unary RPC")
    req := &proto_blog.ReqNewPost{
        Title: "How can we make an gRPC server?",
        Content: "First You have to.....\nAt the end, you have to....",
        Author: "Arsham Ahora",
        Date: fmt.Sprint(time.Now()),
    }

    res, err := c.NewPost(context.Background(), req)
    if err != nil {
        log.Fatalf("Error calling greet server: %v", err)
    }
    log.Printf("Response from Greet: %v", res.Id)
}

** 我注意到这个错误与您是使用 Unary 还是 Streaming 无关。

【问题讨论】:

    标签: protocol-buffers grpc grpc-go


    【解决方案1】:

    无论如何,我认为您发送了错误的代码,正如错误所说:“传输正在关闭”您的连接已关闭,您必须在服务器中找到退出服务器的位置并进行处理。

    【讨论】:

      【解决方案2】:

      我发现在服务器代码中我在返回响应之前有这样的代码:

      log.Fatalf("Error happend: %v", e)
      

      我这样更改了我的代码:

      if e != nil {
          log.Fatalf("Error happend: %v", e)
      }
      

      该错误没有发生,但 log.Fatalf() 损坏了我的应用程序。

      关于更多细节,这不是直接来自 grpc 部分的错误,这是因为我的应用程序在向 gRPC 客户端返回任何响应之前就崩溃了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-26
        • 1970-01-01
        • 2019-01-19
        • 2021-05-28
        • 1970-01-01
        • 2019-09-25
        • 2021-07-30
        • 1970-01-01
        相关资源
        最近更新 更多