30分钟带你了解「消息中间件」Kafka、RocketMQ

本文深入探讨了消息中间件在异步解耦、削峰填谷等场景的应用,对比了Kafka、RocketMQ等主流框架的优缺点。Kafka以其高吞吐、丰富的生态脱颖而出,而RocketMQ则在功能增强上有所牺牲。文章还讨论了Kafka的分区策略、消息持久化机制及其在分布式事务中的作用。
摘要由CSDN通过智能技术生成

30分钟带你了解「消息中间件」Kafka、RocketMQ

 

消息中间件的应用场景

  • 异步解耦
  • 削峰填谷
  • 顺序收发
  • 分布式事务一致性

腾讯应用案例:

30分钟带你了解「消息中间件」Kafka、RocketMQ

 

主流 MQ 框架及对比

30分钟带你了解「消息中间件」Kafka、RocketMQ

 

说明

  • Kafka:整个行业应用广泛
  • RocketMQ:阿里,从 apache 孵化
  • Pulsar:雅虎开源,符合云原生架构的消息队列,社区活跃
  • RabbitMQ 架构比较老,AMQP并没有在主流的 MQ 得到支持
  • NSQ:内存型,不是最优选择
  • ActiveMQ、ZeroMQ 可忽略

Kafka 优点

  • 非常成熟,生态丰富,与 Hadoop 连接紧密
  • 吞吐非常高,可用性高sharding提升 replication 速度
  • 主要功能:pub-sub,压缩支持良好
  • 可按照 at least once, at most once 进行配置使用,exactly once 需要 Consumer 配合
  • 集群部署简单,但 controller 逻辑很复杂,实现partition 得多副本、数据一致性
  • controller 依赖 ZooKeeper
  • 异步刷磁盘(除了钱的业务,很少有同步 flush 的需求)

Kafka 缺点

  • 写入延时稳定性问题,partition 很多时Kafka 通常用机械盘,随机写造成吞吐下降和延时上升100ms ~ 500ms
  • 运维的复杂性单机故障后补充副本数据迁移快手的优化:迁移 partition 时旧数据不动,新数据写入新 partition 一定时间后直接切换

RocketMQ

  • 阿里根据 Kafka 改造适应电商等在线业务场景
  • 以牺牲性能为代价增强功能安 key 对消息查询,维护 hash 表,影响 io为了在多 shard 场景下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值