MQ
MQ是什么?
MQ:MessageQueue,消息队列。 队列,是一种FIFO 先进先出的数据结构。消息由生产者发送到MQ进行排队,然后按原来的顺序交由消息的消费者进行处理。QQ和WeChat就是典型的MQ。
优势:
- 解耦合:提高了系统的可维护性和容错性
- 异步提速:提升了用户体验和系统的吞吐量
- 削峰填谷:提高系统稳定性
劣势:
- 系统可用性降低:系统引入的外部依赖越多,稳定性就越差
- 系统复杂度提高:MQ的加入回增加系统的复杂度
- 消息一致性问题:A系统处理完业务,通过MQ发送消息给B、C系统进行后续的业务处理。如果B系统处理成功,C系统处理失败
常见MQ对比
RabbitMQ |
ActiveMQ |
RocketMQ |
Kafka |
|
公司/社区 |
Rabbit |
Apache |
阿里 |
Apache |
开发语言 |
Erlang |
Java |