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存储消息的媒介),增加消费者实例的数量,还可以增加单个消费者实例内部的消费线程池参数来提高处理能力

posted @ 2023-02-18 22:29  MarkLeeBYR  阅读(309)  评论(0)    收藏  举报