市面上MQ的产品较多,但结合物联网平台的使用场景,运维等因素,我们选型范围缩小到以下产品中:
1. 使用阿里云MQ
2. 使用自建RabbitMQ
3. 使用自建Kafka
一. 使用阿里云MQ
1. 优点:
省掉运维
有较高吞吐量
2. 缺点:
由于阿里云做了封装跟限制,不够灵活, 体现在:
1)需要各种阿里Keys
2)需要了解各种阿里自己的概念,比如Region
3)收费模式复杂,既要收topic,还有按流量
4) 只有铂金版支持比较高级的管理接口调用,比如创建Topic
需要代码改动较多,体现在:
1)跟Springboot没有集成, github有个人提供的boot-start,但没法保证其是否稳定和持续改进
2)目前项目结构是基于Springboot的,集成阿里MQ,破坏了项目风格
3)Spring cloud Bus与阿里MQ没有集成,我们大部分项目集成了Spring Cloud Bus, 目前没法跟阿里MQ集成
如果阿里MQ能满足无缝对接,可以再考虑阿里MQ
二. 使用自建RabbitMQ
1. 优点:
不需要代码改动
2. 缺点:
需要自己运维,搭建集群
调优难度大,体现在:
1) RabbitMQ是基于erlang开发的,团队缺少erlang调优经验
2)自定义某些插件,开发难度大
3) 集群搭建难度高,伪集群
三. 使用自建Kafka
1. 优点:
不仅是一个强大的MQ, 还是一个强大的Storage, 还是一个强大的流处理Server
集群基于ZK,搭建简单,易于扩展
基于Scala开发,易于JVM层面调优
Spring boot & Spring Cloud 跟Kafka有很好的集成
QPS远超RabbitMQ
物联网平台的以后必然会支持实时分析,Kafka在此领域已经等到业界认可
2. 缺点:
需要改代码,但改动不大
需要自己运维
结论:使用自建Kafka
下表是引在阿里云消息队列比较的一个章节, 仅供参考
功能 | 消息队列RocketMQ | Apache RocketMQ (开源) | 消息队列Kafka | Apache Kafka (开源) | RabbitMQ (开源) |
---|---|---|---|---|---|
安全防护 | 支持 | 不支持 | 支持 | 不支持 | 不支持 |
主子账号支持 | 支持 | 不支持 | 支持 | 不支持 | 不支持 |
可靠性 | - 同步刷盘 - 同步双写 - 超3份数据副本 - 99.99999999% |
- 同步刷盘 - 异步刷盘 |
- 同步刷盘 - 同步双写 - 超3份数据副本 - 99.99999999% |
异步刷盘,丢数据概率高 | 同步刷盘 |
可用性 | - 非常好,99.95% - Always Writable |
好 | - 非常好,99.95% - Always Writable |
好 | 好 |
横向扩展能力 | - 支持平滑扩展 - 支持百万级 QPS |
支持 | - 支持平滑扩展 - 支持百万级 QPS |
支持 | - 集群扩容依赖前端 - LVS 负载均衡调度 |
Low Latency | 支持 | 不支持 | 支持 | 不支持 | 不支持 |
消费模型 | Push / Pull | Push / Pull | Push / Pull | Pull | Push / Pull |
定时消息 | 支持(可精确到秒级) | 支持(只支持18个固定 Level) | 暂不支持 | 不支持 | 不支持 |
事务消息 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
顺序消息 | 支持 | 支持 | 暂不支持 | 支持 | 不支持 |
全链路消息轨迹 | 支持 | 不支持 | 暂不支持 | 不支持 | 不支持 |
消息堆积能力 | 百亿级别 不影响性能 |
百亿级别 影响性能 |
百亿级别 不影响性能 |
影响性能 | 影响性能 |
消息堆积查询 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
消息回溯 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
消息重试 | 支持 | 支持 | 暂不支持 | 不支持 | 支持 |
死信队列 | 支持 | 支持 | 支持 | 不支持 | 支持 |
性能(常规) | 非常好 百万级 QPS |
非常好 十万级 QPS |
非常好 百万级 QPS |
非常好 百万级 QPS |
一般 万级 QPS |
性能(万级 Topic 场景) | 非常好 百万级 QPS |
非常好 十万级 QPS |
非常好 百万级 QPS |
低 | 低 |
性能(海量消息堆积场景) | 非常好 百万级 QPS |
非常好 十万级 QPS |
非常好 百万级 QPS |
低 | 低 |
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于