【发布时间】:2023-07-24 12:40:01
【问题描述】:
通常人们只会在这一层之上工作 - 但我现在正在处理这一层,我需要将 PUB/SUB 多对多消息传递关系映射到 IPC 或 TCP 基础设施 - 自然,我只能每个地址 1 个发布者绑定。
我能想到的替代方案各有各的缺点:
- 添加守护程序并路由消息。这会在消息传递过程中增加单点故障以及额外的层。
- 添加注册表。添加单点故障,也无法通知新启动的进程。
- 不允许多个发布者针对同一主题 - 在安排架构方面失去了一些灵活性。
- 预定义端口范围和IPC地址范围,每个进程定期重试连接它们。添加服务发现延迟,并且所有端口都必须可从操作系统获得。
那么像 JMS、LBM 这样的现代消息传递软件包是如何做到这一点的呢?我知道 Tibco RV 和 Reuters 正在通过方法 1) - 无论如何我可以避免这样的守护进程?
如果重要的话,我正在使用 Java。
谢谢。
【问题讨论】:
-
你考虑过多播UDP吗?查看 JGroups 以了解消息传递提供程序的示例。
-
@SimonC 好吧,首要任务是能够使其适用于 IPC 通道,以便获得最高性能。鉴于我的知识,我认为 IPC 也有这样的限制。所以我想我必须想出一个有这种约束的解决方案。
标签: java jms ipc messaging tibco-ems