玩转MQTT-阿里云之MQTT使用(上)

引言

       前两年买一款物联网控制板,当时把玩了一阵以后,验证了下串口通信、MODBUS协议实现、TCP/UDP/DNS/MQTT通信(基于GPRS)后,就放到角落里吃灰了呵。html

最近收到阿里云的优惠推送,说是什么每个月百万条次使用免费,因而想起了这套吃灰装备,是否是也高大上一把,体验下支持高可用、高并发的阿里云,玩下阿里云的MQTT服务呢?编程

      说干就干。网络

阿里云服务

      许多人对云服务只知其一;不知其二,觉得知道个ECS/云主机,就是云服务的所有了。其实,云服务有许多内容,消息中间件服务也是其中一种。并发

      本次咱们要使用的MQTT消息服务也是消息中间件的一种。运维

      笔者所知道的消息中间件异步

      ActiveMQ高并发

      Aopllo测试

      RabbitMQ阿里云

      Kafkaurl

      RocketMQ

      

      消息队列在实际应用中经常使用的使用场景。异步处理,应用解耦,流量削锋和消息通信四个场景,具体内容园中相关文章很多,笔者再也不此献丑了呵。

      本文主要对阿里云提供的MQTT服务进行具体实战配置应用进行说明。

 

MQTT简介

 MQTT是基于二进制消息的发布/订阅编程模式的消息协议,最先由IBM提出的,现在已经成为OASIS规范。因为规范很简单,很是适合须要低功耗和网络带宽有限的IoT场景,好比:

  • 遥感数据
  • 汽车
  • 智能家居
  • 智慧城市
  • 医疗医护

 因为物联网的环境是很是特别的,因此MQTT遵循如下设计原则:

  1. 精简,不添加无关紧要的功能。
  2. 发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递。
  3. 容许用户动态建立主题,零运维成本。
  4. 把传输量降到最低以提升传输效率。
  5. 把低带宽、高延迟、不稳定的网络等因素考虑在内。
  6. 支持连续的会话控制。
  7. 理解客户端计算能力可能很低。
  8. 提供服务质量管理。
  9. 假设数据不可知,不强求传输数据的类型与格式,保持灵活性。

运用MQTT协议,设备能够很方便地链接到物联网云服务,管理设备并处理数据,最后应用到各类业务场景,以下图所示:

 

 

 

 

.登陆阿里云

首先,咱们打开阿里云。

https://www.aliyun.com/

右上角,登陆

 

 

支持多种方式登陆

可用阿里系旗下的淘宝、支付宝、钉钉等账号登陆而无需注册呵,真是方便啊

不过当中,还夹了一个微博登陆,不知是什么个状况,本人不用这个,无论也罢。

 

选择淘宝登陆

 

 

消息队列MQ

咦,不是要说MQTT吗?怎么扯到MQ消息队列了呢?这是由于阿里云的MQTT服务自身没有持久化功能,须要依托MQ服务的持久化,因此咱们须要先开通MQ服务。

登陆阿里云后,找到管理控制台,在以下位置,找到MQ相关服务

 

 

阿里云中的产品太多,笔者摸索了半天才找到的呵。

开通RocketMQ服务

选择消息队列MQ

单击消息队列 RocketMQ 进入消息队列 RocketMQ 的产品主页。

在消息队列 RocketMQ 的产品主页上,单击当即开通进入消息队列 RocketMQ 服务开通页面,根据提示完成开通服务。

注:开通服务不收费!!!

 

建立资源

资源类型说明

一个新的应用接入消息队列 RocketMQ 须要先建立相关的消息队列 RocketMQ 资源,包括:

  • 实例:用于消息队列 RocketMQ 服务的虚拟机资源,会存储消息主题(Topic)和客户端 ID(Group ID)信息。
  • 消息主题(Topic):在消息队列 RocketMQ 的消息系统中,消息生产者将消息发送到某个指定的 Topic ,而消息消费者则经过订阅该指定的 Topic 来获取和消费消息。
  • Group ID用于消息消费者(或生产者)的标识
  • 阿里云 AccessKey:用于收发消息时进行帐户鉴权

 

MQ服务管理界面以下

 

 

微消息队列MQTT

在阿里云中,MQTT被称为微消息队列,你们入乡为俗吧。

点击 消息队列 RocketMQ ,出现下拉列表

 

 

哦,原来MQTT服务你躲在这里啊(产品中直接搜索MQTT是找不到的哦)

 

 

 

各位同窗,看到的界面可能与我有所不一样,可能在看到上述界面之间,未开通相关服务的同窗,可能会看到一个开通相关服务的界面,点击开通就好了呵。(已开通的话,相关界面是不会再显示的呵)

仅开通服务,不建立相关资源,是不会收费的呵。

建立MQTT实例

建立MQTT实例

 

弹出购买界面

 

 

不少同窗可能看到这里就准备要走人了呵,别急,往下看

 

咱们选择最右侧的按量付费套餐。

该收费方式按使用收费!!!

除了顶级Topic是按天天每条2元钱收取资源占用费,其他的内容,按实际使用量收费。

如测试阶段,顶级Topic可使用时建立,用完删除,仅收费使用日的资源占用费。

 

咱们继续。

购买后,系统自动生成一个MQTT服务实例

 

 

系统显示咱们已成功建立了一个实例

同时,系统给出了第二步的向导:

消息存储配置

阿里云中的MQTT服务没有提供存储功能,须要一个MQ服务来提供支持。

控制台给出的选项中,Kafka和AMQP目前均不可用

只有RocketMQ可选。

好吧,这也算是选择的话(我有得选吗?)

 

咱们选择新建共享实例,咱们以共享单车应用为例,取一个 bike 的实例名

 

确认,系统生成RocketMQ实例

 

 

系统完成MQTT实例的配置,并给出了公网接入点地址。

 

建立Topic

阿里云的MQTT主题订阅要求必需建立一个顶级的主题资源,这点可能与一些自行搭建的MQTT Broker有所区别,笔者分析多是出于管理的须要。

 

 咱们建立一个项级Topic

咱们选择普通消息,其余的消息类型,你们可自行查看相应的说明。

 

建立组ID

组ID也是阿里云MQTT通信中的必定规定,ClientID须要使用组ID为前缀。

 

 

RAM资源访问控制

在服务建立过程当中,阿里云系统会提示咱们须要配置RAM管理

RAM应是资源访问管理的意思,你们能够自行查阅。

 

建立用户

咱们建立一个名为bike的用户

 

 

点击肯定,系统提示须要手机验证,咱们获取验证码后填入并肯定(如不须要该用户具备管理功能,只选择编程访问,仅用于程序访问,可无需短信验证

系统生成用户信息,生成了用户名和密码

 

 

你们切记,必定要点制复制,将用户信息进行妥善保存,不然,你会发现,前面一顿操做猛如虎,没有AccessKeySecret白瞎杵。

一旦关闭此页面,AccessKeySecret是没法再找回的。

不过,系统中虽然不能查看AccessKeySecret,可是仍是容许为用户建立新的AccessKey和AccessKeySecret,万一AccessKeySecret丢失,只有新建立了。

 

受权

建立用户后,须要对用户进行受权

 

 

 对用户添加权限

 

 咱们授与建立用户的MQ访问权限。

 

MQTT服务验证

到这里MQTT服务的使用准备工做基本就绪,如何进行程序访问使用呢?且听下回分解。

 

>>>玩转MQTT-阿里云之MQTT使用(下)

相关文章
相关标签/搜索