赞
踩
rocketMq和kafka对比_要争气的博客-CSDN博客
四个点可以说
从架构上来说
rocketmq是 nameserver broker
Nameserver互相数据不互通通过心跳监听broker,保存的是所有的broker的信息。
kafka是 zookeeper和broker
从存储结构上来说
rokcetmq是一个topic共享一个log文件
而kafka是一个topic下分区,分区又分为segment 每个segment会包含一个log数据文件和一个索引文件。
从生产者来说
从消费者来说
数据可靠性
RocketMQ新增了同步刷盘机制,保证了可靠性;一个RocketMQ实例只有一个partition, 在replication时性能更好。
性能对比
发送消息的Producer通常是用Java语言,缓存过多消息,GC是个很严重的问题。(问题:难道kafka用scala不需要GC?)
Producer发送消息到broker, 若消息发送出去后,未达到broker,就通知业务消息发送成功,若此时Broker宕机,则会导致消息丢失,从而导致业务出错。
Producer通常为分布式系统,且每台机器都是多线程发送,通常来说线上单Producer产生的消息数量不会过万。
消息合并功能完全可由上层业务来做
————————————————
一句话概括:RocketMQ写入性能上不如kafka, 主要因为kafka主要应用于日志场景,而RocketMQ应用于业务场景,为了保证消息必达牺牲了性能,且基于线上真实场景没有在RocketMQ层做消息合并,推荐在业务层自己做。
单机支持的队列数
RocketMQ支持的队列数远高于kafka支持的partition数,这样RocketMQ可以支持更多的consumer集群。
—————————————————
kafka相比RocketMQ的优势
1、单机吞吐量TPS可上百万,远高于RocketMQ的TPS7万每秒,适用于日志类消息。
2、kafka支持多语言的客户端
RocketMQ相比kafka的优势
**1、保证消息不丢( 数据可靠性达10个9)
2、可严格保证消息有序
3、支持分布式事务消息
4、支持按时间做消息回溯(可精确到毫秒级)
5、支持按标识和内容查询消息,用于排查丢消息
6、支持消费失败重试
7、可支持更多的partition, 即更多的消费线程数
————————————————
Topic和Tag的区别?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。