队列中有哪些功能哪些不能通过主题?队列中有哪些功能无法通过主题实现?
2
A
回答
1
我碰到的主要要求是消费者无法在主题上竞争单一消息。例如,我有一位发布呼叫中心活动的客户。几个系统订阅这些事件。其中一个系统是具有多个实例运行的实际呼叫路由应用程序。如果每个实例订阅,则该呼叫被路由到所有这些实例。但是,如果将消息放入队列并且所有实例消耗掉相同的队列,则只有一个消息会接收消息,并且调用将转至该运算符。如果发布应用程序从主题转换为队列,则呼叫中心可以正常工作,但所有其他订阅者应用程序都不会收到该消息。
该解决方案(在WebSphere MQ中实现)是为该主题创建管理订阅并将消息传递到所有应用程序实例使用的队列。所以生产者应用仍然是发布者,所有动态订阅者仍然获得消息的副本,呼叫中心应用实例竞争每个发布消息的单个实例。
此外,您不能在主题上使用浏览语义,而您可以在队列中使用浏览语义。通过主题,您可以指定选择器来过滤返回的消息,但这只是关于它。使用队列可以浏览,重置浏览指针,然后浏览更多。
如果您将消息放在队列中,但没有消息接收消息,则消息将保持排队。如果您向某个主题发送消息,并且没有活动的订阅者或持久订阅,则该消息将被丢弃。因此,队列中的消息自然是持久的,而主题上的消息可能会或可能不会。
从纯粹的JMS角度来看,队列和主题都是目的地的实例,如果您不尝试浏览,它们可以互换。应用程序可能不知道它打开的目标是一个队列还是一个主题,除非它在运行时使用instanceOf()来查找。
相关问题
- 1. 哪些现有语言功能最难实现?为什么?
- 2. sharepoint中有哪些功能?
- 3. Java通过扩展LinkedList实现队列
- 4. 通过图灵机实现队列
- 5. 无法通过argv功能
- 6. SQL的哪些实现具有PSM功能?
- 7. 通知队列的实现
- 8. jPlayer - 通过Javascript实现倒带功能
- 9. 哪些功能更有效?
- 10. 意图有哪些功能?
- 11. php5引入了哪些主要功能?
- 12. NodeJS - 无法实现异步功能
- 13. 队列实现
- 14. ASP.Net 4.0中有哪些新功能?
- 15. .NET Framework 3.5中有哪些新功能?
- 16. core.async是否可以通过序列实现它的功能?
- 17. EXC_BAD_ACCESS的主要功能和无法通过类
- 18. wpf哪些功能?
- 19. 有没有办法通过pika列出rabbitmq中的队列?
- 20. 队列实现中的出队和入队方法
- 21. 我应该实现哪些功能来清理UINavigationController的视图
- 22. 哪些TDataSet,TDbGrid事件用于实现Un-Do功能
- 23. 这组SSH Shell命令可以实现哪些功能?
- 24. 实现JMS请求 - 应答。队列vs主题?
- 25. 无法通过使用jQuery功能
- 26. java中的队列实现
- 27. 在c中实现队列#
- 28. PHP队列实现
- 29. 队列实现C++
- 30. C#队列实现#