PHP

首页 -  PHP  -  kafka和rabbitmq对比

kafka和rabbitmq对比

kafkarabbitmq对比

在应用场景方面 RabbitMQ RabbitMQ遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要 求比较高的消息传递上,适合企业级的消息发送订阅,也是比较受到大家欢迎的。 kafka kafkaLinkedin201012月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。常用日志采集,数据采集 上。 在架构模型方面, RabbitMQ RabbitMQ遵循AMQP协议,RabbitMQbrokerExchange,Binding,queue组成, 其中exchangebinding组成了消息的路由键;客户端Producer通过连接channelserver进行通信,Consumerqueue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。 rabbitMQbroker为中心;有消息的确认机制。 kafka kafka遵从一般的MQ结构,producerbrokerconsumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker 上批量pull数据;无消息确认机制。 在吞吐量 kafka kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy 机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。 rabbitMQ rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。 在可用性方面, rabbitMQ rabbitMQ支持 mirorqueue,主queue失效,miror queue接管。 kafka kafkabroker支持主备模式。 在集群负载均衡方面, kafka kafka采用zookeeper对集群中的brokerconsumer进行管理,可以注册topiczookeeper上;通过 zookeeper的协调机制,producer保存对应topicbroker信息,可以随机或者轮询发送到broker上;并且producer 可以基于语义指定分片,消息发送到broker的某分片上。 rabbitMQ 4种集群模式,主流的是镜像模式。

(0)
分享:

本文由:xiasohu168.com 作者:xiaoshu发表,转载请注明来源!

相关阅读