zoukankan      html  css  js  c++  java
  • MQTT 与 RocketMQ 的应用场景对比

    本文主要在什么是微消息队列 MQTT?的基础上介绍微消息队列 MQTT 和传统消息中间件的关联和区别,并针对实际应用场景下的产品选型给出建议。

    背景信息

    传统的消息中间件,例如消息队列 RocketMQ、消息队列 Kafka 等都是面向微服务大数据等领域,负责消息的存储和转发,消息的生产者和消费者都是服务端应用

    这种设计很适合服务端技术栈固定、语言平台固定的场景。而移动互联网和 IoT 领域则有所不同,这类场景更侧重于多语言多平台的海量设备接入,消息的生产和消费过程的业务属性很突出,传统的消息中间件并不适合这些领域。

    秉承单一职责的原则,微消息队列 MQTT 在设计上是一个面向移动互联网和 IoT 领域的无状态网关,只关心海量移动端设备的接入、管理和消息传输,消息数据的存储则都会路由给后端存储产品,例如传统的消息中间件消息队列 RocketMQ、消息队列 Kafka 等产品。

    在这种职责划分下,终端设备将消息发送到微消息队列 MQTT 后,消息会根据微消息队列 MQTT 绑定的存储产品被路由到指定产品云端应用依然可以维持传统的微服务开发方案,通过对接云端存储产品即可和终端设备进行互动,两者之间通过微消息队列 MQTT 实现了数据互通能力

    适用场景对比

    在一个业务场景中,可能包含多种不同类型的应用组件,每个组件承担不同的角色。因此,在方案选型时如需要使用到消息产品,需要先了解微消息队列 MQTT 和传统消息中间件的关联和区别,合理搭配使用,比如组件 A 的消息收发使用微消息队列 MQTT,组件 B 的消息收发使用消息队列 RocketMQ。

    下文将根据场景举例描述微消息队列 MQTT 和传统的消息中间件的区别,为方便描述,传统的消息中间件以消息队列 RocketMQ 为例,其他产品例如消息队列 Kafka 和消息队列 AMQP(RabbitMQ)同理。

    组合使用场景示例

    场景示例一

    物联网 IoT 场景中,成千上万(甚至数百万)规模的设备传感器可使用微消息队列 MQTT 上传数据,需做数据分析的服务端(即部署在服务器上的应用)则可以通过消息队列 RocketMQ 完成数据的分析与处理。

    场景示例二

    车联网场景中,上百万辆车需要上传车辆信息数据到云端(服务端),云端同时也会下发指令到任意车辆或广播到所有的车辆。车辆可以通过 MQTT SDK 连接到微消息队列 MQTT 实现数据上报以及指令接收,监管系统(数据分析系统)可以通过消息队列 RocketMQ 的 SDK 进行消息订阅以及指令下发。如下图所示:

     基于以上区别,推荐您在移动端设备上使用微消息队列 MQTT,而在服务端应用中则使用消息队列 RocketMQ(或者其他消息产品)。

    功能对比

    微消息队列 MQTT 和消息队列 RocketMQ 的具体功能特性的对比如下:

    选型指导

    基本原则总结如下:

    对于部署在服务器上的应用,推荐使用消息队列 RocketMQ 接入。

    对于部署在移动终端、App 或浏览器页面等平台上的应用,推荐使用微消息队列 MQTT 接入。

    针对常见的应用场景,建议的微消息队列 MQTT 和消息队列 RocketMQ 选型如下:

    √ 表示建议使用该消息队列产品;× 表示不建议使用该消息队列产品。

     

    原文地址https://help.aliyun.com/document_detail/94521.html

  • 相关阅读:
    转:PHP环境搭建
    证件号码
    3、SourceTree通过PUTTY连接GitLab
    2、gitlab 新建项目
    java基础31 List集合下的Vector集合
    java基础30 List集合下的LinkedList集合
    java基础29 迭代器 listIterator() 及各种遍历集合的方法
    java基础28 单例集合Collection下的List和Set集合
    java基础27 单例集合Collection及其常用方法
    错误/异常:The project cannot be built until build path errors are resolved 和 Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'MyJavaCode';的解决方法
  • 原文地址:https://www.cnblogs.com/111testing/p/11488193.html
Copyright © 2011-2022 走看看