我对 gRPC 很陌生。我正在考虑在我的用例中使用 gRPC(Java)进行节点间(服务器)通信:
- 我有自己的应用程序逻辑在每个节点上做一些簿记工作;
- 一个节点需要与其他人通信以达成某种共识(应用程序逻辑的一部分),这意味着一个节点需要同时拥有客户端和服务器;
- 那么我怎么能做到这一点呢?在我调用 server.awaitTerminate() 之后,服务器似乎被阻塞了,对吧?但是我们在java中也有异步版本的gRPC服务器吗?我打赌是的,但我还不确定如何利用它。
例如,我有节点 A、B、C。我需要先启动 gRPC serverA、serverB、serverC,对于每个服务器说 A,我需要客户端连接到 B 和 C。除了通信部分,如果需要,应用程序(比如在节点 A 中)逻辑将能够通过相应的客户端(到服务器 B 和 C)向其他节点(比如 B 和 C)发送消息;当然,当来自 B 的请求时,应用程序逻辑会得到通知和 C(因为它本身就是一个服务器)。
我已经在网上搜索了几天,并浏览了 grpc/grpc-java 相关材料和代码示例。但是,我发现没有太多代码示例来展示利用 gRPC 的最佳实践和模式……我真的很想听听您可能有的任何建议……
提前致谢!