MQTT和MQ的区别是什么之kafka和mqtt的区别是什么?

两者虽然都是从传统的Pub/Sub消息系统演化出来的,但是进化的方向不一样,以下是几个比较突出的点:

  1. Kafka是为了数据集成的场景,与以往Pub/Sub消息总线不一样,通过分布式架构提供了海量消息处理、高容错的方式存储海量数据流、保证数据流的顺序等特性。可以参考云上的卡夫卡 - 数据工会
  2. MQTT是为了物联网场景而优化,不但提供多个QoS选项(exact once、at least once、at most once),而且还有层级主题、遗嘱等等特性。可以参考MQTT入门篇 - 数据工会

说白了都是传统消息系统(老爸)的子嗣,只是与不同的场景(老妈)结合的产物。不过,两者却可以结合起来使用。比如可以用MQTT接受物联网设备上传的数据,然后接入Kafka,最后可以同时分发到HDFS归档、数据仓库做OLAP分析、Elasticsearch做全文检索,这样的架构非常适合大型物联网项目,不但能够处理海量数据同时也具有很好的扩展性。

MQTT是在TCP之上的应用层协议,对物联网应用环境做了非常多的优化,TCP是传输层协议,是更通用层的协议
作者:张琪
转载链接:https://www.zhihu.com/question/30343125/answer/81954454

展开阅读全文

没有更多推荐了,返回首页