kafka和RocketMQ的区别

今天面试字节被问到的问题,当时没有回答好,现在再重新梳理一下

两者都是消息系统,但是kafka已经升级为了流处理平台

RocketMQ的出现是因为kafka不支持在交易、订单、充值等场景下许多特性,于是阿里编写了rocketMQ,定位于非日志的可靠消息传输;而kafka诞生的时候定位是日志传输。

数据可靠性

RMQ支持异步实时刷盘、同步刷盘、同步Replication、异步Replication
同步刷盘在单机上可靠性比kafka高,不会因为操作系统crash,倒是数据丢失
kafka使用异步刷盘、异步Replication
因为异步,主从切换后存在数据丢失,以及数据不一致的情况

性能对比

 kafka单机写入tps在百万/s,消息大小10字节
 RMQ单机7万/s,单机部署3个Broker,可以跑到12w/S,消息10字节
 原因是kafka的Producer支持多个小消息合并,批量发向Broker;
 这也是kafka适合OLAP的原因,实时性不高

 RMQ不这么做的原因
	1:Producer通常使用java,缓存过多消息容易GC
	2:Producer调用发送消息接口
	3:Producer通常为分布式系统,且每台机器都是多线程发送,团队认为线上的系统单个Producer每秒产生的数量有限,不可能上万
	4:缓存功能可以有上层业务实现

单机支持的队列数

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值