对比项 | 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管理页面