文档章节

Kafka与RocokeMQ的消息队列对比

m
 miketom155
发布于 2017/06/02 17:22
字数 655
阅读 34
收藏 1
点赞 0
评论 0

消息性能对比:

Kafka和RocketMQ都是磁盘消息队列的模式,对于同一个消费组,一个分区只支持一个消费线程来消费消息。过少的分区,会导致消费速度大大落后于消息的生产速度。所以在实际生产环境中,一个Topic会设置成多分区的模式,来支持多个消费者

Kafka的每个Topic、每个分区都会对应一个物理文件。当Topic数量增加时,消息分散的落盘策略会导致磁盘IO竞争激烈成为瓶颈。而RocketMQ所有的消息是保存在同一个物理文件中的,Topic和分区数对RocketMQ也只是逻辑概念上的划分,所以Topic数的增加对RocketMQ的性能不会造成太大的影响。

在消息发送端,消费端共存的场景下,随着Topic数的增加Kafka吞吐量会急剧下降,而RocketMQ则表现稳定。因此Kafka适合Topic和消费端都比较少的业务场景,而RocketMQ更适合多Topic,多消费端的业务场景。

消费时间对比

Kafka就好像是一个仓库无穷大的物流公司,货物入仓库很快,但是配送多用轮船和汽车,送货速度很慢,比如(某达速运,某通速运)。RocketMQ则像是一个仓库容量有界限的物流公司,货物入库的速度是一定的,但是配送多用飞机和汽车,送货很快(比如某丰速运)
如果公司的业务量非常小,一天中几乎不存在高峰的时段,那么Kafka或RocketMQ都可以。而当消息的处理数量上升后,Kafka累积消息的能力强于RocketMQ,但是把消息投递给消费的能力大幅下降,导致消耗过多的时间(Kafka要133秒,RocketMQ要65秒)。在消息及时性这个场景,RocketMQ完胜Kafka

可靠性:

RocketMQ比Kafka具有更高的单机可靠性。对于普通业务,部署异步刷盘模式可以得到更高的性能;对于丢消息零容忍的业务,则更适用RocketMQ同步刷盘的模式,在享受高可靠性保障的同时,又能拥有较高的吞吐量。

实际上,单机可靠性只是软件可靠性测试的一个环节,Kafka和RocketMQ都提供了主备机模式,来解决服务器的单点故障。这点我们在后续会继续实验摸索,敬请期待接下来的比拼!

 

© 著作权归作者所有

共有 人打赏支持
m
粉丝 1
博文 67
码字总数 53219
作品 0
东莞
程序员
开源软件成熟度评测报告-分布式消息中间件

一、背景 随着互联网技术和金融科技的不断发展,从RPC到Web Service,从SOA的推行再到RESTful以及云计算中PaaS与SaaS的推广,分布式架构在金融企业中得到了广泛应用,消息中间件则在分布式系...

何东杰 ⋅ 2017/12/20 ⋅ 0

RocketMQ与Kafka对比

RocketMQ与Kafka对比(18项差异) 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步...

莫问viva ⋅ 2015/05/08 ⋅ 0

Kafka实战:如何把Kafka消息时延秒降10倍

背景 中软独家中标税务核心征管系统,全国34个省国/地税。电子税务局15省格局。大数据×××局点,中国软件电子税务局技术路径:核心征管 + 纳税服务 业务应用分布式上云改造。 业务难题 如上...

中间件小哥 ⋅ 05/10 ⋅ 0

Kafka、RabbitMQ、RocketMQ消息中间件的对比—— 消息发送性能

中间件小哥 浏览 228 2016-04-08 11:21:09 摘要引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ...

tantexian ⋅ 2016/05/04 ⋅ 0

RocketMQ与Kafka对比(18项差异)

转自:https://github.com/alibaba/RocketMQ/wiki/rmqvskafka 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,...

洋哥6 ⋅ 2016/02/29 ⋅ 0

互联网技术栈 『Contents Catalog』

image.png 编程语言 Java书单——由入门到上天 UML-类间关系 Java解读-ThreadLocal详解与应用 并发编程-Concurrent用户指南 Java并发编程-原子性变量 Java 并发工具包-常用线程池 基于事件驱...

高广超 ⋅ 2017/11/03 ⋅ 0

消息中间件(Kafka/RabbitMQ)收录集

本篇主要整理工作中遇到的一些消息中间件的相关知识,包括Kafka, RabbitMQ, RocketMQ, ActiveMQ等,不排除收录其他消息中间件的可能。 这里会持续收录相关知识,包括安装、部署、使用示例、监...

u013256816 ⋅ 2017/01/26 ⋅ 0

ActiveMQ RabbitMQ KafKa对比

前言: ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还 是可以的,比较清...

xiaomin0322 ⋅ 05/11 ⋅ 0

Kafka与常见消息队列的对比

Kafka与常见消息队列的对比 RabbitMQ Erlang编写 支持很多的协议:AMQP,XMPP, SMTP, STOMP 非常重量级,更适合于企业级的开发 发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持...

无声胜有声 ⋅ 2017/07/28 ⋅ 0

各类消息队列MQ比较

目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业...

郏高阳 ⋅ 2016/05/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 10分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 17分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 21分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 23分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 27分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 31分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 43分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部