RocketMQ实现分布式事务原理
架构驿站,让更多人可以因为学习和分享而受益。
大师兄,2012年入行,毕业于北京交通大学计算机科学与技术专业,曾服役于广联达、三快在线、拉勾网,技术专家。
课程大纲:
![1701090143287197.png 消息队列进阶课.png](https://s2.51cto.com/images/20231127/1701090143287197.png)
课程内容节选
消息积压问题分析
如果出现积压,那一定是性能问题,想要解决消息从生产到消费上的性能问题,就首先要知道哪些环节可能出现消息积压,然后在考虑如何解决。
跟消息生产者没有关系
跟消息队列本身没有关系
消息消费者的消费能力不足引起的
解决方案
如果是突发问题,临时扩容,增加消费者的数量。通过扩容和降级承担流量,应急问题的处理。
其次,才是排查解决异常问题。监控、日志分析是否消费端的业务逻辑代码出现了问题,优化消费端的业务处理逻辑。
最后,如果消费端处理不足,水平扩容提升消费端并发处理能力。在扩容消费者实例的同时,必须要同步扩容Topic分区的数量,确保消费者的实例数和分区数是相同的,分区是单线程消费。
在设计系统的时候,一定要保障消费端的消费的性能要高于生产端生产的性能。
解决方案
如果是突发问题,临时扩容,增加消费者的数量。通过扩容和降级承担流量,应急问题的处理。
其次,才是排查解决异常问题。监控、日志分析是否消费端的业务逻辑代码出现了问题,优化消费端的业务处理逻辑。
最后,如果消费端处理不足,水平扩容提升消费端并发处理能力。在扩容消费者实例的同时,必须要同步扩容Topic分区的数量,确保消费者的实例数和分区数是相同的,分区是单线程消费。
在设计系统的时候,一定要保障消费端的消费的性能要高于生产端生产的性能。
处理经验
还有一种消息积压的情况是,日常系统正常运转的时候,没有积压或者只有少量积压很快就消费掉了,但是某一个时刻,突然就开始积压消息并且积压持续上涨。这种情况下需要你在短时间内找到消息积压的原因,迅速解决问题才不至于影响业务。
如何排查消息积压的原因?
如果赶上大促场景,扩容消费实例,如果服务器资源不足,系统降级:关闭一些不重要的业务,减少发送方的数据量,较低限度的去运行。
公开笔记对他人可见,有机会被管理员评为“优质笔记”
{{ noteEditor.content.length }}/2000
讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。
课程大纲
- 第一章 课程开篇词
- 1-1试看 课程开篇词02:30
- 第二章 消息对应的应用场景
- 2-1试看 消息队列应用场景之异步处理15:43
- 2-2试看 消息队列应用场景之流量控制15:40
- 2-3试看 消息队列应用场景之服务解耦09:34
- 第三章 消息队列的技术选型
- 3-1试看 消息队列选型的基本标准09:01
- 3-2试看 消息队列的技术选型26:52
- 第四章 消息队列的消费模型
- 4-1试看 队列模型和发布订阅模型14:31
- 4-2试看 不同MQ的消息模型20:50
- 第五章 分布式事务解决方案
- 5-1试看 分布式事务产生的原因07:14
- 5-2试看 两阶段提交协议和三阶段提交协议10:07