写在前面的话:本文章总结自geektime消息队列专栏
主流消息队列对比
1. RabbitMQ(开箱即用,易于维护)
- RabbitMQ的优点
- 基于Erlang实现,支持AMQP协议(这是一个什么协议?),轻量级的消息队列,非常容易部署和使用
- 支持非常灵活的路由配置,在生产者(producer)和消费者(Queue)之间增加了一个类似交换机功能的Exchange模块
- 路由规则可以将生产者发出的消息分发到不同的队列中,可自定义实现
- 支持客户端语言最多
- RabbitMQ的不足
- 对消息堆积的支持不太好,大量消息堆积会导致性能急剧下降
- 性能一般,每秒钟可以处理几万到十几万条消息
- 二次开发比较困难
2. RocketMQ(处理在线业务)
- Rocket的优点
- 基于Java实现,阿里开源,Apache顶级项目,经受多过次“双十一”的考验,性能、稳定性、可靠性值得信赖
- 中文社区活跃,功能特性齐全
- 可实现毫秒级响应,每秒钟大概能处理几十万条消息
- 易于二次开发
- Rocket的不足
- 国产消息队列,在国际上不太流行,与周边生态系统的集成和兼容程序要略逊一筹
3. Kafka(处理海量消息)
- Kafka的优点
- 使用Scala和Java语言开发,LinkedIn开源,Apache顶级项目
- 设计上大量使用批量和异步的思想,拥有超高性能
- 异步收发性能最好,每秒钟大概能处理几十万条消息
- 周边生态系统的兼容性是最好的,尤其在大数据和流计算领域,几乎所有的相关开源软件系统都会优先支持Kafka
- Kafka的不足
其他消息队列(不推荐使用)
1. ActiveMQ
- 最老牌开源消息队列,十年前唯一可供选择的开源消息队列
- 社区不活跃
- 性能差异较大不适用于当今互联网应用场景
2. ZeroMQ
- 不能称为是一个消息队列,只是一个消息队列的多线程网络库
- 可将消息队列的功能集成到系统中
3. Pulsar
- 新兴开源的消息队列产品
- Yahoo开发,现处于成长期,流行度、稳定度不高
- 采用存储和计算分离的设计,可能会引领未来消息队列的一个方向,可以关注一下
posted @
2019-07-30 10:21
Mooa
阅读(
414)
评论()
编辑
收藏
举报