JMS小结

[b]1. JMS接收不到消息,p2p模型中接收不到消息(或是第一次可以正常接收,而之后就无法接收) 主要原因:[/b]
  每执行一次 QueueReceiver receiver = session.createReceiver(queue)    语句,就会创建一个queue队列消息的消费者,如果在一个应用程序中多 次执  行上述语句,就会产生多个消费者,可以在浏览器中输入http://localhost:8161/admin进行查看。而一旦某个队列有多个对应的消费者,那么JMS提供者将消息发送给那个消费者是不确定的!要想准确收到对应的回复消息,需要使用“消息过滤”。


[b]2. 消息的同步异步接收:[/b]
消息的同步接收是指客户端主动去接收消息,JMS 客户端可以采用MessageConsumer 的receive方法去接收下一个消息;消息的异步接收是指当消息到达时,主动通知客户端。JMS 客户端可以通过注册一个实现MessageListener 接口的对象到 MessageConsumer,这样,每当消息到达时,JMS Provider 会调用MessageListener中的onMessage 方法。


[b]3. 消息的push/pull[/b]
QueueReceiver的receive方法从JMS服务器去拉取消息,一次只能取道一条;而如果QueueReceiver设置了一个监听器,一旦有消息,JMS服务器就会将消息推送个QueueReceiver;对于服务器中的消息,如果被发送到某个receiver,而且这个receiver接收到消息后通知服务器,那么这个消息才会被服务器从队列中删除,否则仍然保存在队列中。关于通知的方式就涉及到事务以及消息确认模式等。


[b]4. Spring JMS[/b]
JmsTemplate用于同步发送消息和接收消息; Spring框架通过MDP支持消息的异步接收,在Spring中,配置异步消息侦听器有3中不同的方式:实现javax.jms.MessageListener接口,实现Spring的
SessionAwareMessageListener,以及在Spring的MessageListenerAdapter类中包装一个标准的POJO。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值