【发布时间】:2012-08-27 12:38:31
【问题描述】:
我正在尝试开发一个发布/订阅系统。
为此,我阅读了一些有关它的论文和文章。
他们都将消息服务作为发布/订阅系统的一个组成部分。
我的问题是,我可以在不使用 JMS 之类的 MOM 的情况下开发发布订阅系统吗? 还是我遗漏或过度简化了一些事情?
【问题讨论】:
标签: jms publish-subscribe mom
我正在尝试开发一个发布/订阅系统。
为此,我阅读了一些有关它的论文和文章。
他们都将消息服务作为发布/订阅系统的一个组成部分。
我的问题是,我可以在不使用 JMS 之类的 MOM 的情况下开发发布订阅系统吗? 还是我遗漏或过度简化了一些事情?
【问题讨论】:
标签: jms publish-subscribe mom
我不认为你过于简单化了。有可用的独立产品提供基于发布/订阅的高级功能,而不是更大的 MOM 系统的一部分。
其中一个是一组实施数据分发服务 (DDS) 规范的产品,该规范由对象管理组 (OMG) 标准化。查看this Wikipedia entry 以获得非常简短的介绍和参考列表。
DDS 支持许多高级数据管理功能,例如强类型和内容感知数据总线、分布式状态管理和历史数据访问。其丰富的服务质量设置允许将大量复杂性从应用程序转移到中间件。这一切都基于发布/订阅范式。
如果您愿意详细介绍您的应用程序,那么我可能会向您指出使用该技术的类似用例——如果您感兴趣的话。
【讨论】:
这取决于您所说的“妈妈”是什么意思。如果您认为 MOM = JMS,那么是的,有很多不是 JMS 服务器的 pub/sub 应用程序(我想不到):0MQ、TIBCO Rendezvous 和周围的许多 AMQP 实现。
我想我对 MOM 的定义是一种以异步方式可靠地将消息从一个系统发送到另一个系统的基础架构。 Pub/sub 是消息传输之上的一项功能,它允许将消息分发到多个其他系统。一旦您超出了打开套接字并将一堆字节塞入其中的地步,我认为您已经进入了 MOM 的领域。
所以,不,您不需要 JMS 来执行 pub/sub.... 有很多开源和闭源替代方案。哪一个取决于您的要求和技能。
【讨论】:
您可以查看提供一对多通信的multicast。多播不需要 MOM,而是需要启用多播的 IP 网络。通常网络路由器负责创建消息副本并将消息传递到目的地。
【讨论】: