搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
从前慢现在也慢
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
冒泡和归并排序对比_lyqabqh
2
前端和算法实现:给网站上加上自己的水印(简单+复杂)
3
oracle not in和not exists在处理null值时的区别_oracle的not in空值
4
Python使用lxml模块抓取数据_etree 获取数据
5
左(6)hash,大数据,位运算_大文件hash
6
EXISTS和IN的区别_in和exists的区别
7
navicat64位和ql\sql64位连接oracle11g, 不安装oracle客户端,缺少oci.dll_nivact连oracle需要装客户端吗?
8
携程Apollo统一配置中心的搭建和使用(java)
9
杂项:git修改历史提交(commit)信息(超详细,图文并茂)_git 修改历史commit
10
hadoop生态系统的详细介绍-详细一点_简述hadoop生态体系
当前位置:
article
> 正文
RocketMQ和Kafka的差异对比_rocketmq kafka区别
作者:从前慢现在也慢 | 2024-04-15 02:25:11
赞
踩
rocketmq kafka区别
1.Broker差异
主从差异
: kafka的master/slave是基于partition维度的,而rocketmq是基于broker维度的;kafka的master/slave是可以切换的,而rocketmq不行,当rocketmq的master宕机时,读能被路由到slave上,但写会被路由到此topic的其他broker上。
刷盘
: rocketmq支持同步刷盘,也就是每次消息都等刷入磁盘后再返回,保证消息不丢失,但对吞吐量稍有影响。一般在主从结构下,选择异步双写策略是比较可靠的选择。
消息查询
:rocketmq支持消息查询,除了queue的offset外,还支持自定义key。rocketmq对offset和key都做了索引,均是独立的索引文件。
消费失败重试与延迟消费
: rocketmq针对每个topic都定义了延迟队列,当消息消费失败时,会发回给broker存入延迟队列中,每个消费者在启动时默认订阅延迟队列,这样消费失败的消息在一段时候后又能够重新消费。延迟时间适合延迟级别一一对应的,延迟时间是随失败次数逐渐增加的,最后一次间隔2小时。当然发送消息是也可以指定延迟级别,这样就能主动设置延迟消费,在一些特定场景下还是有作用的。
数据写入
: kafka每个partition独占一个目录,每个partition均有各自的数据文件.log;而rocketmq是每个topic共享一个数据文件commitlog因为kafka的topic一般有多个partition,所以kafka的数据写入熟读比rocketmq高出一个量级。但超过一定数量的文件同时写入,会导致原先的顺序写转为随机写,性能急剧下降,所以kafka的分区数量是有限制的。
服务治理
: kafka用zookeeper来做服务发现和治理,broker和consumer都会向其注册自身信息,同时订阅相应的znode,这样当有broker或者consumer宕机时能立刻感知,做相应的调整;而rocketmq用自定义的nameServer做服务发现和治理,其实时性差点,比如如果broker宕机,producer和consumer不会实时感知到,需要等到下次更新broker集群时(最长30S)才能做相应调整,服务有个不可用的窗口期,但数据不会丢失,且能保证一致性。但是某个consumer宕机,broker会实时反馈给其他consumer,立即触发负载均衡,这样能一定程度上保证消息消费的实时性。
2.Producer差异
发送方式
:kafka默认使用异步发送的形式,有一个memory buffer暂存消息,同时会将多个消息整合成一个数据包发送,这样能提高吞吐量,但对消息的实效有些影响;rocketmq可选择使用同步或者异步发送。
发送响应
:kafka的发送ack支持三种设置:消息存进memory buffer就返回;等到leader收到消息返回,等到leader和isr的follower都收到消息返回,当然kafka都是异步刷盘。rocketmq都需要等broker的响应确认,有同步刷盘,异步刷盘,同步双写,异步双写等策略,相比于kafka多了一个同步刷盘。
3.Consumer差异
消息过滤
: rocketmq的queue和kafka的partition对应,但rocketmq的topic还能更加细分,可对消息加tag,同时订阅时也可指定特定的tag来对消息做更进一步的过滤。或者向服务器上传一段Java代码,可以对消息做任意形式的过滤,甚至可以做Message Body的过滤拆分。
有序消息
:rocketmq支持全局有序和局部有序,kafka也支持有序消息,但是如果某个broker宕机了,就不能在保证有序了。
消费确认
:rocketmq仅支持手动确认,也就是消费完一条消息ack+1,会定期向broker同步消费进度,或者在下一次pull时附带上offset。kafka支持定时确认,拉取到消息自动确认和手动确认,offset存在zookeeper上。
消费并行度
:kafka的消费者默认是单线程的,一个Consumer可以订阅一个或者多个Partition,一个Partition同一时间只能被一个消费者消费,也就是有多少个Partition就最多有多少个线程同时消费。rocketmq消费者分有序消费模式和并发消费模式,有序模式下,一个消费者也只存在一个线程消费;并发模式下,每次拉取的消息按consumeMessageBatchMaxSize(默认1)拆分后分配给消费者线程池,消费者线程池min=20,max=64。也就是每个queue的并罚度在20-64之间,一个topic有多个queue就相乘。所以rocketmq的并发度比Kafka高出一个量级。
事务消息
:rocketmq指定一定程度上的事务消息,当前开源版本删除了事务消息回查功能,事务机制稍微变得没有这么可靠了,不过阿里云的rocketmq支持可靠的事务消息;kafka不支持分布式事务消息。
消费实时性
:kafka是通过短轮训形式拉取消息,消费实时性取决于轮训间隔;rocketmq是通过长连接形式拉取消息,当有新消息时会立即出发拉取,只要消费能力足够,实时性比价可靠
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/425359
推荐阅读
article
从SparktoKafka:构建
高效
、
可靠
和实时的数据存储和
处理
解决方案
_
spark
kafka
...
作者:禅与计算机程序设计艺术 从Spark到Kafka:构建
高效
、
可靠
和实时的数据存储和
处理
解决方案
作为一位人工...
赞
踩
article
一篇文章把
RabbitMQ
、
RocketMQ
、Kafka三元归一_
kafka
rabbitmq
ro...
一个
RabbitMQ
实例就是一个Broker 虚拟主机。相当于Mysql的DataBase, 一个Broker上可以存在...
赞
踩
article
ELK
Stack
、
Kafka
和
Filebeat
认识
和
使用上手...
通过结合使用
ELK
Stack
、
Kafka
和
Filebeat
,我们可以构建一个强大且灵活的日志管理
和
分析系统。Fi...
赞
踩
article
Docker
安装
RocketMQ
...
【代码】
Docker
安装
RocketMQ
。
Docker
安装
RocketMQ
目录 一、新...
赞
踩
article
RocketMQ
连接报错RemotingConnectException:
connect
to <...
上一篇文章:基于SpringBoot整合
RocketMQ
异步发送短信功能在项目启动的过程中报了
RocketMQ
连接错...
赞
踩
article
大数据环境搭建步骤详解(
Hadoop
,
Hive
,Zookeeper,
Kafka
,
Flume
,Hbas...
基本配置系统:CentOS7.6节点信息:节点ipmaster192.168.185.150slave1192.168....
赞
踩
article
kafka
集群&
kafka
-
eagle
安装
_
安装
kafka
-
edge
...
kafka
集群/
kafka
-
eagle
安装
/手动创建、删除topic_
安装
kafka
-
edge
安装
kafka
-
edge
...
赞
踩
article
EFAK
(
Kafka
Eagle
)安装带有
Kafka
\
Zookeeper
认证_
efak
jmx
po...
Kafka
监控程序
Kafka
Eagle
,结合MySQL对
Kafka
进行监控,配置SASL_PLAINTEXT认证_ef...
赞
踩
article
Kafka
-
监控
工具
Kafka
Eagle
:
实时
洞察
Kafka
集群的利器_
kafka
监控
工具
...
Kafka
Eagle
是一款开源的、高度可定制的
监控
和告警
工具
,专门为Apache
Kafka
设计。它为
Kafka
集群提...
赞
踩
article
kafka
可视化
工具_
kafka
可视化
工具...
平时我们几乎都是查询topics 和 consumer 比较多,选择topics选项卡,右边就会显示
kafka
当前所拥有...
赞
踩
article
Kafka
-
eagle
监控
平台_
kafka
监控
平台...
Kafka
-
eagle
监控
平台_
kafka
监控
平台
kafka
监控
平台 ...
赞
踩
article
吊炸天
的
Kafka
图形化
工具
Eagle
,
必须推荐给你!_
kafka
的
图形化
工具
...
Kafka
是当下非常流行
的
消息中间件
,
据官网透露
,
已有成千上万
的
公司在使用它。最近实践了一波
Kafka
,
确实很好很强大。...
赞
踩
article
Kafka
—
ISR
机制
_
kafka
的
isr
是什么...
ISR
机制
Kafka
中的
ISR
(In-Sync Replicas)
机制
是一种用于确保数据可靠性和一致性的重要
机制
。I...
赞
踩
article
Kafka
-
Eagle
安装
到
使用
全教程_
kafka
eagle
使用
教程...
Kafka
Eagle
监控系统是一款用来监控
Kafka
集群的工具,目前更新的版本是v1.2.3,支持管理多个
Kafka
集群...
赞
踩
article
Kafka
-
Eagle
监控
_
eagle
监控
规则...
支持配置
监控
告警规则,当集群出现异常情况或指标超过预设阈值时,系统会发送告警通知,帮助用户及时发现和解决问题。集群的指标...
赞
踩
article
Kafka
线程
模型
痛点攻克: 提升
分区
写入
2 倍
性能
...
AutoMQ 通过网络处理
模型
的优化,将 Apache
Kafka
的串行处理
模型
优化成了流水线处理
模型
,使得单
分区
的写...
赞
踩
article
【
RocketMQ
】安装与部署(W
in
dows)_please set the
rocketmq
_h...
w
in
dows环境下尝试部署
RocketMQ
,以及处理一些可能出现的问题,包含一些处理思路等。_please set t...
赞
踩
article
Spring
boot
整合
RocketMQ
——使用
rocketmq
-
spring
-
boot
-sta...
使用
rocketmq
-
spring
-
boot
-
starter
来
配置
发送和消费
RocketMQ
消息_
spring
b...
赞
踩
article
kafka
(
六
)
——存储
策略
...
kafka
通过topic作为主题缓存数据,一个topic主题可以包括多个partition,每个partition是一个...
赞
踩
article
分布式
技术
---------------
消息
队列中间件之
Kafka
...
当前比较常见的 MQ 中间件有 ActiveMQ、RabbitMQ、RocketMQ、
Kafka
等。
Kafka
是一个...
赞
踩
相关标签
自然语言处理
人工智能
语言模型
编程实践
开发语言
架构设计
rabbitmq
kafka
分布式
elk
java-rocketmq
rocketmq
java
Linux
RocketMQ
SpringBoot
大数据
hadoop
spark
hive
zookeeper
kafka监控工具
kafka eagle
redpandadata