博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JMS消息的概念解释-stomp
阅读量:6705 次
发布时间:2019-06-25

本文共 1177 字,大约阅读时间需要 3 分钟。

  hot3.png

1、默认生产者消息是持久的:会存数据库

--消费者的持久:createDurableSubscriber是指消费者能收到所有它订阅时间点之后的消息,即使消

费者注册后关闭,当它重启就能收到注册时间点之后所有的消息;即当此消费用户ID(AAA)在producer发

送之前就已经注册,那么此id能收到producer发送的所有消息,如果是在producer之后注册的那么只能

收到此时间点后的消息;

--注意:topic和queue消费者收到消息后有两种情况,设置为Session.CLIENT_ACKNOWLEDGE,必须代码显示调用

acknowledge()方法,那么重启后不会收到消息,否则客户端不确认则每次重启都会收到

--消费者的非持久。createConsumer只能接受到启动时间点之后,生产者producer发送的消息

--另外topic的生产者还有个特别的参数retain:true,设置为true时,无论何时订阅者启动,都能收到

对应主题destination的最后一条信息;但是如果broker重启了,则者最后一条又是丢弃的,估计能使用

的场景很少。

2、topics和queues的区别。

--topics时广播给所有已经订阅消费者,queues仅被一个消费者获取一次。但是queues如果broker未能

证实已经有订阅者消费,那么下一个订阅者继续消费-----这句话包含好几层意义:多个消息获取端不

会获得重复的信息;但是如果消息可能被消费,但是每到服务器确认,就会被2次消费,极端情况如收到

信息还没发回执到服务器就断网了;如果多个消费者同时在线消费100条信息,他们消费到的信息都是随

机的,总数不会超过100;如果没有消费者消费这条消息,这条消息一直在服务器中显示为未消费状态,除非手工删除。

--topics在broker系统里面找不到消费者就会丢弃消息。就是说只会发送给已经订阅的消费者,反之从

消费者来讲,它只消费它订阅后的生产者发送的消息吃就丢弃不代表不持久。

--queues有可靠性消息,请区别topics的持久性消息,可靠消息并不保证有订阅者接受到消息,可靠性

消息保证一定有订阅者接受消息

3、可靠性消息

--queues中producer使用receipt参数来发送消息,这个参数是id标志,当broker收到订阅者消费完毕

信息后发个回执消息给producer,包含参数receipt-id,值对应producer发送的参数receipt

SEND

destination:/queue/a

receipt:001

hello queue a

^@

接受方:

RECEIPT

receipt-id:001

^@

转载于:https://my.oschina.net/fir01/blog/361293

你可能感兴趣的文章
玩转iOS开发:iOS中的Socket编程(二)
查看>>
如何打造BCH使用的刚性需求?
查看>>
一个小需求引发的思考
查看>>
JSX,了解一下?
查看>>
升级Swift4 0遇到的坑
查看>>
第一本Python神经网络编程译著图书终于来啦
查看>>
四两拨千斤式的攻击!如何应对Memcache服务器漏洞所带来的DDoS攻击?
查看>>
2017 Material design 第四章第二节《单位和尺寸》
查看>>
2017 Material design 第一章第三节《Material特性》
查看>>
iOS开发笔记(三):消息传递与转发机制
查看>>
Python缓存技术
查看>>
Metal入门(使用Metal画一个三角形)
查看>>
浅谈 iOS 应用启动过程
查看>>
Clang 之旅—[翻译]添加自定义的 attribute
查看>>
零基础学习Web开发的入门需要掌握哪些?
查看>>
慎用System.nanoTime()
查看>>
2017 移动端 iOS 年终工作总结-纯干货请自备酒水
查看>>
Android小知识-剖析OkHttp中的任务调度器Dispatcher
查看>>
switch的python实现
查看>>
Hybris UI的Route(路由)实现
查看>>