首页 > 代码库 > JSM的topic和queue的区别
JSM的topic和queue的区别
在JMS(Java消息服务)中,Topic实现publish和subscribe语义。一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个 subscriber(电脑词汇中解释为“用户“)将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。
JMS Queue执行load balancer语义。一条消息仅能被一个consumer收到。如果在message发送的时候没有可用的consumer,那么它将被保存一直到能处理该message的consumer可用。如果一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer 那儿。一个Queue可以有很多consumer,并且在多个可用的consumer中负载均衡
Jms规范里的两种message传输方式Topic和Queue,两者的对比如下表():
确认消息的方式有如下三种:
AUTO_ACKNOWLEDGE(自动通知)
CLIENT_ACKNOWLEDGE(客户端自行决定通知时机)
DUPS_OK_ACKNOWLEDGE(延时//批量通知)
如果使用的是 客户端自行决定通知时机方式,那么需要在MessageListener里显式调用message.acknowledge()来通知服务器。服务器接收到通知后采取相应的操作。
- 顶
- 6
JSM的topic和queue的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。