使用 ServerStreaming rpc 调用长 运行 通知通道

Using a ServerStreaming rpc call for long running notifications channel

我正在考虑使用 gRPC 服务来促进两个服务之间的通知。 (顺便说一句,我将使用 protobuf-net/protobuf-net.Grpc)目的是客户端服务将建立并维护与服务器服务的连接,并随着时间的推移对通知做出反应。在没有网络故障、没有服务器重启等的完美技术世界中,想法是建立一次此连接并在应用程序的整个生命周期内保持服务器流式调用。显然,在现实世界中,我们需要处理重试、重新连接、故障转移等问题。

我的问题是:在 grpc 中调用服务器流调用并长时间保持调用打开是适当使用服务器流调用,还是滥用该功能?

这是 gRPC 的一个完美用例。 gRPC 就是为这种用途而设计的。

是的,当与服务器的连接中断时,您必须处理重新连接或更确切地说是重新建立流。