当前位置:   article > 正文

5.5 kafka和rabbitmq全面对比分析_kafka为什么比rabbitmq快

kafka为什么比rabbitmq快

1、功能方面

1)Kafka可以认为是简单的用文件实现了队列的功能, 消息按顺序存储在文件中(写入磁盘), 需要消费者自己去记录当前读取到了哪个位置。

2)Rabbitmq则实现了多种类型的exchange, 多种类型的消息,既可以实现持久化存储(写入磁盘), 又可以实现非持久化存储(写入内存),还有ack机制,支持事务, 还提供了web界面直观的看到各种exchange、queue的情况,及其读写、并发等实时数据。

3)Kafka主要使用pull的方式进行消费,而rabbitmq则pull和push都实现了。

4)正因为kafka功能简单, 而rabbitmq功能复杂强大, 所以kafka更容易上手。

2、性能方面

Kafka的吞吐量更高, 主要有

1)Zero Copy机制,内核copy数据直接copy到网络设备,不必经过内核到用户再到内核的copy,减小了copy次数和上下文切换次数,大大提高了效率。

2)磁盘顺序读写,减少了寻道等等的时间。

3)批量处理机制,服务端批量存储,客户端主动批量pull数据,消息处理效率高。

4)存储具有O(1)的复杂度,读物因为分区和segment,是O(log(n))的复杂度。

3、可靠性方面

Rabbitmq有ack、事务等, 可靠性更高, 而kafka仅仅在消费者端保存了一个offset记录消费情况, 很容易出现多次消费的情况, 需要在逻辑层保证消费的幂等性

4、使用场景

Kafka本身具有较高的吞吐量, 可以对数据进行存储, 适合在对消息可靠性要求不高的场景下做缓冲(比如日志系统)。

Rabbitmq则功能更强大,但是并发和缓冲能力不如kafka, 适合在对可靠性和实时性要求高的情况下使用。另外目前还有不少rpc框架支持rabbitmq(比如直播、转账等) 。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/716777
推荐阅读
相关标签
  

闽ICP备14008679号