公司里mq使用现在主流的就是kafka和rocketmq了
kafka适合大数据场景
rocketmq更适合业务开发场景
kafka天然并发量更高因为最开始设计出来的使用场景是为了大数据和流式计算,日志和一些数据的采集处理,这种场景式允许一部分数据丢失的
所以采用的优化手段内存映射,零拷贝,,磁盘文件的顺序读写,批量异步发送消息,批量消息压缩理论上单机最高tps百万级
rocketmq架构上参考了kafka的设计,很多原理基本都是照抄的,rm最初是为了金融业务系统的可靠性,做出了一些
取舍,
1比如默认对批量消息的场景支撑就比较少,这块吞吐量对比kafka就下降的非常多
2事务消息,顺序消息,死信队列的功能更好适配业务系统
3消息持久化,kafka的设计是一个队列一个文件,所以在topic非常多的时候,性能会急剧下降,mq设计成了多个
queue共享持久化文件,所以上千个queue对rm的性能影响也不会特别大
4数据容灾,mq最开始是设计成了主从备用,大部分业务场景够用,kafka的设计是多副本,互相备份,也就是说起步
最合适的就得部署三台broker机器,价格自然贵点。
消息队列的选型
最新推荐文章于 2024-07-08 16:53:33 发布