我正在开发一个移动消息传递应用。我正在通过所需的技术,发现两个MQTT & Apache Kafta。对我而言,两人似乎都以同样的方式做了同样的事情(就订阅&发布到某个主题而言)。MQTT代理和Apache Kafka有什么区别
我听说MQTT适合手机使用,因为它重量很轻?所以基本上这两者之间有什么区别,以及每个人的优势是什么?
我正在开发一个移动消息传递应用。我正在通过所需的技术,发现两个MQTT & Apache Kafta。对我而言,两人似乎都以同样的方式做了同样的事情(就订阅&发布到某个主题而言)。MQTT代理和Apache Kafka有什么区别
我听说MQTT适合手机使用,因为它重量很轻?所以基本上这两者之间有什么区别,以及每个人的优势是什么?
kafka背后的主要动机是缩放。
MQTT是一个具有轻量级客户端/消息代理通信公共规范的协议,允许发布/订阅交换。客户端库和代理(Mosquitto,JoramMQ ...)的多种实现存在并且几乎兼容。 MQTT只是指定了传输,并且隐含了应用程序部分(即如何处理和可能存储数据,如何授权客户端......)。规范并不清楚在某个主题上使用的数据是实时的还是可能存在的。该规范没有说明如何实现MQTT的消息代理可以/应该扩展。另一方面,Apache Kafka是基于内部“提交日志”的消息代理:其重点是在磁盘上存储大量数据,并允许实时或稍后使用(只要数据是仍然可用在磁盘上)。它被设计成可以作为多节点的集群部署,具有良好的可扩展性。卡夫卡使用自己的网络协议。
所以你在这里比较两个不同的东西:一个标准的pub/sub协议(有多个实现)和一个特定的消息存储/分发软件,同一个family的vaguley有自己的协议。
我想说,如果你需要存储大量的消息,以确保批处理,更多地看卡夫卡。如果您有许多客户端/应用程序在许多独立主题上实时交换消息,请更多关注MQTT(甚至是AMQP)消息代理程序的实现。
Stackoverflow不是要求比较技术的场所 – hardillb