真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Envoy是如何啟動(dòng)的-創(chuàng)新互聯(lián)

  1. 本文主要給大家介紹Envoy是如何啟動(dòng)的,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對(duì)性,對(duì)大家的參考意義還是比較大的,下面跟筆者一起了解下Envoy是如何啟動(dòng)的吧。

    專(zhuān)注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)松溪免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
  2. 功能概述

Envoy啟動(dòng)時(shí),會(huì)啟動(dòng)一個(gè)進(jìn)程,并在這個(gè)進(jìn)程中啟動(dòng)很多線程,這樣,可以啟動(dòng)很多worker線程,一般worker線程數(shù)與核心數(shù)相同,每個(gè)worker線程處理所有已配置的listener上的請(qǐng)求,管理連接并處理filterchain,非阻塞;同時(shí),在這個(gè)進(jìn)程中會(huì)啟動(dòng)一個(gè)主線程,它負(fù)責(zé)啟動(dòng)和停止envoy,也是通過(guò)API提供配置管理的線程,同時(shí)它收集不同的指標(biāo),管理其它線程,也是非阻塞的。

  1. 重要數(shù)據(jù)結(jié)構(gòu)定義

2.1 Filter

過(guò)濾器,包括listener filter、network filter和http filter。Listener filter可以用于操作連接元數(shù)據(jù),在新接收的套接字上進(jìn)行操作,例如獲取原始目的地址,重定向連接等;network filter主要負(fù)責(zé)數(shù)據(jù)讀寫(xiě);http filter主要負(fù)責(zé)數(shù)據(jù)處理。

2.2 Listener

監(jiān)聽(tīng)器,envoy中支持在每個(gè)線程中配置任意數(shù)量的監(jiān)聽(tīng)器,每個(gè)監(jiān)聽(tīng)器獨(dú)立配置一定數(shù)量的network filter,也可以選擇性的配置listener filter,listener filter在連接建立之前處理,network filter在連接建立之后處理。

2.3 Worker

一個(gè)worker對(duì)應(yīng)一個(gè)envoy的執(zhí)行線程,將listener綁定在worker上,worker負(fù)責(zé)監(jiān)聽(tīng)、過(guò)濾和轉(zhuǎn)發(fā),每個(gè)連接的生命周期會(huì)綁定在一個(gè)單獨(dú)的worker上,通常情況下,envoy實(shí)現(xiàn)了100%的非阻塞。

  1. 代碼流程

3.1 流程概述

Envoy啟動(dòng)時(shí),首先啟動(dòng)主線程,在主線程中對(duì)listener和filter進(jìn)行初始化操作,然后將listener綁定到worker上,并由主線程拉起worker線程,由worker線程負(fù)責(zé)監(jiān)聽(tīng)新連接。

Envoy是如何啟動(dòng)的
3.2 初始化

3.2.1 main入口

Envoy是如何啟動(dòng)的
main函數(shù)是envoy啟動(dòng)的總?cè)肟冢紫壬蒻ain_common,用于后面的初始化。

3.2.2 初始化main_common

Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
在main_common里面會(huì)生成maincommonbase,它會(huì)做server instance的初始化,一個(gè)instance是一個(gè)服務(wù)的實(shí)例.

3.2.3 Instance初始化

Envoy是如何啟動(dòng)的
在maincommonbase里調(diào)用InstanceImpl函數(shù)后,首先對(duì)啟動(dòng)攜帶的配置信息進(jìn)行注冊(cè),然后執(zhí)行instance的初始化。

Envoy是如何啟動(dòng)的
Instance的初始化包括兩部分:

① 將當(dāng)前instance注冊(cè)到ListenerManager,來(lái)管理更新;

② 創(chuàng)建并初始化MainImpl,MainImpl用來(lái)初始化監(jiān)聽(tīng)listener;

Envoy是如何啟動(dòng)的
MainImpl根據(jù)配置文件獲取靜態(tài)監(jiān)聽(tīng)listener列表,將它們實(shí)例化并注冊(cè)到ListenerManager。

3.2.4 初始化listener
Envoy是如何啟動(dòng)的
tener,根據(jù)配置文件為它創(chuàng)建ListenerFilterFactoryList,并根據(jù)配置為它添加ListenerFilterFactory。

listener filter有三個(gè):original dst filter,proxy protocol filter, TLS inspector filter,一一按照配置判斷是否加入ListenerFilterFactoryList。

Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
配置ListenerFilterFactoryList的同時(shí),也會(huì)根據(jù)配置為這個(gè)listener創(chuàng)建NetworkerFilterFactoryList,供后續(xù)建立在這個(gè)listener上的連接使用。

3.3 啟動(dòng)

3.3.1 啟動(dòng)入口

Envoy是如何啟動(dòng)的
在main_common初始化正常完成后,執(zhí)行main_common→run()啟動(dòng),從而后續(xù)執(zhí)行instance的run()方法,在instance的run()方法,會(huì)執(zhí)行網(wǎng)絡(luò)級(jí)別上的listener初始化。

Envoy是如何啟動(dòng)的
3.3.2 啟動(dòng)worker,將listener綁定到worker上

Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
此處,會(huì)將從配置文件讀取的所有l(wèi)istener綁定到所有的worker上,worker是服務(wù)的并發(fā)線程,數(shù)目一般和核心數(shù)相同,將listener綁定到worker上后會(huì)通過(guò)connectionhandler模塊將其初始化。

Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
3.3.3 Listener初始化

Listener的初始化過(guò)程首先生成ActiveListener,通過(guò)ActiveListener調(diào)用network包內(nèi)的創(chuàng)建函數(shù)來(lái)對(duì)listener進(jìn)行網(wǎng)絡(luò)級(jí)別的初始化。

Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的

3.3.5 啟動(dòng)worker線程,進(jìn)入監(jiān)聽(tīng)

Listener綁定在worker上,當(dāng)listener初始化完成后,需要啟動(dòng)worker服務(wù)才能真正進(jìn)入監(jiān)聽(tīng)流程。

Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
Envoy是如何啟動(dòng)的
此處,為每個(gè)worker啟動(dòng)新線程,并調(diào)用libevent的event_base_loop進(jìn)入監(jiān)聽(tīng),等待連接事件到達(dá)觸發(fā)后,回調(diào)onAccept進(jìn)入處理流程。

看完以上關(guān)于Envoy是如何啟動(dòng)的,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識(shí)信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


新聞名稱(chēng):Envoy是如何啟動(dòng)的-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://weahome.cn/article/sphid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部