kafka和rocketMq区别
https://mp.weixin.qq.com/s/_YuLzBpgSvHi9nH2wTEjvQ
1、消费失败重试
Kafka消费失败不支持重试
RocketMQ消费失败支持定时重试,每次重试间隔时间顺延
总结:例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压力过多,稍后在调用就会成功,如支付宝到银行扣款也是类似需求。
这里的重试需要可靠的重试,即失败重试的消息不因为Consumer宕机导致丢失
2、事务消息
kafka不支持
RocketMQ支持,
分布式事务就是在分布式系统来实现的事务,消息中的事务之所以说它是分布式事务,是因为事务的参与者及事务管理器:消息发送端(producer),消息服务器(broker),消息的消费端(consumer)位于分布式系统的不同节点上。
MQ的事务消息就是为了解决消息发送端、及消费端的一致性。
3、延迟消息
kafka不支持延迟消息
RocketMQ支持延迟消息
4、消息回溯
kafka没有原生支持
RocketMQ消息追踪
5、副本数据同步
kafka,follower同步leader数据只支持异步复制,有消息丢失风险
RocketMQ,follower同步leader数据支持同步+异步复制,降低消息丢失风险
6、增大消费能力
kafka:增加partition数量,增加消费者实例数量,注意:kafka原生逻辑中拉取消息和消费消息是同一个线程,单consumer由多个worker thread同时消费不是原生能力
rocketmq:增加MessageQueue数量(rocketMq存储消息的媒介),增加消费者实例的数量,还可以增加单个消费者实例内部的消费线程池参数来提高处理能力
浙公网安备 33010602011771号