玩轉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使用(下)

相關文章
相關標籤/搜索