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