一直以来,提到微服务架构,NATS和Kafka是我最先想到的选择。但最近我在 dotnet core 中发现了这个 gRPC 模板,这引起了我的注意。我阅读了很多关于它的内容并观看了很多视频,但我认为其中任何一个都不能正确解决 gRPC,因为它们通常会在 gRPC 和消息代理或协议(如 REST)之间形成对比,尽管 SOAP 可能是相关的,但我认为这是非常不合适的这里。我的假设是 gRPC 是 SOAP 的现代版本,由于它的协议缓冲区,它具有更好的性能和更少的实现麻烦。而且我认为 gRPC 无法与 Kafka 或 NATS 相提并论。而且它不能像 SOAP 那样替代 RESTful 服务。
现在的问题是,我的假设在多大程度上是正确的?例如,在选择集群节点之间的通信桥时,我现在是否必须将 gPRC 放在我的选项中(NATS、Kafkam Rabbit 等),还是在创建 Web 代理以桥接外部请求时考虑到我的微服务?
最后,实时通信怎么样,gRPC能否完全替代websocket/socket.io/signalR?它取代了什么?