RabbitMQ - [入门] 什么是MQ?MQ的分类?
总结
ActiveMQ
- 优点:
- 可用性比较高,单机吞吐量万级,时效毫秒ms级;
- 可靠性高,低概率丢失数据
- 缺点:
- ActiveMQ 5.x 维护越来越少;
- 高吞吐量场景较少使用
RabbitMQ(最常用)
- 天生为金融互联网领域而生,消息0丢失
- 优点:
- 可用性极高,单机吞吐量万级,时效性微妙μs级
- 支持事务,也支持持久化,分发机制,容错机制等
- 和spring是一家公司开发,spring框架支持性很好
- 缺点:商业版收费,学习成本高
Kafka (性能最好)
- 天生为大数据而生
- 优点:
- 吞吐量高,单机写入TPS(事务数/秒)百万级,时效性微妙μs级;
- 基于tcp/ip,二进制流,最接近底层,性能极高
- 支持持久化,分发机制
- 缺点:
- 但不支持事务
RocketMQ
- 消息0丢失,支持10亿级别消息堆积。阿里,滴滴联合开发的国内版MQ
- 优点:
- 可用性极高,单机吞吐量十万级,时效微妙μs级;
- 可靠性极高,可以做到消息0丢失,支持10亿级别消息堆积
- 缺点:
- 支持的客户端语言不多,目前是java, c++
- 没有在MQ核心中实现JMS接口,有些系统迁移需要大量修改代码
一、什么是MQ
二、为什么要用MQ
1.流量削峰填谷
2.应用解耦
3.异步处理
三、MQ分类
ActiveMQ
kafka
RocketMQ
RabbitMQ
四、MQ的选择
持久化
分发策略