跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Nginx 转发 grpc 求助
未分類
11 9 月 2020

Nginx 转发 grpc 求助

Nginx 转发 grpc 求助

資深大佬 : vanis 5

运行环境 OS:ubuntu 18.04 nginx:1.17.10 grpcio:1.31

问题描述: 用 nginx 做了 grpc 服务的转发 /负载均衡,client 并发调用时随机出现 status = StatusCode.UNAVAILABLE details = “GOAWAY received” 同样并发请求数量,直接调用 grpc 服务器地址,不通过 nginx 转发则不会出现问题,应该不是服务端设置的问题。

nginx 配置:

upstream grpcservers { server xxx.xxx.xxx.1:50051; server xxx.xxx.xxx.2:50051; }

server{ listen 8080 http2;

location /foo. { grpc_pass grpc://grpcservers; } 

}

请教各位大佬有何建议。

大佬有話說 (9)

  • 資深大佬 : joesonw

    client maxRetry

  • 主 資深大佬 : vanis

    大佬能展开说下么?查了下 nginx 的文档,只发现了 grpc_next_upstream_tries 这个选项跟 retry 有关,设置了下没反应。

  • 資深大佬 : rimutuyuan

    之前我们 nginx + grpc 压测时也出现过很多解决不了的连接失败问题,设置 max request timeout 各种相关的参数都尝试过

    后来换了 envoy

  • 資深大佬 : JmmBite

    更改端口回收策略:tcp_tw_recycle

    https://juejin.im/post/6844903809534148622

  • 資深大佬 : godgrp

    location 不能用 /foo , 你可以去看下 grpc 的请求路径是什么,可以发现他的请求路径类似是 “/你的服务 package 名 /…”,一种你按你的服务名去转发,另一种使用 nginx 的四层转发

  • 資深大佬 : puncsky

    envoy +1

  • 主 資深大佬 : vanis

    @godgrp
    感谢细心,/foo.是服务包的通配符。。。也试过直接用 /Package.module/foo 的详细路径,没解决问题。

  • 主 資深大佬 : vanis

    @JmmBite
    感谢指出,看了下解决方案。要动服务器设置,感觉代价太大了。。。
    反正应用场景是集群计算的任务分配,不如在客户端多写点代码实现轮询算了。

  • 主 資深大佬 : vanis

    @rimutuyuan
    感谢经验分享,貌似只能弃坑了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具