本文主要在什么是微消息队列 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

MQTT 与 RocketMQ 的应用场景对比的更多相关文章

  1. 转 Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和优势

    Kafka.RabbitMQ.RocketMQ等消息中间件的对比 —— 消息发送性能和优势 引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前 ...

  2. 转发:RocketMQ与kafka的对比

    淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kaf ...

  3. Activemq、Rabbitmq、Rocketmq、Kafka的对比

    综上所述,各种对比之后,我个人倾向于是: 一般的业务系统要引入MQ,最早大家都用ActiveMQ,但是现在确实大家用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃,所以大家还是算了吧,我个人 ...

  4. RocketMQ原理分析&场景问题

    硬核干货分享,欢迎关注[Java补习课]成长的路上,我们一起前行 ! <高可用系列文章> 已收录在专栏,欢迎关注! 一.RocketMQ的基本原理 RocketMQ基本架构图如下 从这个架 ...

  5. Kafka、RabbitMQ、RocketMQ等消息中间件的对比

    Kafka 是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目.Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输.0 ...

  6. 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表

    1.服务端软件对比 https://github.com/mqtt/mqtt.github.io/wiki/servers 名称(点名进官网) 特性 简介 收费 支持的客户端语言 IBM MQ 完整的 ...

  7. Kafka与RocketMq文件存储机制对比

    一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一. 开头问题 kafka文件结构和rocketMQ文件结构是什么样子?特点是什么? 一.目录结构 Kafk ...

  8. RocketMQ 消息丢失场景分析及如何解决

    生产者产生消息发送给RocketMQ RocketMQ接收到了消息之后,必然需要存到磁盘中,否则断电或宕机之后会造成数据的丢失 消费者从RocketMQ中获取消息消费,消费成功之后,整个流程结束 1. ...

  9. MySQL和Mongodb的区别与应用场景对比

    MySQL是关系型数据库 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点 ...

随机推荐

  1. 爬虫之scrapy框架的crawlspider

    一,介绍 CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能.其中最显著的功能就是”LinkExtractors链接提 ...

  2. quartz——JobExecutionContext和JobDataMap

    控制器传值,需要根据对应值创建,启动以及对定时任务的相关操作:JobExecutionContext和JobDataMap基本用法,代码待优化,主要是用法吧第一:控制器, @RequestMappin ...

  3. Replication Controller 和 Replica Set

    使用Replication Controller . Replica Set管理Pod Replication Controller (RC) 简写为RC,可以使用rc作为kubectl工具的快速管理 ...

  4. BS开发扫盲篇-前端技术风云录

    BS开发扫盲篇-前端技术风云录 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.     一.HTML诞生 HTML(HyperText Markup Language)超文本标记语言 ...

  5. Docker Private Registry 常用组件

    Docker Private Registry 常用组件 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Registry概述 1>.什么是registry ...

  6. Mysql InnoDB行锁不使用索引锁表的时候会锁整张表

    原文:http://www.thinkphp.cn/topic/41577.html 如果使用针对InnoDB的表使用行锁,被锁定字段不是主键,也没有针对它建立索引的话.行锁锁定的也是整张表.锁整张表 ...

  7. 【实战3】记一次内网中反弹shell的艰难历程

    # 0x00 前言 最近在客户现场对内网服务器进行渗透测试,发现了大量的弱口令,本次历程就是从这里开始··· # 0x01 弱口令 对目标ip进行端口扫描,开放端口为80,445,1433,3389- ...

  8. QA流程

    一.测试人员的介入时间 1.当产品经理与业务人员制定需求的时候,测试人员不宜介入: 2.当下一期的需求原型出来以后,这个时候就进入了需求评审.需求分析阶段,此时,测试人员应该介入: 3.当开发人员在编 ...

  9. Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation(知识图谱)

    知识图谱(Knowledge Graph,KG)可以理解成一个知识库,用来存储实体与实体之间的关系.知识图谱可以为机器学习算法提供更多的信息,帮助模型更好地完成任务. 在推荐算法中融入电影的知识图谱, ...

  10. 攻击链路识别——CAPEC(共享攻击模式的公共标准)、MAEC(恶意软件行为特征)和ATT&CK(APT攻击链路上的子场景非常细)

    结合知识图谱对网络威胁建模分析,并兼容MITRE组织的CAPEC(共享攻击模式的公共标准).MAEC和ATT&CK(APT攻击链路上的子场景非常细)等模型的接入,并从情报中提取关键信息对知识图 ...