我正在尝试开发一个发布/订阅系统。
为此,我阅读了一些有关它的论文和文章。他们都将消息服务作为发布/订阅系统的一个组成部分。
我的问题是,我可以在不使用 JMS 之类的 MOM 的情况下开发发布订阅系统吗?还是我遗漏或过度简化了事情?
我正在尝试开发一个发布/订阅系统。
为此,我阅读了一些有关它的论文和文章。他们都将消息服务作为发布/订阅系统的一个组成部分。
我的问题是,我可以在不使用 JMS 之类的 MOM 的情况下开发发布订阅系统吗?还是我遗漏或过度简化了事情?
It depends what you mean by "MOM". If you think MOM = JMS then yes, there are plenty of pub/sub applications which are not JMS servers (off the top of my head): 0MQ, TIBCO Rendezvous and the many AMQP implementations around.
I guess my definition of MOM is an infrastructure for reliably getting a message from one system to another in an asynchronous manner. Pub/sub is a feature on top of the message transport which allows a message to be distributed to multiple other systems. Once you get beyond the point of opening a socket and stuffing a bunch of bytes down it, I would argue you are in the realm of MOM.
So, no you don't need JMS to do pub/sub....there are plenty of open-source and closed-source alternatives out there. Which one depends on your requirements and skills.
你可以看看multicast
提供了一对多的通信。多播不需要 MOM,而是需要启用多播的 IP 网络。通常网络路由器负责创建消息副本并将消息传递到目的地。
我不认为你过于简单化了。有可用的独立产品提供基于发布/订阅的高级功能,而不是更大的 MOM 系统的一部分。
其中之一是一组实现数据分发服务 (DDS) 规范的产品,由对象管理组 (OMG) 标准化。查看此 Wikipedia 条目以获取非常简短的介绍和参考列表。
DDS 支持许多高级数据管理功能,例如强类型和内容感知数据总线、分布式状态管理和历史数据访问。其丰富的服务质量设置允许将大量复杂性从应用程序转移到中间件。这一切都基于发布/订阅范式。
如果您想详细介绍您的应用程序,那么我可能会向您指出使用该技术的类似用例——如果您感兴趣的话。