但是,Kafka本身不是特别适用于物联网应用程序,因为典型的流式处理解决方案和这些物联网解决方案的要求根本就不匹配。Obermaier提到, 特别是与物联网应用程序中可能使用的数百万主题相比较,Kafka的消费者和生产者可以处理的主题数量是有限的。Kafka API实现的复杂性使它不容易在受约束的设备上使用,无法获得物联网的关键特性,如:keep alive、last will and testament,等等。
这就是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插件,另外还有一些其他的开源解决方案。