【发布时间】:2014-04-06 04:42:46
【问题描述】:
我将在 ZeroMQ 上实现一个分布式消息总线,并试图使其尽可能高效。我的要求是:
- 多个进程连接到一条总线,其中一些在同一台机器上,一些不在。
- 进程可以订阅某些主题
- 很遗憾,没有多播(生产环境不支持 - 亚马逊)
- 我需要多语言灵魂(至少对于 C++、Haskell 和 Python)
我正在考虑的方法是:
1。目录服务+网状拓扑
- 有一个目录服务,其中包含所有已连接进程及其地址的列表。
- 每个进程在启动时都连接到 DS 并询问其他进程的地址
- 每个进程都有一个连接到所有其他进程的 Pub 和 Sub 套接字(网状拓扑)
2。经纪人
- 所有进程都连接到使用 Pub 套接字分发消息的代理。
是否有任何其他/更好的架构可以与 ZeroMQ 一起使用来创建这样的消息总线?
【问题讨论】:
-
看看 Vert.x (vertx.io) 它可以帮助你实现一个服务总线。
-
在github.com/p14n/vert-zeromq 有一个 ZMQ 和 Vert.x 的桥梁
-
感谢您的回复!不幸的是,您的解决方案是针对 Java 的,但我需要它是多语言的(一些组件使用 C++,一些使用 Haskell,一些使用 Python)。我更新了问题。
标签: amazon-web-services architecture ipc zeromq dbus