Kafka和mq的区别是什么?

张锋 4年前 访问:699 评论:0 关注:0

1、集群负载均衡

从集群负载均衡方面来说

rabbitMQ的负载均衡需要单独的loadbalancer进行支持

kafka采用的是zookeeper对集群中的broker、consumer进行管理,能够注册topic到zookeeper上

通过zookeeper的协调机制,producer保存对应topic的broker信息,能够随机或者是轮询发送到broker上

producer能够基于语义指定分片,消息发送到broker的某分片上

 
 
 

2、吞吐量

从吞吐量方面来说

rabbitMQ比kafka的吞吐量要稍微逊色一些,两者的出发点是不一样的,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作,基于存储的可靠性的要求存储可以采用内存或者是硬盘

kafka有着较高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率非常高

 
 
 

3、架构模型

从架构模型方面来说

RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键

客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)

rabbitMQ以broker为中心

有消息的确认机制

kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据

无消息确认机制

 
 
 

4、 可用性

从可用性方面来说

rabbitMQ支持miror的queue,主queue失效,miror queue接管

kafka的broker支持主备模式

评论

还没有人评论 ~

❤❤❤❤❤❤
心情
此图名叫《暗淡蓝点》
1990年2月14日,由旅行者1号拍摄,
蓝色的点就是地球
或许你看不清,因为地球在宇宙中太小了。