通常人们只会在这一层之上工作 - 但我现在正在处理这一层,我需要将 PUB/SUB 多对多消息传递关系映射到 IPC 或 TCP 基础设施 - 自然,我只能有 1 个发布者绑定每个地址。
我能想到的替代方案各有各的缺点:
- 添加守护程序并路由消息。这会在消息传递过程中增加单点故障以及附加层。
- 添加注册表。添加单点故障,也无法通知新启动的进程。
- 禁止同一主题的多个发布者 - 在安排架构时失去一些灵活性。
- 预定义端口范围和 IPC 地址范围,每个进程都会定期重试连接它们。在服务发现上添加延迟,并且所有端口都必须从操作系统可用。
那么像 JMS、LBM 这样的现代消息传递软件包是如何做到这一点的呢?我知道 Tibco RV 和路透社正在通过方法 1) - 无论如何我可以避免这样的守护进程?
如果重要的话,我正在使用 Java。
谢谢。