grpc对纳茨或Kafka有什么意义吗?

bsxbgnwa  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(435)

很长一段时间以来,当谈到微服务架构时,我首先想到的是nats和kafka。但最近我在dotnetcore中发现了这个grpc模板,它吸引了我的注意力。我读了很多关于它的书,看了很多视频,但我不认为这些都能正确地处理grpc,因为它们通常会对比grpc和消息代理或rest之类的协议,我猜这是非常不合适的,尽管soap在这里是相关的。我的假设是grpc是soap的一个现代版本,由于它的协议缓冲区,它的性能更好,实现的麻烦更少。我认为grpc绝对不能与Kafka或nats相比。而且它不能像soap那样替代restful服务。
现在,问题是,我的假设在多大程度上是正确的?例如,在选择集群上节点之间的通信桥时,我现在是否必须将gprc放在选项中(nats、kafkam rabbit等),或者在创建web代理以将外部请求桥接到我的微服务时是否应该考虑这一点?
最后,关于实时通信,grpc能完全取代websocket/socket.io/signal吗?它取代了什么?

ni65a41a

ni65a41a1#

您的直觉是正确的,grpc无法与kafka、rabbit等异步排队系统相比。
然而,它是通常通过soap、rpc、rest等实现的同步服务器到服务器通信技术的替代品,您希望从另一台服务器获得响应,而不是将消息触发到队列中,然后有效地忘记消息。

vwoqyblh

vwoqyblh2#

grpc绝对是实时通信的一个选择。它可以取代套接字通信,如果你不流到浏览器(没有grpc支持),看看双向流支持。
关于替换kafka/rabbit,grpc可以用作pubsub系统,因为它支持双向流,但我不推荐它。

相关问题