gpt4 book ai didi

apache-kafka - MQTT 代理和 Apache Kafka 有什么区别

转载 作者:行者123 更新时间:2023-12-03 09:49:29 25 4
gpt4 key购买 nike

我正在开发一个移动消息应用程序。我正在研究所需的技术,并找到了两个 MQTT 和 Apache Kafta。对我来说,两者似乎都以相同的方式做同样的事情(就订阅和发布主题而言)。

我听说 MQTT 非常轻巧,适合手机使用?那么基本上这两者之间有什么区别,彼此的优势是什么?

最佳答案

Kafka 背后的主要动机是可扩展性。

MQTT 是一种具有公共(public)规范的协议(protocol),用于轻量级客户端/消息代理通信,允许发布/订阅交换。存在多个客户端库和代理(Mosquitto、JoramMQ...)的实现并且几乎是兼容的。 MQTT 只指定了传输,模糊地指定了应用程序部分(即如何处理和可能存储数据,如何授权客户端......)。规范不清楚主题上消耗的数据是否只是实时的或可能是持久的。该规范没有说明实现 MQTT 的消息代理可以/应该如何扩展。

另一方面, Apache 卡夫卡是一个基于内部“提交日志”的消息代理:它的重点是将海量数据存储在磁盘上,并允许实时或稍后消费(只要数据仍然在磁盘上可用)。它被设计为可部署为多个节点的集群,具有良好的可扩展性。 Kafka 使用自己的网络协议(protocol)。

所以你在这里比较两个不同的东西:一个标准的 pub/sub 协议(protocol)(具有多种实现),以及一个特定的消息存储/分发软件,同族的 vaguley 具有自己的协议(protocol)。

我想说,如果您需要存储大量消息,以确保批处理,请多看 Kafka。如果您有很多客户端/应用程序在许多独立主题上实时交换消息,请更多地查看 MQTT(甚至 AMQP)消息代理实现。

关于apache-kafka - MQTT 代理和 Apache Kafka 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391827/

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