gpt4 book ai didi

rabbitmq - RabbitMQ 和 kafka 有什么区别?

转载 作者:行者123 更新时间:2023-12-05 01:44:53 26 4
gpt4 key购买 nike

不同场景下哪个更公平?

我知道 RabbitMQ 基于 AMQP 协议(protocol),并且对开发者具有可视化。

最佳答案

如您所述,RabbitMQ 是 AMQP 的一种实现。 AMQP是一种消息协议(protocol),起源于金融行业。它的核心隐喻是消息、交换和队列。

Kafka 被设计为一个日志结构的分布式数据存储。它具有使其适合用作消息传递系统的一部分的功能,但它也可以适应其他用例,如流处理。它起源于 LinkedIn,其核心隐喻是消息、主题和分区。

主观上,我发现 RabbitMQ 使用起来更愉快:它基于 Web 的管理工具很好;在创建、删除和配置队列和交换器时几乎没有摩擦。图书馆对多种语言的支持都很好。由于在其默认配置中,Rabbit 仅将消息存储在内存中,因此延迟很低。

Kafka 更年轻,工具感觉更笨重,并且它在非 JVM 语言中的支持相对较差,尽管这正在变得更好。另一方面,它在面对网络分区和代理丢失时有更强的保证,并且由于它旨在尽快将消息移动到磁盘,因此它可以在典型部署上容纳更大的数据集。 (Rabbit 可以将消息分页到磁盘,但有时效果不佳)。

在任何一种情况下,您都可以设计直接(一:一)、扇出(一:多)和发布-订阅(多:多)通信模式。

如果我要构建一个需要缓冲大量传入数据并具有强大持久性保证的系统,我肯定会选择 Kafka。如果我正在使用 JVM 语言或需要对数据进行一些流处理,那只会加强选择。

另一方面,如果我有一个用例,在这个用例中我更看重延迟而不是吞吐量,并且可以处理 transient 消息丢失,我会选择 Rabbit。

关于rabbitmq - RabbitMQ 和 kafka 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44452199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com