您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
Aliware MQ在移动端/物联网领域应用
 
  来源:yq.aliyun.com 发布于 2017-1-11
   次浏览      
 

在互联网高速发展的今天,对网络的接入已经不局限于桌面端的应用,更多的是移动端,网页端等场景。这些亿万级的设备和终端大多通过WiFi,4G等通讯媒介接入互联网,而这些海量设备终端之间如何实现相互通信是一个问题。在这个问题中消息服务是一个不可或缺的环节,通过消息系统可以很好的解决设备之间的信息互通问题,例如数据的上传和命令下发,以及端和端之间的即时通讯等。

一、背景介绍

Aliware MQ是阿里云商用的专业消息中间件,是企业级互联网架构的核心产品。针对移动端物联网等领域使用消息系统的场景,MQ通过支持标准MQTT协议的方式来满足需求。MQTT协议是一种轻量的,基于发布订阅模型的即时通讯协议。该协议设计开放,协议简单,平台支持丰富,几乎可以把所有联网物品和外部连接起来,因此在移动互联网和物联网领域拥有众多优势。通过比较可以发现,MQTT协议主要包括以下特点:

使用发布/订阅消息模式,提供一对多的消息分发,解除了端和端之间的耦合;

对负载内容屏蔽的消息传输;

使用 TCP/IP 提供基础的网络连接;

有三种级别的消息传递服务;

小型传输,开销很小,协议交换最小化,以降低网络流量;

二、系统架构

AliWare MQ完整支持MQTT3.1.1协议,通过在MQ Core基础上增加MQTT协议网关的方式对互联网上的客户端提供服务。整个系统架构如下图所示:

其中,MQ Core Service 负责底层的消息存储和分发,上层支持MQ私有协议服务器以及MQTT协议 网关服务器。MQTT网关负责对用户的 MQTT 客户端提供服务,同时负责 MQTT 协议和后端 MQ 私有协议的转换。主要工作如下:

提供 MQTT 服务,将用户的 MQTT 消息转换成后端 MQ 消息存储到 MQ 核心系统中,实现数据上行采集。

接收来自 MQ 的消息,并将消息转换成对应的 MQTT 消息,推送给 MQTT 客户端,实现数据下行推送。

基于Aliware MQ的MQTT服务相比其他物联网消息服务具有以下优势:

支持标准的 MQTT 协议,应用方无技术捆绑,可以无缝迁移。

可以支持移动端 MQTT 消息和服务端 MQ 消息的相互流转,实现服务端和移动端的双向打通。

支持设备级权限控制,并支持SSL/TLS加密通信,数据传输更安全可靠。

兼容任何支持 MQTT 3.1.1协议的 SDK,覆盖绝大多数移动端开发语言和平台。

三、应用场景

截止目前,Aliware MQ已经为数百位用户提供MQTT服务,每天支持千万级设备在线互动,十万级TPS的消息推送。这些用户的使用场景覆盖了直播互动,车联网,金融支付,即时聊天等多个场景。同时,MQTT服务端采用分布式理念进行设计,系统无单点瓶颈,各个组件都可以无限水平扩展,保证容量可以跟随用户在线使用量进行调整。

四、特色功能

MQ针对MQTT移动端开发流程中常见的问题,优化了资源申请创建等流程,提供包括Java,Android,IOS等多个端的一键运行demo,大大降低接入成本。同时,依托于MQ Core强大的消息处理能力,可以保证服务大量在线客户端的同时做到消息的低延迟推送,极大的优化了用户的消息传输体验。最后,为了方便用户进行日常开发和线上业务评估,在控制台上开放了包括设备在线状态统计,消息收发报表数据等一系列查询功能。

1.便捷的接入流程

使用Aliware MQ的MQTT服务仅仅需要申请消息收发的Topic和客户端分组GroupID,然后即可使用任何兼容MQTT3.1.1协议的客户端SDK编写程序进行消息收发。申请资源过程如下图所示:

具体流程请参考接入文档。

2.强大的推送能力

依托于MQ Core强大的消息处理能力,MQTT服务端可以提供千万级的客户端同时在线互动,同时能够做到消息的毫秒级推送延迟。具体的数据参考下图,在30w+TPS的推送下保持100ms级的推送延迟。

水平扩展

3.丰富的运维查询功能

MQ通过控制台和OpenAPI开放了丰富的运维查询功能,分别是设备维度的状态数据查询,分组维度的在线统计查询,以及消息维度的收发统计。

设备状态查询:

通过输入完整的设备ClientID即可定位该设备目前的在线状态,订阅关系等数据,可以清晰定位消息收发不正确的原因。

分组状态查询:

通过分组GroupID即可得到当前分组目前的在线终端数量,以及历史在线曲线,方便业务方进行准确的业务发展规模评估。

分组堆积查询:

通过对消息收发过程的埋点分析,MQ支持分组设备的消息堆积查询,可以第一时间对指定分组消息收发的异常进行预警。

消息维度报表查询:

MQTT消息支持完善的数据收发统计报表,用户可以配置多个过滤条件,比如子topic,qos,发布订阅类型等条件来统计自己关心的消息收发量和TPS。

   
次浏览       
 
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
 
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
 
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件的思考
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS
更多...   
相关培训课程

云计算原理与应用
Windows Azure 云计算应用

摩托罗拉 云平台的构建与应用
通用公司GE Docker原理与实践
某研发中心 Openstack实践
知名电子公司 云平台架构与应用
某电力行业 基于云平台构建云服务
云计算与Windows Azure培训
北京 云计算原理与应用