RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

_ActiveMqRabbitMqKafkaRocketMq
producer容错,是否会丢数据有ack模型,也有事务模型,保证至少不会丢数据。ack模型可能会有重复消息,事务模型则保证完全一致批量形式下,可能会丢数据。 非批量形式下, 1. 使用同步模式,可能会有重复数据。 2. 异步模式,则可能会丢数据。
consumer容错,是否会丢数据有ack模型,数据不会丢,但可能会重复处理数据。批量形式下,可能会丢数据。非批量形式下,可能会重复处理数据。(ZK写offset是异步的)
架构模型基于JMS协议基于AMQP模型,比较成熟,但更新超慢。RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;有消息的确认机制producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据;无消息确认机制。
吞吐量rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高
可用性rabbitMQ支持miror的queue,主queue失效,miror queue接管kafka的broker支持主备模式
集群负载均衡rabbitMQ的负载均衡需要单独的loadbalancer进行支持kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应topic的broker信息,可以随机或者轮询发送到broker上;并且producer可以基于语义指定分片,消息发送到broker的某分片上
事务支持支持不支持不支持支持

其它参考资料:

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总
http://blog.csdn.net/linsongbin1/article/details/47781187

Kafka Producer机制优化-提高发送消息可靠性
http://blog.csdn.net/lizhitao/article/details/52332956

腾讯 VS 阿里 VS 携程消息中间件设计方案及思路
http://blog.csdn.net/lizhitao/article/details/51718156

apache kafka技术分享系列(目录索引)
http://blog.csdn.net/lizhitao/article/details/39499283

十分钟入门RocketMQ
http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/

rocketmq 官网
http://rocketmq.incubator.apache.org/

MQ对比
https://wenku.baidu.com/view/53c7cb2c84254b35effd34c3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值