在JMS中,如果是QUEUE,则以FIFO方式存储消息。但是在Topic的情况下,消息是如何存储的?是否在FIFO中采用任何其他方式?
答案 0 :(得分:0)
主题的FIFO也是。这不是队列和主题之间的区别。
队列和主题之间的最大区别是消息传递模型:点对点与发布/订阅。
对于本次讨论,我忽略了持久的主题订阅。这是主题订阅者的一个转折,如果消息发送时没有收听消息,那么该消费者的消息不会被删除。
答案 1 :(得分:0)
JMS在消息排序方面没有区分队列和主题。但请注意,在每种情况下,消息传递都不是FIFO。规范声明:JMS定义会话发送到目的地的消息必须按发送顺序接收(参见http://docs.oracle.com/cd/E19957-01/816-5904-10/816-5904-10.pdf - 章4.4.10)但有一些限制,例如使用不同的传送模式或不同的优先事项。
在许多环境中,您将找不到一个会话发送的相关消息,因为您会发现多个服务器或进程的并行化 - 因此依赖消息顺序主要不是一个好主意....