日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOT Core-设备接入网关

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOT Core-设备接入网关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 概述(應用名LeviMQ)
    設備接入網關是負責設備連接,設備鑒權,設備Topic訂閱和發布的控制,設備消息路由等。
  • 提供的能力

    設備連接能力。
    設備訂閱和消息發布能力。
    設備鑒權能力。
    訂閱和發布控制。
    設備消息路由。
    網關以服務形式與第三方服務交互,從而與具體業務解藕,如果客戶有自己的業務系統或客戶需要自己開發,也能夠與之對接,同時也能滿足我們的業務系統。

    網關層整體架構:
    2. 設備鑒權和ACL控制
    2.1. 背景
    對于物聯網平臺來說,這塊是可以做到統一,然后由業務方去實現鑒權或ACL控制服務,但是當前也有好多垂直行業的大廠,比如像XXX,他在智能樓宇有一套完整的系統,他可能只想用我們的連接層,因為智能樓宇這個行業其實發展了幾十年,他們對行業,對客戶需求了解的比較清楚,也形成了一些行業積累和行業軟件,并且這種積累是有一定的競爭優勢和潛在價值,所以他們不太可能放棄這塊或者將他交給第三方開發,但是對于連接層來說,由于連接層不跟客戶打交道,并且對于大規模設備的管控他們可能不擅長。

    2.2. 鑒權和ACL控制鑒權架構設計
    為了滿足不同的鑒權、acl控制業務場景,所以將網關層的鑒權ACL控制進行了抽像和封裝,盡可能保留擴展。

    2.3. 常見的業務場景主要有以下幾種:
    通過HTTP的get, post等請求方式,參數通過url, body, header傳輸。
    通過 gRPC 請求方式,參數通過protobuf文件規定。
    通過直接與數據庫連接進行鑒權,比如redis, mysql等, redis通過命令行,mysql通過sql語句。
    2.4. 網關層提供的信息:
    clientId, username, password, topic

    具體業務場景光以上信息是遠遠不能滿足業務需求,所以就出現了很多類似在clientId, username,topic之上加一些前綴來實現,比如acon_, applet_, wx_等。當前我們很多是硬代碼編寫做分支處理來解決,這種處理方式對代碼維護和擴展很不方便,并且有新的業務改動時,會對系統帶來風險。

    2.5. 鑒權架構設計
    poolcow插件:

    進程池插件,對gproc進行了封裝,集合了poolboy和ecpool優勢。支持普通進程池,也可以支持TCP長連接,對于長連接進程能自動重連,也可以擴展grpc, gen_rpc等。levimq_auth :鑒權核心插件,啟動后將以回調函數的形式掛進levimq_core,然后對外提供添加鑒權插件的接口,同時也支持進程池調用。levimq_auth_http:http形式的鑒權插件,啟動時調用levimq_auth,實現了http形式的鑒權,支持通過配置將連接參數拼接到url后或body里面。levimq_auth_redis:redis形式鑒權插件,實現了以進程池形式的連接到redis,然后通過配置將參數放到命令行里面。

    levimq_auth_grpc:

    grpc形式鑒權插件,實現通過protobuf文件將參數打包發送到grpc server.

    ehttpd:

    對外提供restful接口插件,可根據swagger自動產生代碼,自動生成文檔,自動生成測試環境。

    支持wormhole插件

    支持wormhole插件做服務發現接入etcd。
  • 設備鑒權
    身份認證是大多數應用的重要組成部分,MQTT 協議支持用戶名密碼認證,啟用身份認證能有效阻止非法客戶端的連接,并且由于認證方式差異性大,所以網關提供接入第三方的認證服務。
  • 當前想到可能的鑒權方式:鑒權方式

    方式

  • Redis認證方式
  • 根據配置連接到Redis,通過username HMGET獲取加密算法后的password,然后用相同加密算法加密password與之對比。

  • HTTP認證
  • 通過調用第三方的Restful API請求來認證,支持將username和password(加密算法處理后)通過GET或POST方式,提交到第三方服務器,參數可以放到boyd或URL上。

  • MySQL認證
  • 支持直接連接mysql數據庫,并可以配置sql語句來直接查詢數據庫。

    4.grpc認證

    支持通過protobuf文件來調用第三方服務

  • ACL規則設計
    ACL規則設置主要是根據MQTT協議自身的特點,從Topic, clientId, username進行規則判斷, 同時需要考慮集群,性能而提供對外接口,方便第三方應用將策略下發給網關,從而實現讓設備只能訂閱、發布自己相關的Topic。
  • 策略描述

  • 指定clientId,訂閱或發布相應的topic,topic支持正則表達式

  • 模糊匹配clientId,訂閱或發布相應的topic,topic支持正則表達式

  • 支持正則表達式匹配topic進行訂閱或發布

  • 指定客戶端ip,訂閱或發布相應的topic, topic支持正則表達式

  • 支持指定username訂閱或發布相應的topic, topic支持正則表達式

  • 支持多租戶功能,租戶信息可以放到clientid或topic里面

  • 連接限流
    限流是對某一時間窗口內的請求數進行限制,保持系統的可用性和穩定性,防止因流量暴增而導致的系統運行緩慢或宕機。

  • 異常設備
    提供異常設備判斷,從而從網關層將異常設備處理

  • 異常設備規則

  • 設備在指定周期內發送大量消息

  • 設備在指定周期內頻繁上下線

  • Restful API接口 & grpc服務
    提供Restful API & grpc
  • 功能

    支持添加,刪除,編輯,查看ACL規則

    支持添加,刪除,編輯,查看設備鑒權規則

    支持添加,刪除,編輯,查看異常設備規則

    總結

    以上是生活随笔為你收集整理的IOT Core-设备接入网关的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。