proto编译引用外部包问题
proto编译引用外部包问题在test.proto文件中引用了一个外部包: 1import "google/api/annotations.proto"; 当使用命令编译的时候提示找不到包: 123# protoc --go_out=plugins=grpc:. ./test.protogoogle/api/annotations.proto: File not found.test.proto:5:1: Import "google/api/annotations.proto" was not found or had...
Nginx配置gRPC协议
Nginx配置gRPC请求Nginx 在 1.13.10 中,新增了对gRPC的原生支持。有了对 gRPC 的支持,NGINX 就可以代理 gRPC TCP 连接,还可以终止、检查和跟踪 gRPC 的方法调用。 Nginx需要引入模块:--with-http_ssl_module --with-http_v2_module 为已经安装的Nginx添加新的编译模块: 进入解压的Nginx目录 执行命令:./configure --with-http_ssl_module --with-http_v2_module 执行命令:make && make install。执行make install时会将原有的文件替换掉,且会备份之前的文件 使用基础使用方式在客户端和服务器端之间插入 NGINX,NGINX 为服务器端的应用程序提供了一个稳定可靠的网关。 NGINX 使用 HTTP 服务器监听 gRPC 流量,并使用 grpc_pass 指令代理流量。 为 NGINX 创建以下代理配置,在端口 80 上侦听未加密的 gRPC 流量并将请求转发到端口 50051...
gRPC配置参数使用记录
参考: 参数配置 service_config 重试
gRPC协议在K8S环境下的负载问题
gRPC协议在K8S环境下的负载问题参考: https://www.lixueduan.com/posts/grpc/13-loadbalance-on-k8s/ https://www.cyub.vip/2021/11/09/k8s%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%83%A8%E7%BD%B2grpc%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E6%A1%88/ 概述系统中多个服务间的调用用的是 gRPC 进行通信,最初没考虑到负载均衡的问题,因为用的是 Kubernetes,想的是直接用 K8s 的 Service 不就可以实现负载均衡吗。 但是真正测试的时候才发现,所有流量都进入到了某一个 Pod,这时才意识到负载均衡可能出现了问题。 因为 gRPC 是基于 HTTP/2 之上的,而 HTTP/2 被设计为一个长期存在的 TCP 连接,所有请求都通过该连接进行多路复用。 这样虽然减少了管理连接的开销,但是在负载均衡上又引出了新的问题。 由于我们无法在连接层面进行均衡,为了做 gRPC...