HiveMQ 最近发布了 HiveMQ Enterprise Extension for Kafka,旨在集成 Kafka 和 MQTT,以实现物联网应用程序的实时流。

HiveMQ Enterprise Extension for Kafka 是 HiveMQ broker 的 Kafka 协议实现,支持 broker 充当 Kafka 客户端,并让来自物联网设备的消息流式传输到一个或多个 Kafka 集群中。

HiveMQ 首席技术官 Dominik Obermaier 表示,Kafka 可以为物联网解决方案带来很多价值,因为它可以可以处理大量实时数据的能力,并提供了高吞吐量和低延迟。

有些受访的 HiveMQ 客户表示,他们有数百万台设备和消息吞吐量非常高的集群,我们发现很有必要为创建 MQTT broker Kafka 扩展 […]。他们希望使用 MQTT 和 HiveMQ 把数据从设备移动到不同的后端系统。这些后端系统既包括 Kafka 系统,也包括非 Kafka 系统。

但是,Kafka 本身不是特别适用于物联网应用程序,因为典型的流式处理解决方案和这些物联网解决方案的要求根本就不匹配。Obermaier 提到, 特别是与物联网应用程序中可能使用的数百万主题相比较,Kafka 的消费者和生产者可以处理的主题数量是有限的。Kafka API 实现的复杂性使它不容易在受约束的设备上使用,无法获得物联网的关键特性,如: keep alivelast will and te stament ,等等。

这就是 HiveMQ Enterprise Extension for Kafka 可以大展身手的地方。事实上,其关键特性之一是能够把 MQTT 主题映射到 Kafka 主题,这样就解决了 Kafka 不适合处理大量主题的问题。同样,所有物联网设备将只看到 MQTT broker,因此,它们可以继续使用 MQTT,并完全支持 keep alive、last will and testament。此外,如果网络的不可靠性可能破坏 broker 和 Kafka 集群之间的连接,那么,前者将缓存所有接收到的消息,确保它们不会丢失。

HiveMQ Enterprise Extension for Kafka 不是唯一能够实现 MQTT-Kafka 互操作性的解决方案。竞争对手的解决方案是 Confluent Kafka Connect MQTT ,提供了 Kafka Connect 插件,另外还有一些其他的 开源解决方案

基于发布和订阅模型的 Kafka 是处理和分发实时数据流应用最广泛的平台之一。MQTT 是发布和订阅协议,由于其占用空间小、实时保证并适用于高延迟、低吞吐量及不可靠的网络,因此,它特别适合物联网应用程序。

在相关的说明中,HiveMQ 最近 宣布开源 HiveMQ 社区版本 、MQTT broker 和 HiveMQ MQTT 客户端 。MQTT 客户端是和 BMW Car IT 合作构建的,特别针对内存和 CPU 受限设备的高吞吐量和性能进行了调优。

阅读英文原文: HiveMQ Goes Open Source, Brings MQTT and Kafka Together

相关文章