Kafka和mq的区别是什么?和rabbitmq有什么区别?

KLQ 2020-05-08 15:17:30 java常见问答 13125

前面给大家介绍了一下Kafka,那么下面要给大家介绍的就是Kafka和mq的区别,那么你对这两者的区别都了解吗?下面一起来具体的看看吧!

一、Kafka和mq的区别

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支持主备模式

Kafka和mq的区别大家都了解了吗?更多相关内容,请继续关注本站的常见问题栏目了解吧!

推荐阅读:

Kafka是什么?特性有哪些?

springboot整合kafka如何实现?示例