0

通常人们只会在这一层之上工作 - 但我现在正在处理这一层,我需要将 PUB/SUB 多对多消息传递关系映射到 IPC 或 TCP 基础设施 - 自然,我只能有 1 个发布者绑定每个地址。

我能想到的替代方案各有各的缺点:

  1. 添加守护程序并路由消息。这会在消息传递过程中增加单点故障以及附加层。
  2. 添加注册表。添加单点故障,也无法通知新启动的进程。
  3. 禁止同一主题的多个发布者 - 在安排架构时失去一些灵活性。
  4. 预定义端口范围和 IPC 地址范围,每个进程都会定期重试连接它们。在服务发现上添加延迟,并且所有端口都必须从操作系统可用。

那么像 JMS、LBM 这样的现代消息传递软件包是如何做到这一点的呢?我知道 Tibco RV 和路透社正在通过方法 1) - 无论如何我可以避免这样的守护进程?

如果重要的话,我正在使用 Java。

谢谢。

4

1 回答 1

1

我会尝试通过在每台机器上创建一个本地守护进程来解决请求,该守护进程在本地使用 jms,然后提供持久性。

我会使用 TCP 广播到已知端口来通告主题和队列关联到 IP 地址和端口。然后,您可以建立与通告端口的直接连接,以发布或订阅事务中的消息。

于 2014-12-11T19:46:33.647 回答