Whakamaoritanga o te tuhinga:
I kitea e au he mea tino pai tenei tuhinga, na te mea ko te Envoy te nuinga o te wa e whakamahia ana hei waahanga o te "istio" he "whakahaere urunga" ranei o nga kubernetes, ko te nuinga o nga tangata kaore i te rite tonu te taunekeneke ki a ia, hei tauira, me nga tikanga. Nga whakaurunga Nginx, Haproxy ranei. Heoi, ki te pakaru tetahi mea, he pai ki te mohio me pehea te mahi mai i roto. I ngana ahau ki te whakamaori i te nuinga o nga tuhinga ki roto i te reo Rūhia, tae atu ki nga kupu motuhake; mo te hunga e pouri ana ki te titiro ki tenei, ka waiho e ahau nga korero taketake ki roto i nga reu. Nau mai ki te ngeru.
Ko nga tuhinga hangarau taumata-iti mo te Envoy codebase he iti rawa i tenei wa. Hei whakatika i tenei, ka whakamahere ahau ki te mahi i nga raupapa panui mo nga momo punaha iti o Envoy. I te mea koinei te tuhinga tuatahi, tena koa whakamohio mai ki o whakaaro me nga mea e pai ana ki a koe mo nga tuhinga a muri ake nei.
Ko tetahi o nga patai hangarau e whiwhi ana ahau mo te Envoy ko te tono mo te whakaahuatanga taumata-iti mo te tauira miro e whakamahia ana e ia. I roto i tenei pou, ka whakaahua ahau me pehea te mapi a Envoy i nga hononga ki nga miro, tae atu ki te punaha Roopu Paetata Miro e whakamahia ana i roto kia whakarara ake te waehere me te mahi teitei.
Tirohanga miro
![[Whakamaori] Tauira miro karere](/wp-content/uploads/2019/04/c5028463db1eb5b07ccb1a3af1f64a03.jpeg)
E toru nga momo awa rereke e whakamahia ana e Envoy:
- Matua: Ka whakahaerehia e tēnei miro te tīmatanga me te whakaweto tukanga, ngā tukatuka API XDS (xDiscovery Service) katoa, tae atu ki te DNS, te tirotiro hauora, te whakahaere whānui o te rōpū me te wā whakahaere, te tautuhi anō i ngā tatauranga, te whakahaere, me te whakahaere whānui o ngā tukanga. Linux Ngā tohu, ngā tīmatanga wera, me ētahi atu. Ko ngā mea katoa e tupu ana i roto i tēnei miro he kore tukutahi, kāore hoki e aukati. I te nuinga, ko te miro matua te kaiwhakarite i ngā tukanga nui katoa kāore e hiahiatia he CPU nui. Mā tēnei ka taea te tuhi i te nuinga o ngā waehere whakahaere me te mea he miro kotahi.
- Kaimahi: Ma te taunoa, ka hangaia e Envoy he miro kaimahi mo ia miro taputapu i roto i te punaha, ka taea te whakahaere ma te whakamahi i te whiringa
--concurrency. Ka whakahaeretia e ia miro kaimahi he kaupapa "kore-aukati", ko ia te kawenga mo te whakarongo ki ia kaiwhakarongo; i te wa e tuhi ana (Hōngongoi 29, 2017) karekau he wehewehenga o te kaiwhakarongo, te whakaae ki nga hononga hou, te whakarite i te taapu tātari mo te hononga, me te tukatuka i nga mahi whakauru / whakaputa (IO) katoa i te wa e ora ana te hononga. Ano, ka taea e te nuinga o nga waehere whakahaere hononga kia tuhia me te mea he miro kotahi. - Pūrere kōnae: Ko ia kōnae ka tuhia e Envoy, te nuinga o te uru ki nga raarangi, he miro aukati motuhake i tenei wa. Ko tenei na te mea ko te tuhi ki nga konae keteroki e te punaha konae ahakoa te whakamahi
O_NONBLOCKka taea te aukati i etahi wa (sigh). Ina hiahia nga miro kaimahi ki te tuhi ki tetahi konae, ka nukuhia nga raraunga ki te papaa mahara ki reira ka peia ki roto i te miro. pupuhi kōnae. Koinei tetahi waahanga o te waehere ka taea e nga miro kaimahi katoa te aukati i te raka kotahi i te wa e ngana ana ki te whakaki i te putunga mahara.
Te whakahaere hononga
Ka rite ki te korero poto i runga ake nei, ko nga miro kaimahi katoa e whakarongo ana ki nga kaiwhakarongo katoa kaore he pakaru. No reira, ka whakamahia te pata ki te tuku i nga turanga kua whakaaetia ki nga miro kaimahi. Ko nga kakano o naianei he tino pai ki tenei, ka whakamahia e ratou nga ahuatanga penei i te whakauru/putanga (IO) hei whakanui i te kaupapa matua ki te whakaki i tetahi miro ki te mahi i mua i te tiimata ki te whakamahi i etahi atu miro e whakarongo ana ano ki runga i te turanga kotahi, me te kore ano e whakamahi i te round robin. raka (Spinlock) ki te tukatuka i ia tono.
Ina whakaaehia he hononga ki runga i te miro kaimahi, kare rawa ia e whakarere i taua miro. Ko nga tukatuka katoa o te hononga ka whakahaerehia katoa i roto i te miro kaimahi, tae atu ki nga whanonga whakamua.
He maha nga hua nui o tenei:
- Ko nga puna hononga katoa i te Envoy kua tohua ki tetahi miro kaimahi. Na, ahakoa ko nga puna hononga HTTP/2 anake e hono ana ki ia kaihautu whakarunga i te wa kotahi, mena e wha nga miro kaimahi, e wha nga hononga HTTP/2 mo ia kaihautu whakarunga kei te noho pumau.
- Ko te take i penei ai te mahi a Envoy ma te pupuri i nga mea katoa i runga i te miro kaimahi kotahi, tata katoa nga waehere ka taea te tuhi me te kore e aukati me te mea he miro kotahi. Ma tenei hoahoa he mea ngawari ki te tuhi i te maha o nga waehere me nga unahi tino pai ki te tata mutunga kore o nga miro kaimahi.
- Heoi, ko tetahi o nga mea nui ko te mai i te puna mahara me te tirohanga pai o te hononga, he mea tino nui ki te whirihora i te
--concurrency. Ko te nui ake o nga miro a nga kaimahi i te mea e tika ana ka moumou mahara, ka nui ake nga hononga mangere, me te whakaiti i te tere o te whakakotahitanga hononga. I Lyft, he iti rawa te utu o ta matou ipu taha waka karere kia rite ai nga mahi ki nga ratonga e noho ana ratou. Ka whakahaerehia e matou te Envoy hei takawaenga taha anake i runga i te utu nui.
He aha te tikanga aukati-kore?
Ko te kupu "kore-aukati" he maha nga wa i whakamahia i tenei wa i te wa e korero ana mo te mahi o nga miro matua me nga miro kaimahi. Ka tuhia nga waehere katoa i runga i te whakaaro kaore he mea e araia. Heoi, ehara tenei i te tino pono (he aha te mea kaore i te tino pono?).
Ka whakamahia e Envoy etahi raka tukanga roa:
- Ka rite ki te korero, i te wa e tuhi ana i nga raarangi urunga, ka whiwhi nga miro kaimahi katoa i te raka kotahi i mua i te whakaki i te papaahere takiuru-maumahara. Ko te wa pupuri raka me iti rawa, engari ka taea te tohe mo te raka i runga i te taurite teitei me te whakaputanga teitei.
- Ka whakamahia e te Envoy tetahi punaha tino uaua ki te hapai i nga tatauranga e pa ana ki te miro. Ka waiho tenei hei kaupapa mo te panui motuhake. Heoi, ka korero poto ahau hei waahanga o te tukatuka i nga tatauranga miro i te rohe, i etahi wa ka tika ki te tiki raka i runga i te "taonga tatauranga" pokapū. Kaua rawa tenei raka e hiahiatia.
- Me ruruku te miro matua i ia wa me nga miro kaimahi katoa. Ka mahia tenei ma te "whakaputa" mai i te miro matua ki nga miro kaimahi, i etahi wa mai i nga miro kaimahi ki te miro matua. Me raka te tuku kia taea ai te rarangi panui mo te tuku a muri ake nei. Ko enei raka kaua rawa e tino tautohetia, engari ka taea tonu te aukati.
- I te wa e tuhi ana a Envoy i te raarangi ki te awa hapa o te punaha (te hapa paerewa), ka whiwhi raka i te katoa o te mahi. I te nuinga o te waa, he kino te mahi a te Envoy i te tirohanga o te mahi, no reira kaore i tino arohia ki te whakapai ake.
- He ruarua noa nga raka matapōkere, engari karekau he mea tino nui te mahi me te kore rawa e werohia.
Miro rokiroki rohe
Na te ahua o te wehewehe a Envoy i nga kawenga o te miro matua mai i nga kawenga o te miro kaimahi, he whakaritenga ka taea te mahi tukatuka matatini ki runga i te miro matua, ka tukuna ki ia miro kaimahi i roto i te tikanga tino rite. Ko tenei waahanga e whakaatu ana i te Envoy Thread Local Storage (TLS) i te taumata teitei. I roto i te waahanga e whai ake nei ka whakaahua ahau me pehea te whakamahi ki te whakahaere i te roopu.
![[Whakamaori] Tauira miro karere](/wp-content/uploads/2019/04/a47af1e8eb1f55a4d7609b3ff3ee9ce1.jpeg)
Ka rite ki te korero kua korerohia, ko te miro matua te whakahaere tata ki te whakahaere me te whakahaere i nga mahi rererangi i roto i te tukanga Envoy. He nui te taumaha o te waka rererangi i konei, engari ka tirohia e koe i roto i te kaupapa Envoy ka whakatauritea ki te tuku whakamua e mahia ana e nga miro kaimahi, ka tika. Ko te tikanga nui ko te mahinga miro matua e mahi ana, katahi me whakahou i ia miro kaimahi kia rite ki nga hua o taua mahi. i roto i tenei take, karekau te miro kaimahi me whiwhi raka mo ia urunga.
Ka mahi te punaha TLS (Thread local storage) a Envoy:
- Ka taea e te waehere e rere ana i runga i te miro matua te toha mokamoka TLS mo te mahi katoa. Ahakoa kua wetewetehia tenei, i roto i te mahi he tohu tohu ki roto i te vector, e whai urunga O(1).
- Ka taea e te miro matua te whakauru i nga raraunga noa ki roto i tana mokamoka. Ka oti tenei, ka whakaputahia nga raraunga ki ia miro kaimahi hei huihuinga takahanga noa.
- Ka taea e nga miro kaimahi te panui mai i ta raatau mokamoka TLS me te tiki i nga raraunga miro-rohe e waatea ana ki reira.
Ahakoa he ahua tino ngawari me te tino kaha, he tino rite ki te kaupapa o te aukati RCU(Pānui-Tārua-Whakahou). Ko te tikanga, kaore nga miro kaimahi e kite i nga huringa raraunga i roto i nga mokamoka TLS i te wa e mahi ana te mahi. Ka puta noa nga huringa i roto i te wa okioki i waenga i nga huihuinga mahi.
E rua nga huarahi e whakamahia ana e Envoy:
- Ma te penapena i nga raraunga rereke ki ia miro kaimahi, ka taea te uru atu ki nga raraunga kaore he aukati.
- Ma te pupuri i te atatohu tiritahi ki nga raraunga o te ao i te aratau panui-anake ki ia miro kaimahi. No reira, kei ia miro kaimahi he tatau tohutoro raraunga e kore e taea te whakaheke i te wa e mahi ana te mahi. Ka ata noho nga kaimahi katoa me te tuku i nga raraunga tiritahi hou ka ngaro nga raraunga tawhito. He rite tenei ki te RCU.
Miro whakahōu kāhui
I roto i tenei waahanga, ka whakaahua ahau me pehea te whakamahi a TLS (Thread local storage) ki te whakahaere i tetahi tautau. Kei roto i te whakahaere roopu xDS API me/ranei te tukatuka DNS, me te tirotiro hauora.
![[Whakamaori] Tauira miro karere](/wp-content/uploads/2019/04/238f5718729e1f12f8f0d6507f16abe8.jpeg)
Ko te whakahaere rerenga roopu ko nga waahanga me nga waahanga e whai ake nei:
- Ko te Kaiwhakahaere Cluster tetahi waahanga kei roto i te Envoy e whakahaere ana i nga kohinga katoa e mohiotia ana ki runga, te Cluster Discovery Service (CDS) API, te Secret Discovery Service (SDS) me te Endpoint Discovery Service (EDS) APIs, DNS, me nga mahi arowhai o waho. Kei a ia te haepapa ki te hanga i te tirohanga "te mutunga rite" mo ia kahui whakarunga, kei roto ko nga kaihautu kua kitea me te mana hauora.
- Ka mahia e te kaitirotiro hauora he tirotiro hauora kaha me te ripoata i nga huringa o te mana hauora ki te kaiwhakahaere roopu.
- Ko te CDS (Ratonga Discovery Discovery) / SDS (Secret Discovery Service) / EDS (Endpoint Discovery Service) / DNS ka mahia hei whakatau i te mema tautau. Ka whakahokia te huringa kawanatanga ki te kaiwhakahaere tautau.
- Ka mahia tonutia e ia miro kaimahi he takahanga takahanga.
- Ina whakatauhia e te kaiwhakahaere tautau kua huri te ahua mo tetahi tautau, ka hangaia he whakaahua panui-anake hou o te ahua o te tautau ka tukuna ki ia miro kaimahi.
- I te wa ata noho e whai ake nei, ka whakahouhia e te miro kaimahi te whakaahua i roto i te mokamoka TLS kua tohaina.
- I te wa o tetahi huihuinga I/O e kiia ana ko te kaihautu ki te uta i te toenga, ka tono te kaiwawao kawenga mo te mokamoka TLS (Thread local storage) kia whiwhi korero mo te kaihautu. Kaore e hiahiatia he kati. Kia mahara ano ka taea e TLS te whakaoho i nga kaupapa whakahou kia taea ai e nga kaitaurite kawenga me etahi atu waahanga te tatau ano i nga keteroki, nga hanganga raraunga, aha atu. Kei tua atu tenei i te waahi o tenei pou, engari ka whakamahia ki nga waahi rereke o te waehere.
Ma te whakamahi i nga tikanga o runga ake nei, ka taea e Envoy te whakahaere i nga tono katoa me te kore e aukati (haunga nga korero i mua ake nei). I tua atu i te uaua o te waehere TLS ake, karekau te nuinga o te waehere me maarama ki te mahi miro maha me te tuhi miro kotahi. Ma tenei ka ngawari ake te tuhi i te nuinga o te waehere hei taapiri i nga mahi pai ake.
Ko etahi atu punaha iti e whakamahi ana i te TLS
Ko te TLS (Thread local storage) me te RCU (Read Copy Update) e whakamahia nuitia ana i Envoy.
Tauira whakamahi:
- Tikanga mo te whakarereke i te mahi i te wa e mahia ana: Ko te rarangi o naianei o nga taumahinga kua taea te tatau i te miro matua. Ka whakawhiwhia ki ia miro kaimahi he whakaahua panui-anake ma te whakamahi i nga kupu RCU.
- Te whakakapi i nga ripanga ara: Mo nga ripanga ara e whakaratohia ana e RDS (Route Discovery Service), ka hangaia nga ripanga ara ki te miro matua. Ko te whakaahua panui-anake ka tukuna ki ia miro kaimahi ma te whakamahi i te RCU (Read Copy Update). Ma tenei ka whai hua ngota te huri i nga ripanga ara.
- Keteroki pane pane HTTP: I te mea ka puta, ko te tatau i te pane HTTP mo ia tono (i te wa e whakahaere ana ~25K+ RPS ia matua) he tino utu. Ka whakatauhia e te Envoy te pane tata ki ia haurua hēkona, ka tukuna ki ia kaimahi ma te TLS me te RCU.
Ko etahi atu keehi, engari ko nga tauira o mua me whakarato i te mohio pai mo te whakamahinga o te TLS.
Nga mahanga mahi e mohiotia ana
Ahakoa he pai te mahi a Envoy i te katoa, he iti noa nga waahanga e tika ana kia arohia ina whakamahia ana me te tino pai me te whakaputanga:
- Ka rite ki te korero i roto i tenei tuhinga, i tenei wa ka whiwhi raka nga miro kaimahi katoa i te wa e tuhi ana ki te putunga mahara rangitaki uru. I te nui o te whakakotahitanga me te nui o te whakaputanga, ka hiahia koe ki te whakaropu i nga raarangi uru mo ia miro kaimahi i runga i te utu o te tuku i waho o te ota ka tuhi ki te konae whakamutunga. Ka taea e koe te hanga i tetahi rangitaki uru motuhake mo ia miro kaimahi.
- Ahakoa e tino arotau ana nga tatauranga, i runga i te tino riterite me te whakaputanga ka puta pea he tautohetohe ngota mo nga tatauranga takitahi. Ko te otinga o tenei raru ko nga porotiti mo ia miro kaimahi me te tautuhi i ia wa o nga porotiti pokapū. Ka korerohia tenei i roto i te panui ka whai ake.
- Kaore e pai te mahi a te hoahoanga o naianei mena ka tukuna a Envoy ki tetahi ahuatanga he iti noa nga hononga e hiahia ana ki nga rauemi tukatuka nui. Karekau he taurangi ka tohatoha nga hononga ki waenga i nga miro kaimahi. Ka taea te whakatau i tenei ma te whakatinana i te whakataurite hononga kaimahi, ka taea te whakawhiti hononga i waenga i nga miro kaimahi.
Whakamutunga
I hoahoatia te tauira miro a Envoy ki te whakamaarama i te hotaka me te whakarara nui i runga i te whakapaunga o te mahara moumou me nga hononga ki te kore e whirihora tika. Ko tenei tauira ka taea e ia te mahi tino pai i nga tatauranga miro teitei me te whakaputa.
Ka rite ki taku korero poto i runga i Twitter, ka taea hoki e te hoahoa te rere ki runga ake o te kohinga whatunga aratau-kaiwhakamahi katoa penei i te DPDK (Kete Whakawhanake Mahere Raraunga), ka taea e nga kaiwhakarato tikanga te whakahaere i nga miriona tono mo ia hekona me te tukatuka L7 katoa. Ka tino pai ki te kite i nga mea ka hangaia i roto i nga tau e whai ake nei.
Kotahi te korero tere whakamutunga: He maha nga wa i pataia mai ai ahau he aha matou i whiriwhiri ai i a C++ mo te Envoy. Ko te take ko tenei anake te reo reanga ahumahi e whakamahia nuitia ana hei hanga i te hoahoanga e whakaahuatia ana i tenei pou. Ko te C++ e kore e pai mo nga kaupapa katoa, ahakoa he maha nga kaupapa, engari mo etahi keehi ko te taputapu anake hei whakatutuki i te mahi.
Hononga ki te waehere
Nga hononga ki nga konae me nga atanga me nga whakatinanatanga pane i korerohia i tenei pou:
Source: will.com
