我正在使用以下代码片段来启动一个工作正常的grpc服务器。但每当我需要将新代码部署到服务器时,重启服务器的正确方法是什么?我应该杀死服务器进程,并让客户端处理错误消息?或者有没有办法像unicorn那样启用主/工作模式?
s = GRPC::RpcServer.new
s.run_till_terminated
答案 0 :(得分:0)
没有这样的支持来推出内置于ruby-gRPC的新部署。
但是,具有多个服务器实例的应用程序应该可以进行滚动重新启动。例如,请注意,如果gRPC连接到服务器并开始向其发送RPC并且该服务器被关闭,那么gRPC将在内部注意到连接变坏并且它将尝试在新连接上创建其下一个RPC(默认情况下) gRPC行为将在下一个可以成功连接的解析地址上执行下一个RPC,这可能意味着重新连接到连接刚刚破坏的同一地址。另请注意,gRPC服务器默认使用SO_REUSEPORT
,因此可以在同一端口上运行多个服务器。