MQ是什么Q()
1. MQ是什么?
MQ是Message Queue,消息队列。想象一下,你正在公司改bug,领导告诉你这个问题今天必须搞定。
队列是一种FIFO先进先出的数据结构,消息队列就是存放消息的队列。
消息由生产者发送到MQ进行排队,然后由消费者对消息进行处理。
而这个时候,你的快递到了,快递小哥疯狂地给你打电话让你去取时,你会怎么做?
“帮我放在菜鸟驿站吧,谢谢!”
在上边的例子中,“快递” 就是消息,“菜鸟驿站” 就是MQ。
2. MQ有啥用? 1. 异步
有了菜鸟驿站之后,快递小哥不用等着你去取快递,你也随时可以去菜鸟驿站拿了,双方的效率都得到了提高。
我们知道异步能提高系统的响应速度和吞吐量,但是却不好实现,需要考虑很多东西。2. 解耦
而引入MQ就可以很方便的帮我们的系统实现异步处理,从而提高系统的性能。
快递小哥把快递放到菜鸟驿站后,就可以去送下一个快递了,并不用依赖你什么时候才去取
而你也不用管到底是哪个快递小哥给你送来的,你只需要去菜鸟驿站拿就行了。
消息队列也是一样,MQ可以对服务之间进行解耦,减少服务之间的影响3. 削峰
从而提高系统的稳定性和可拓展性。
【MQ是什么Q()】你双11剁手买买买了一堆东西之后,过了几天快递小哥突然给你送来一大堆快递,让你一次性把他们都抗回家去,你也会像突然收到一大堆消息的服务一样崩溃吧,不如让他把所有的快递都先放到菜鸟驿站,你一个一个再去取。
MQ可以以稳定的系统资源应对突发的流量冲击,从而防止服务的崩溃。3. MQ有啥缺点? 1. 系统复杂度提高,引入了MQ,肯定系统架构会变得比之前复杂
如何保证消息不丢失?
如何保证消息不会重复调用?
如何保证消息的顺序?
2. 系统可用性降低,因为一旦MQ宕机了,整个系统都会受到影响
3. 数据一致性问题
比如A系统发消息,需要B、C两个系统一同处理,如果B成功而C失败了,应该怎么办?
引入了MQ,这些问题都需要进行额外的考虑,所以不是所有的系统都适合使用MQ。
推荐阅读
- 热闹中的孤独
- 我要做大厨
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 爱就是希望你好好活着
- 太平之莲
- 知识
- 叙述作文
- 时间老了
- 清明,是追思、是传承、是感恩。
- 我错了,余生不再打扰