【发布时间】:2018-05-16 02:20:45
【问题描述】:
OpenStack 使用消息传递(我认为默认情况下是 RabbitMQ?)在节点之间进行通信。另一方面,Kubernetes(谷歌内部 Borg 的血统)使用 RPC。 Docker 的 swarm 也使用 RPC。两者都是基于 gRPC/protofbuf 的,这似乎在 Google 内部也被大量使用。
我了解像 Kafka 这样的消息传递平台被广泛用于流数据和日志聚合。但是 OpenStack、Kubernetes、Docker Swarm 等系统需要节点之间的特定交互,而 RPC 似乎是一个自然的选择,因为它允许为特定操作定义 API。
OpenStack 在评估了消息传递与 RPC 的优缺点后是否选择了消息传递?有没有比较好的博客/系统评论比较使用消息传递与 RPC 的大型系统的成功?在可扩展的分布式系统中,消息传递是否比 RPC 更具优势?
【问题讨论】:
-
我会注意到有一点点错误的二分法。在 RPC 世界中,消息队列仍然有用,例如 gRPC 的 pubsub。但它们不是唯一的选择。
标签: rabbitmq kubernetes openstack docker-swarm grpc