【发布时间】:2013-01-04 00:31:42
【问题描述】:
在JMS中,QUEUE的情况下,消息以FIFO的方式存储。但是Topic的情况下,消息是如何存储的??是否以 FIFO aur 任何其他方式??
【问题讨论】:
标签: jakarta-ee jms jms-topic
在JMS中,QUEUE的情况下,消息以FIFO的方式存储。但是Topic的情况下,消息是如何存储的??是否以 FIFO aur 任何其他方式??
【问题讨论】:
标签: jakarta-ee jms jms-topic
主题也是先进先出。这不是队列和主题之间的区别。
队列和主题之间的最大区别在于消息传递模型:点对点与发布/订阅。
对于本次讨论,我将忽略持久主题订阅。这是主题订阅者的一个转折,如果在发送消息时它没有在监听,则不会为该消费者丢弃消息。
【讨论】:
JMS 在消息排序方面不会对队列和主题产生影响。但是请注意,消息传递并非在每种情况下都是先进先出的。规范规定:JMS 定义会话发送到目的地的消息必须按照它们发送的顺序接收(参见http://docs.oracle.com/cd/E19957-01/816-5904-10/816-5904-10.pdf - 第 4.4.10 章),但有一些限制,例如不同的传递模式或不同的优先级.
在许多环境中,您不会发现一个会话发送的相关消息,因为您会发现多个服务器或进程的并行化 - 因此依赖消息顺序通常不是一个好主意....
【讨论】: