阿里消息队列rocketmq 如何设计一个MQ消息队列?
如何设计一个MQ消息队列?
1.先上图,明确一个消息发送和消费的流程
2.消息消息首先需要定义消息协议,比如ActiveMQ,Stomp,XMPP等
3.消息协议定义好了,明确消息队列需要满足什么场景
是否需要保证消息可靠性,如果需要就要做存储的高可用
是否需要支持同步和异步消息
是否需要保证消息的顺序
是否需要支持延时消息
具体可以参照很多开源实现的特性,比如RocketMQ就是高可靠的,Kafka就是高吞吐量的,但是不是高可靠的。
搞Java的年薪40W是什么水平?
这种一看就是培训机构跟你说的吧?具体年薪多少,那不是广告宣传说说就可以的,还得看你学完以后到底去的是哪个城市,什么类型的公司。一般的培训机构都会把某一项技能夸的特别牛,事实却可能是———然并卵
如何使用消息队列解决分布式事务?
有两种方案。
方案一 本地消息事务表
生产方需要增加一张事务消息表,具体步骤可以这样实现:
1.生产方执行业务逻辑并在消息表中插入一条事务记录,这两个操作是在一个本地事务中的
2.启动一个后台线程定时轮询消息表,把消息发送给消息队列
3.直到发送成功,删除消息表中的记录。
方案二 需要消息队列支持,业务方提供回查接口
1.生产方发送prepared消息给消息队列
2.在本地事务中业务逻辑
3.根据执行结果,确认或者取消prepared消息
4.消息队列会确保一定会确认或取消prelared消息的,消息队列会不断询问生产方执行结果,这个就需要生产方提供一个类似的回调函数。
方案二相当消息队列代替了方案一中消息表以及后台线程轮询的功能,但不是所有的消息队列都支持该功能的。RocketMQ是支持的。
方案一开发工作量大些,对外部依赖性小
方案二开发量小,但是依赖特定消息队列。
阿里消息队列rocketmq rocketmq消息延迟好长时间 rocketmq查看消息队列
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。