消息队列入门 MQ
![消息队列入门MQ](https://static001.geekbang.org/infoq/de/deb9f055d092d155dc8aef2259496650.png)
消息队列的灵魂:
1.消息队列是什么?
2.能干什么?
3.优缺点?
4.为什么要用消息队列?
activemq 的,kafka,rabbitmq、
用于快速入门的:
https://blog.csdn.net/m0_37499059/article/details/79958073\
1.为什么要用消息队列:
面试官期望的回答思路:
复制代码
复制代码
复制代码
复制代码
1.1 消息队列的场景:
博客中就可以找到: 解耦、异步、削峰;
不用 mq 的系统耦合场景
使用的 MQ 系统作为 场景的好处:
多系统交互之后==>改变代码的成本比较高
使用 MQ 可以降低耦合;
面试技巧: 考虑自己的场景中是否有, 一个模块对应别的系统或者模块的使用;
2.引入 MQ 的出现的问题;
2.1 系统可用性降低:
因为外部接入很多的系统
但是当 MQ 宕机之后或者是,发送不出消息,流量会导致数据处理出现问题,各个系统可用性会出现很大的问题;
MQ 挂了,会导致很多系统奔溃;
2.2 系统复杂性变高
MQ 可能会出现的事情:
数据消息丢失\
保证消息没有被重复消费
怎么保证数据消息的传递的顺序
2.3 数据一致性问题
数据请求一个到系统 A, 经过 MQ 的发送, 本来请求是系统 ABCD 都执行成功了 ,才能返回结果,系统 ABCD 执行成功了,但是 D 系统执行失败了,就导致整个请求给用户返回的是成功,结果后台是成功逻辑实际上差了一点,没有完全执行
(也就是说 MQ 之前返回成功了,但是在 BCD 后面的系统中会出现的是一个没有完全执行,导致出现数据不一致的情况)
各个 MQ 的优缺点;
activeMQ,RabbitMQ
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/0bfa26115daf2b332ccc60039】。文章转载请联系作者。
评论