消息队列技术选型(Kafka + RocketMQ)

当业务需要系统间调用解耦时,MQ是一个很好的解决方案。目前选择最多的当属Kafka和阿里的RocketMQ

性能指标kafkaRocketMQ
适用场景日志处理适合处理业务
性能单击写入TPS号称在百万条/秒大约10万条/秒
可靠性使用异步刷盘,异步复制(Replication)支持异步/同步刷盘,异步/同步复制(Replication)。RocketMQ 所支持的同步方式提升了数据的可靠性
实时性支持pull长轮询均支持pull长轮询,RocketMQ 的实时性更好
支持队列数单机超过64个队列/分区,消息发送性能降低严重单机支持最高5万个队列,性能稳定(这也是适合业务处理的原因之一)
消息顺序性某些配置下,支持消息顺序,但是一台broker宕机后,就会产生消息乱序支持严格的消息顺序,在顺序消息场景下,一台broker宕机后,消息发送会失败,但是不会乱序
消息失败重试机制消费失败不支持重试支持定时重试
定时/延时消息不支持定时消息定时/延时都支持
分布式事务消息不支持支持
消息查询机制不支持支持根据 message ID 查询,也支持消息内容查询,tag查询
消息回溯理论上可以按照offset回溯消息支持按照时间来回溯消息,精度毫秒

总结:

  1. Kafka更适用于日志传输,对复杂业务支持不够;复杂业务还得使用RocketMQ
  2. Kafka主要是针对海量数据场景使用的,对数据的正确度要求不是十分严格。对于交易相关的,对数据可靠性、实时性、消息队列的个数要求很高的业务场景,RocketMQ更合适
  3. 当业务成长到一定规模时,必然要修改源码。kafka是使用scala编写的,而RocketMQ是使用Java编写的,用java编写的软件修改起来,维护成本更低

备注:TPS:Transaction Per Second,每秒事务处理量

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值