当前位置:首页 > MQ > 正文内容

kafka和rabbitmq什么区别,各自适合什么场景?

phpmianshi6年前 (2015-04-24)MQ433

RabbitMQ

1.RabbitMQ遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上,适合企业级的消息发送订阅。

2.RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;有消息的确认机制。

3.rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。

4.rabbitMQ支持mirror的queue,主queue失效,mirror queue接管。

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


Kafka

1.kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。常用日志采集,数据采集上

2.kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据;无消息确认机制。

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

4.kafka的broker支持主备模式。

5.kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应topic的broker信息,可以随机或者轮询发送到broker上;并且producer可以基于语义指定分片,消息发送到broker的某分片上。


版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

redis实现消息消费确认(ack机制)

消息中间件有很多,例如 ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。这些消息系统都很专业,无论是可靠性,容错性,高性能都有自己独特的特点,那...

 中间件RabbitMQ在生产环境占用CPU过多的情况

中间件RabbitMQ在生产环境占用CPU过多的情况

我们项目中用的消息中间件是RabbitMQ,这个消息中间件在使用起来停方便的,也比较健壮,但是使用不当,会对服务器造成很大的压力,会把CPU占用比占到70%左右,今天就来分析一下造成这个结果的原因。要...

Rabbitmq官方的六种工作模式

Rabbitmq官方的六种工作模式

RabbitMQ的六种工作模式:官网介绍:https://www.rabbitmq.com/getstarted.html这里简单介绍下六种工作模式的主要特点:简单模式:一个生产者,一个消费者work...

RabbitMQ - 架构及工作原理

RabbitMQ - 架构及工作原理

1. 系统架构从示意图可以看出消息生产者并没有直接将消息发送给消息队列,而是通过建立与Exchange的Channel,将消息发送给Exchange,Exchange根据规则,将消息转发给指定的消息队...

RabbitMQ的PHP实现代码

接下来看一下创建队列及接收消息的TP5.1示例:需要提前启动消费者,绑定交换机与队列,并指定路由键1.测试多消费者监听同一个事件,打开2个消费者,启动生产者,发现2个消费者可以同时收到消息2.测试消费...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。