首页 > 其他分享 >kafka和rocketMq区别

kafka和rocketMq区别

时间:2023-02-18 22:33:21浏览次数:33  
标签:RocketMQ 发送 事务 Producer 区别 kafka 重试 消息 rocketMq

https://mp.weixin.qq.com/s/_YuLzBpgSvHi9nH2wTEjvQ

1、性能对比

Kafka单机写入TPS约在百万条/秒,消息大小10个字节

RocketMQ单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节

总结:Kafka的TPS跑到单机百万,主要是由于Producer端将多个小消息合并,批量发向Broker。

RocketMQ为什么没有这么做?

  • Producer通常使用Java语言,缓存过多消息,GC是个很严重的问题
  • Producer调用发送消息接口,消息未发送到Broker,向业务返回成功,此时Producer宕机,会导致消息丢失,业务出错
  • Producer通常为分布式系统,且每台机器都是多线程发送,我们认为线上的系统单个Producer每秒产生的数据量有限,不可能上万。
  • 缓存的功能完全可以由上层业务完成。

2、消费失败重试

Kafka消费失败不支持重试

RocketMQ消费失败支持定时重试,每次重试间隔时间顺延

总结:例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压力过多,稍后在调用就会成功,如支付宝到银行扣款也是类似需求。

这里的重试需要可靠的重试,即失败重试的消息不因为Consumer宕机导致丢失

3、事务消息

kafka不支持

RocketMQ支持,

分布式事务就是在分布式系统来实现的事务,消息中的事务之所以说它是分布式事务,是因为事务的参与者及事务管理器:消息发送端(producer),消息服务器(broker),消息的消费端(consumer)位于分布式系统的不同节点上。

MQ的事务消息就是为了解决消息发送端、及消费端的一致性,在RoketMQ中消费端不用考虑,因为至少会消费一次。所以它主要就是解决发送端的消息发送和它的本地事务逻辑的一致性。

标签:RocketMQ,发送,事务,Producer,区别,kafka,重试,消息,rocketMq
From: https://www.cnblogs.com/MarkLeeBYR/p/17133851.html

相关文章

  • SAP ABAP 方法调用里传值(Pass Value)和传引用(Pass Reference)的区别试读版
    笔者这篇教程ABAPfunctionmodule的使用,有朋友在评论区留言:想问问对于functionmodule里面的导入和导出参数里面,有传递值一项,让你勾选,想请教下这个是何种情况下要勾选......
  • PWA 应用和原生应用的一些区别
    早在2015年,谷歌就启动了PWA(又名渐进式网络应用程序,progressivewebapps)概念。PWA专注于在移动网络上做出改变和打造用户体验。这种类型的Web应用程序提供了具有大......
  • Java中的长度length、length()、size()的区别
    java中有三个常用的与长度相关的属性和方法,分别是length、length()、size()。记录一下它们之间的区别;length属性单独的length是针对数组而言,表示声明数组的长度,也就是......
  • 通过字节码解释b=i++和b=++i的区别(笔记)
    publicclassTest{/*test1():针对后++0:bipush10定义常量102:istore_1将常量存储到本地变量表1的位......
  • Node.js模块化 exports和module.exports的区别【转载】
    请牢记一条原则:无论使用exports暴露成员,或是module.exports暴露成员,最终暴露的结果,都是以module.exports所指向的对象为准。1.module对象看一下module对象长什么样......
  • Kafka消费者无法消费数据,解决
    作为一个在项目中边学边用的实习生,真的被昨天还好好的今天就不能消费数据的kafka折磨到了,下面提供一点建议,希望能对大家有所帮助。//操作前集群都关了1.首先去kafka-home......
  • kafka3.0常用命令
    1、进入kafka的bin目录:先启动内置zookeeper执行命令:zookeeper-server-start.sh../config/zookeeper.properties后台运行命令:zookeeper-server-start.sh......
  • kafka 配置 SASL_PLAINTEXT 校验
    1.配置zookeeper在kafka的config目录中创建test.propertiessecurity.protocol=SASL_PLAINTEXTsasl.mechanism=PLAINsasl.jaas.config=org.apache.kafka.common.secur......
  • java的long的小l和大L区别
    首先几乎在所有位置,long的小写和大写都可以互相替换。其次L本质是对象,不是基础类型,具有Object的特性。包装类把基本类型转换为对象,每个基本类型在java.lang包中都有一个相应......
  • Kafka启动失败异常-InconsistentClusterIdException
    一、场景通过Kafka启动命令启动Kafka无响应,每台机器的Zookeeper都已启动,但是Kafka无响应。或者出现命令刚启动的时候jps可见kafka进程,但是过一点时间后又消失不见。 二......