kafka-vs-rabbitmq

对比项 kafka rabbitmq
架构 kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据;无消息确认机制。 RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;有消息的确认机制。
可靠性 消息默认磁盘持久化,可以制定多副本,消息消费不会删除 消息持久化, 消息接收、发送确认, 高可用集群
吞吐能力 intel Xeon 2.5 GHz processor with six cores
Six 7200 RPM SATA drives
32GB of RAM
1Gb Ethernet
一个消息生产端,无备份,每秒消息数821557条,传输量78m/s。
单节点传输速度8745msg/s,传输量10m/s
集群 kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应topic的broker信息,可以随机或者轮询发送到broker上;并且producer可以基于语义指定分片,消息发送到broker的某分片上 rabbitMQ的负载均衡需要单独的loadbalancer进行支持。
消息隔离性 通过acl控制topic访问 基于vhost做消息隔离,用户对queues,exchanges,channels等权限独立
监控 三方kafka-manager提供,详见下方提供的管理页面 自身集成rabbitmq-management

rabbitmq管理页面
username:guest
password:guest
kafka管理页面

分享到