EdgeHub
EdgeHub中有兩類client剩愧,分別是httpclient以及websocket/quic client,前者用于與EdgeCore與CloudCore通信所需證書的申請娇斩,后者負(fù)責(zé)與CloudCore的日常通信(資源下發(fā)隙咸、狀態(tài)上傳等)
當(dāng)EdgeHub啟動時沐悦,其先從CloudCore申請證書(若正確配置本地證書,則直接使用本地證書)
初始化與CloudCore通信的websocket/quic client五督,成功連接之后將成功連接的信息傳給其他組件(MetaGroup藏否、TwinGroup、BusGroup)充包,分別啟動三個goroutine不斷的進(jìn)行云到邊以及邊到云的消息分發(fā)(單純分發(fā)副签,不做任何封裝或改變)、健康狀態(tài)上報基矮。當(dāng)云邊傳送消息過程中出現(xiàn)錯誤時淆储,則邊緣端重新init相應(yīng)的websocket/quic client,與云端重新建立連接家浇。
MetaManager
當(dāng)metamanager模塊啟動時本砰,會開啟兩個goroutine,一個用于定時(默認(rèn)60s)給自己發(fā)送消息通知進(jìn)行邊到云的podstatus數(shù)據(jù)同步钢悲;一個用于edgehub與edged/edgemesh的數(shù)據(jù)處理点额。
到達(dá)memanager的數(shù)據(jù)來源于兩部分,一是edgehub莺琳,此時是云到邊的數(shù)據(jù)还棱,記為①;二是edged惭等,此時是邊到云的數(shù)據(jù)珍手,記為②。
處理的消息類型:
Insert①
Update①②
Delete①
Query
根據(jù)云邊連接狀態(tài)以及資源類型的不同辞做,查詢的具體方式如下圖所示:
- Response
- NodeConnection(edgehub->其他modules)
- MetaSync(podstatus邊到云的同步)
處理的資源類型:
- secret
- configmap
- service
- podlist
- endpoints
- node
- podstatus
- servicelist
- pod
- nodestatus
Note: service/servicelist/endpoints進(jìn)一步發(fā)送給edgemesh供服務(wù)發(fā)現(xiàn)琳要,其余發(fā)給edged進(jìn)行應(yīng)用管理