RabbitMQ与KafKa区别
来源:互联网 发布:vlookup匹配多列数据 编辑:程序博客网 时间:2024/06/10 12:10
在应用场景方面,
RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。
kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。
1)在架构模型方面,
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数据;无消息确认机制。
2)在吞吐量,
kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。
rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。
3)在可用性方面,
rabbitMQ支持miror的queue,主queue失效,miror queue接管。
kafka的broker支持主备模式。
4)在集群负载均衡方面,
kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应topic的broker信息,可以随机或者轮询发送到broker上;并且producer可以基于语义指定分片,消息发送到broker的某分片上。
rabbitMQ的负载均衡需要单独的loadbalancer进行支持。
阅读全文
1 0
- RabbitMQ与KafKa区别
- RabbitMQ与KafKa区别
- kafka与rabbitmq
- amq zeromq rabbitmq kafka 区别
- RabbitMq与Kafka集群设计比较
- Kafka RabbitMQ
- flume与kafka区别
- kafka与rocketmq区别
- AMQP学习 & RabbitMQ 与 ActiveMQ、ZeroMQ以及Kafka的比较
- kafka原理简介并且与RabbitMQ的选择
- RabbitMQ vs Kafka
- RabbitMq、ActiveMq、ZeroMq、kafka
- rabbitmq和kafka
- RabbitMQ和kafka对比
- ActiveMQ RabbitMQ KafKa对比
- 消息队列之--kafka ----rabbitMQ
- 消息队列RabbitMQ和Kafka
- Kafka, ZeroMQ, RabbitMQ, ActiveMQ ,Redis
- 遍历数组的问题(一)
- bash: 常用语法速查
- 设计模式(3)
- Android build system & Android.mk 规范
- 桶排序、冒泡排序、快速排序 -- 算法学习 小结篇
- RabbitMQ与KafKa区别
- 阿里巴巴蚂蚁金服2018届校园招聘Java/c++内推面试题2017年
- Android View不同状态的设置
- 线上操作与线上问题排查实战
- Linux功耗管理(12)_Hibernate功能
- xlua的util.createdelegate应用
- redtigerSQL注入
- Android官方DataBinding(二):动态数据更新notifyPropertyChanged
- 微服务架构(Microservice Architecture)