前面给大家介绍了一下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的区别大家都了解了吗?更多相关内容,请继续关注本站的常见问题栏目了解吧!
推荐阅读: