我正在学习 JMS,我知道有两种类型的通信:
1. 队列
2个主题
我理解主题,但我无法理解是否可以由 2 个不同的消费者从同一个队列中读取内容。
我问这个问题是因为我知道在 amqp 中这是可能的。
让我们有这样的队列
tail -> |5|4|3|2|1|-> head
以及以下操作顺序:
- consumer_1 阅读并获得 1
- consumer_2 阅读并获得 2
- consumer_1 阅读并获得 3
- consumer_2 阅读并获得 4
- consumer_2 阅读并获得 5
这可能吗,或者与点对点方法相矛盾?
最佳答案
这取决于您想要在 Q 上应用的语义:严格 FIFO 或并行处理。
语义的实现(Q + 消费者 + 并行架构等)取决于产品/架构(即是否集群、多线程等)。
包含用于更新库存的消息的 Q 的语义可能是 FIFO,并且必须按严格的顺序处理,包含要发送给客户的邮件消息的队列可能是并行的,并且可以按任何顺序处理,并且可能有许多并发消费者
关于java - JMS中是否可以由多个消费者从同一个队列消费?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45713111/