用MQTT吧,可以建立大量的长连接。

  1. 在TCP之上的应用层协议,对物联网应用环境做了非常多的优化,TCP是传输层协议,是更通用层的协议
  2. MQTT是一种专门为物联网弱环境下建立的协议。适用M2M。而kafka是一种mq。
  3. MQTT是为了物联网场景而优化,不但提供多个QoS选项(exact once、at least once、at most once),而且还有层级主题、遗嘱等等特性。

两者可以结合起来使用。比如可以用MQTT接收物联网设备上传的数据,然后接入Kafka,最后可以同时分发到HDFS归档、数据仓库做OLAP分析、Elasticsearch做全文检索,这样的架构非常适合大型物联网项目,不但能够处理海量数据同时也具有很好的扩展性。