CloudHub概述

wujianming_110117發表於2021-01-05

CloudHub概述
CloudHub
CloudHub是cloudcore的一個模組,是Controller和Edge端之間的中轉。它同時支援基於websocket的連線以及QUIC協議訪問。Edgehub可以選擇一種協議來訪問cloudhub。CloudHub的功能是啟用邊端與控制器之間的通訊。
到邊端的連線(通過EdgeHub模組)是通過websocket連線上的HTTP完成的。對於內部通訊,它直接與控制器通訊。傳送到CloudHub的所有請求都是上下文物件,它們與標記為它的nodeID的事件物件的對映通道一起儲存在channelQ中。
CloudHub執行的主要功能是:
• 獲取訊息上下文併為事件建立ChannelQ
• 通過WebSocket建立HTTP連線
• 服務websocket連線
• 從邊端讀取訊息
• 寫訊息到邊端
• 將訊息釋出到控制器
獲取訊息上下文併為事件建立ChannelQ:
上下文物件儲存在channelQ中。對於所有nodeID,將建立通道並將訊息轉換為事件物件,然後將事件物件通過通道傳遞。
通過websocket建立http連線:
• TLS證書通過上下文物件中提供的路徑載入
• HTTP伺服器以TLS配置啟動
• 然後將HTTP連線升級為接收conn物件的websocket連線。
• ServeConn函式可服務所有傳入連線
從邊端讀取訊息:
• 首先,為保持活動間隔設定最後期限
• 然後讀取來自連線的JSON訊息
• 設定完訊息路由器詳細資訊之後
• 然後將訊息轉換為事件物件以進行雲內部通訊
• 最後,事件被髮布給控制器
將訊息寫到Edge:
• 首先,為給定的nodeID接收所有事件物件
• 檢查相同請求的存在和節點的活動性
• 事件物件轉換為訊息結構
• 設定寫截止時間。然後訊息傳遞到websocket連線
向控制器釋出訊息:
• 每次向Websocket連線發出請求時,帶有時間戳,clientID和事件型別的預設訊息都會傳送到控制器
• 如果節點斷開連線,則會引發錯誤,並將描述節點故障的事件釋出到控制器。
用法
可以通過以下三種方式配置CloudHub:
• 僅啟動websocket伺服器:檢視詳細資訊。
• 僅啟動quic伺服器:檢視詳細資訊。
• 同時啟動websocket和quic伺服器:檢視詳細資訊