您好,登錄后才能下訂單哦!
本篇內容主要講解“Cloudfoundry Grouter源碼分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Cloudfoundry Grouter源碼分析”吧!
GoRouter源碼分析 GoRouter的主要功能是接受用戶的請求信息,根據請求URL查詢GoRouter在內存中維護的路由信息表信息,然后將URL轉發到具體的組件. GoRouter有幾個重要的組件: Proxy, router, registry
Proxy: 外部所有的請求進入Cloudfoundry都需要經過proxy, proxy 根據請求的URL 到路由表里查找對應的節點,并且如果請求頭中包含了cookie,則解析出節點id,將請求分發路由到具體的節點(比如:多個DEA, 就會路由到某一個固定的DEA),如果沒有cookie,則根據路由算法,選擇一個DEA, 響應時添加cookie返回用戶,也就是sessionsticky.
Router: 主要是定義了一個router的數據結構,以及一些初始化流程,已經運行的流程(run 方法), router 會啟動定時器去查詢droplet是否過期,如果過期了,會通知registry模式去更新路由信息
Registry: 處理DEA或者組件到GoRouter注冊uri 的路由信息. Cloudfoundry是通過NAT來進行通信的,NAT通信采用的是 訂閱/發布的設計模型進行通信 ,GoRouter 啟動的時候會去NAT訂閱注冊和去注冊的信息(router.register/router.unregister), 當有別的組件發布 router.register/router.unregister 事件時,GoRouter就會收到訂閱的消息,通知registry模塊去更新路由表.
用戶訪問GoRouter的流程圖如下: User/LB不屬于GoRouter組件, 心跳檢測通過在請求的頭文件添加“HTTP-Monitor/1.1”來判斷.
GoRouter的啟動流程圖如下:
到此,相信大家對“Cloudfoundry Grouter源碼分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。