á¨á˝áá áľááááĄ-
áá
ááŁáĽá á áŁá á áľá°áłá˝ áá á áááźááá ᣠáĽá áááĽáá°á áĽááá áá áĽáá° âá˘áľá˛áŽâ á áŤá ááá á ááá áĽáá° kubernetes âááá˘áŤ á°ááŁáŁáŞâ áľááá ᣠáĽá á°áá˝ á¨áĽáą áá á°ááłáłá ááĽá°á áááááľ á¨áá¸áá ᣠáááłá ᣠá¨á°ááá°á ááᢠNginx ááá Haproxy áááśá˝á˘ ááá áá, á ááľ ááá á¨á°á áá¸, á¨ááľáĽ áĽáá´áľ áĽáá°áá°áŤ áá¨áłáľ áĽáŠ áááá. áአáááľá á¨áᎠá á°áťá áá á áĽá á
ááá áá° áŤá˝áŤá ááá°ááá áá¨ááŠá¤ áá
á áá¨áľ á áŁá á¨ááŤá ááááľáá¸áᣠáááá á
á á á
áá ááľáĽ á°ááŠáľá˘ áá° áľááľ áĽááłá á á°á
á ááĄá˘
á¨áá
á°á á°á¨á á´áááŤá á°ááśá˝ áEnvoy codebase á á áá áá á áŁá áľáá˝ ááᢠáá
áá áááľá°áŤá¨áᣠáľá ááááá°áá á¨á°ááŤáŠ áľáá áśá˝ á°á¨áłáłá á¨áĽáá ááĽáá˝á áááľáŤáľ áĽá
áľ á ááᢠáá
á¨ááááŞáŤá á˝áá áľááá áĽáŁááá áá áĽáá°ááŤáľáĄ áĽá áá°ááľ á áááĄáľ ááŁáĽáá˝ áá áá áááá áĽáá°áá˝á áŤáłáááá˘
áľá áááĽáá°á á¨áá°ááąá á áŁá á¨á°áááą á´áááŤá áĽáŤááá˝ á ááą áľááá ááá á¨ááľá áá´á áá á°á á°á¨á ááá፠áá á¨á ááᢠá áá ááĄá á˝áá ááᣠáááĽáá°á áŤááłáá˝á á¨áá áá áĽáá´áľ áĽáá°ááŤáááᣠáĽáá˛áá áŽáľá á¨á áá áľáአáĽá á¨áá°á á ááťá¸á áááľá¨á á ááľáĄ á¨áá áááá ᨠThread Local Storage áľáááľá áĽáááťááá˘
á¨áááá á á ááá áĽááł
áááĽáá°á áśáľáľ á¨á°ááŤáŠ á áááľ áĽá¨áśá˝á áá ááááĄ-
- áááĄ- áá áá á¨áá°áąá á áá áĽá ááá¨áĄá áááŁá áŤáᣠáááá á¨XDS (xDiscovery Service) á¤áá ááᣠᲠá¤á á¤áľáᣠá¨á¤á ááááŤáᣠá á ááá áááľá°á áĽá á¨áŠáŤ áá á áľá°áłá°ááᣠá¨áľáłá˛áľá˛ááľá áłáá ááľáááᣠá áľá°áłá°á áĽá á á ááá á¨áá°áľ á áľá°áłá°áá - á¨ááááľ ááááśá˝á á¨áᎠáááá á¨XDS (xDiscovery Service) á¤áá áá áááŁá áŤáᢠá áá áá ááľáĽ á¨áá¨á°áľ áŤáá°ááłá°á áĽá "á¨áááłááľ" ááᢠá á á ááá, ááá áá ááááľ á¨áá°á áá á áŤáá á˛áአá¨ááá áááľá áááá ááłá á¨á°ááŁá áá°áśá˝ áŤáááá. áá á áĽááá á¨ááĽáĽá áŽáľ áá áĽáá° áá á áá áĽáá˛áťá áŤáľá˝áááá˘
- á°áŤá°áᥠá ááŁáŞááľ á¤ááŽá á á˛áľá°á ááľáĽ ááá áĽáŤááłááą á¨áááľáá áá á¨á°áŤá°á áá áááĽáŤáᣠáá
á ááŤáá á áá áá áááŁá á ááťááá˘
--concurrency
. áĽáŤááłááą á¨á°áŤá°á áá áĽáŤááłááąá á áľáá á¨ááłáἠáááááľ áŤáá áľ âá¨ááŤááľâ á¨ááľá°áľ ááááľ áŤáŤááłáᤠáá á˝áá á ááťáá áľ áá (ááá 29ᣠ2017) á¨á áľááŠá áá¨ááá á¨ááᣠá áłá˛áľ áááááśá˝á ááá áᣠá¨ááŁáŞáŤ ááá ááŁá ááľá¨á áááááąá, áĽá á áááááą á¨á áááľ ááá áááá á¨ááĽá áľ / áá ááľ (á ááŚ) áľáŤáá˝á ááŤááľ. áĽáá°ááᣠáá á áĽááá á¨áááááľ á áŤáŤá áŽáľ áá áĽáá° áá á áá áĽáá˛áá áŤáľá˝áááᢠ- á¨ááá áá˝á; áááĽáá°á á¨áá˝áá áĽáŤááłááą áááᣠá ááááľ á¨ááłá¨áť áááἠááľáłááťáá˝áŁ á á áá áá áŤáąá á¨áťá á¨áááľ áá á ááᢠáá
á¨ááá áľ ááááŤáľ á áá ááá áľ áá áĽááłá á ááá áľáááą á¨á°á¸áᥠáááá˝á á ááá ááá˘
O_NONBLOCK
á ááłááľ áá ááłááľ áá˝áá (áľááá˝). á¨á°áŤá°á ááŽá˝ áá° ááá ááá á˛ááá ááᥠá áĽáááą áá° áá á°á¨ áľááľáł ááľ ááááłááłá á áá¨á¨áťá á áá ááľáĽ ááááá ááá ááá°áť. áá á¨áá á°á¨ áľááľáł ááľ áááááľ á ááá¨áá áľ áá á á´áááŤá ááá á¨á°áŤá°á ááŽá˝ á ááľ á áááľ áááááŤá á¨áááľáĄá áľ á ááą á¨áŽáľ á áŤáŁá˘ ááá˘
á¨áááááľ á áŤáŤá
á¨áá
á áá á á áአáĽáá°á°áĽáŤáŤáᣠááá á¨á°áŤá°á ááŽá˝ áŤá á ááłá˝ áááśá˝ áááá á áľááŽá˝ áŤáłááŁáᢠáľááá
á¨ááá á á¸á á°ááŁáááľ áŤáá¸áá áśáŹáśá˝ áá° á°áŤá°á ááŽá˝ áááá áá á
ááᢠáááá áŽáááá˝ á á á ááá á áá
á¨ááľ á áŁá áĽáŠ áá¸á ᣠáĽáá° ááĽááľ / áá
ááľ (á ááŚ) á
áľá፠áááá áľ áŤá ááá˝ ááŽá˝ á á°ááłáłá áśáŹáľ áá á¨ááŤáłáᥠááŽá˝ áá áá á¨ááááŤá¸á á ááľ ááá áááááľ áááá¨á áá áááᢠáĽáŤááłááąá áĽáŤá áááľáŹáľ áááá (Spinlock)á˘
á ááľ áá áááááľ á á áŤá°á áá áá á°ááŁáááľ áŤáá á áá áŤáá áá áá˝á á ááá
á. ááá á°á¨á᪠á¨áááááą áá°áľ áá á áá á á áŤá°á áá ááľáĽ áá á¨ááŤáá°áᣠáááááá á¨ááľá°ááá፠áŁá
áŞá á¨ááŽá˘
áá á ááŤáł á áá áá¤áśá˝ á ááľ:
- á á¤áá¤á ááľáĽ áŤá ááá á¨áááááľ áááłáá˝ áá áŤá°á áá ááá°áŁá. áľááá ᣠááá áĽááłá á¨á¤á˝á˛á˛á/2 áááá áááłáá˝ á¨áĽáŤááłááą á¨ááŤá á áľá°ááá áá á á ááľ áá á ááľ áááááľ á˘áŤá°áááᣠá áŤáľ á¨á°áŤá°á ááŽá˝ áŤáᣠá áá áááł ááľáĽ á áŤáľ á¨á¤á˝á˛á˛á/2 áááááśá˝ á á ááľ áá°áá á áľá°ááá áááŤáá˘
- áááĽáá°á á áá ááááľ á¨áá°áŤá áľ ááááŤáľ áááá ááá á á ááľ á¨á°áŤá°á áá áá á ááľááἠááá áááľ ááťáá áŽáľ áłááłááľ áĽá áá á áá á¨á°áá á áŤá á ááá áá˝ááᢠáá ááľá áĽá áŽáľ áĽá áááá˝á á áááłáá áááł áá° ááá°áá°á á¨á°áŤá°á ááŽá˝ ááá ááá áŤá°ááááá˘
- ááá ááᣠá¨áá áá ááááśá˝ á ááą á¨ááľáłááť áááł áĽá á¨áááááľ á
ááĽáá á áááᣠá áľááá áááá á áŁá á áľááá ááá˘
--concurrency
. á¨ááŤáľáááá á áá áĽá á¨á°áŤá°á ááŽá˝ ááአáá á°á¨ áľááľáłá áŤáŁáááᣠáĽá á¨áľáŤ ááľ áááááśá˝á áááĽáŤá áĽá á¨áááááľ áá á°áľ ááĽááľ ááááłáᢠá áááľáŁá¨áĽá áááĽáá°á á¨áá ááŞá áŽáá´áááŽá˝ á áŁá áá á°á á áá áŽááá¨ááľ áá°áŤá ââá áá á á áááá á¨ááá¸á á¨á°áááĄáľ á áááááśá˝ áá ááááłáᢠá¤áá¤áá áĽáá° á¨á áá ááŽáᲠá¨ááá°áŤá á á¨áá°áá á°ááłáłáááľ áĽáť ááá˘
á ááááľ áááľ áá áááľ áá?
ááá áĽá á¨á°áŤá°á ááŽá˝ áĽáá´áľ áĽáá°áá°áŠ á˛ááŤáŠ "á¨áááłááľ" á¨ááá áá áĽáľáŤáá áĽá áá áĽá á áá áááᢠááá áŽáľ á¨á°ááá ááá ááá á ááŤá˝ áĽáá°áááłááľ á áá°áĽ ááᢠáááᣠáá áá á áá áĽáááľ á áá°áá (áá á áá áĽáááľ áŤáááá áááľá áá?)
áááĽáá°á áĽá á¨á á á¨áá°áľ áááááŤáá˝á áá ááááĄ-
- áĽáá°á°áĽáŤáŤáᣠá¨ááłá¨áť áááἠááľáłááťáá˝á á áá˝áá áľ ááᣠááá á¨á°áŤá°á ááŽá˝ á¨ááľáłááť áááἠááľ á¨ááááą á ááľ á ááľ á áááľ áááá፠áŤáááᢠá¨á°áááá áľ áá á áŁá áá á°á ááá á áá áľ, ááá áá áááááŤá á á¨áá°á áááł áĽá á á¨áá°á ááĽááľ áááłá°á ááťáá.
- ááááá°áá ááááአá áŤáŁá˘áŤá á¨áá áľáłá˛áľá˛ááľá áááľá°áááľ á áŁá á¨á°ááłá°á á á°áŤáá áá áááᢠáá á¨á°áᨠááĽá áááľ ááááᢠáááᣠáĽá áŁáአáĽá á áłáá á¨áá áľáłá˛áľá˛ááľá á á áá ááľáĽ á¨ááľáŹáľ á áŤáᣠá ááłááľ áá á ááá¨áá âáľáłá˛áľá˛ááľ áá°áĽáâ áá áááá፠ááááľ á áľááá ááᢠáá áááá á ááá á áŤáľááááá˘
- ááá áá á á¨ááá á¨ááá á¨á°áŤá°á ááŽá˝ áá ááľá°áŁá á áŤáľááááá. áá á¨áá¨áááá á¨ááá áá áá° á°áŤá°á ááŽá˝ áĽá á ááłááľ áá á¨á áŤá°á ááŽá˝ áá° ááá áá "á áá°á" áá. á¨áłá°áá áááĽááľ á áá áááľá¨áľ áá¨á áĽáá˛áá ááá áááá፠áŤáľáááááᢠáĽááá áááááŤáá˝ á áá ááá ááááľ á¨ááŁá¸ááᣠááá áá á ááá á á´ááá ááłááą áá˝ááá˘
- áááĽáá°á áá° áľáááą á¨áľá á°áľ áĽá¨áľ (áá°á á áľá á°áľ) áááἠááľáłááť á˛á˝á á á á ááá áá°áľ áá áááá፠áŤáááᢠá á á ááá á¨áááĽáá°áá á¨á áŤáŁá˘ áááἠááľáłááť á¨á ááťá¸á á ááá á áŁá á áľá¨á áá á°áĽá áľáááłá°áĽ áááťáťá áĽáá áľáŠá¨áľ á áá°á°á áá˘
- ááá˝ áĽááľ á¨áááá° áááááŤáá˝ á áᣠááá áá á ááłá¸áá á˘áá á ááťá¸á ááłá áá¸á áĽá áá˝á áááá á¨ááŁá¸ááá˘
á¨á áŤáŁá˘ áá¨ááť áá
áááĽáá°áá á¨áááá áá áááááśá˝á á¨á áŤá°áá áá áááááśá˝ á¨áááá áľ ááááľ á ááአááááŤáľ ááľáĽáľáĽ áá°áľ á ááá áá áá á°á ááś ááĽáŤááłááą á áŤá°á áá á á¨áá°á áááł á á ááľ áá áĽáá˛á°áĽ ááľá¨á áŤáľááááᢠáá
ááá á¨Envoy Thread Local Storage (TLS) á á¨áá°á á°á¨á ááááťáᢠá áááĽáá ááá áááľá°áá áááľá°áłá°á áĽáá´áľ áĽá
á áá áĽáá°ááá áĽáááťáá.
áá°á á˛á áĽáá°á°áááá ááá áá áááá á¨á áľá°áłá°á áĽá á¨áááŁá áŞáŤ á ááŽáááá˝á á°ááŁá á áááááľ áá°áľ ááľáĽ áááŁá áŤá. á¨áááŁá áŞáŤá á ááŽááá áĽáá
áľáá˝ á°áááᣠááá áá á áááĽáá°áá áá°áľ ááľáĽ á˛ááá¨áąáľ áĽá á¨á°áŤá°áá ááŽá˝ á¨ááŤá°áááľ ááľá°ááá áá á˛áŤááá
áŠáľ áľááá áá°áŁáᢠá á ááá á°áᥠááá áá áá°áľ á ááłááľ áľáŤáá˝á áá°áŤá, á¨ááŤá áĽáŤááłááąá á¨á°áŤá°á áá áĽáá° áĽáŤá áá¤áľ áááá áŤáľááááá. á áá
áááł á¨á°áŤá°áá áá á áĽáŤááłááą ááłá¨áť áá áááá፠ááááľ á áŤáľááááá.
á¨áááĽáá°áá á˛á¤áá¤áľ (áá á¨á áŤáŁá˘ áá¨ááť) áľáááľ áĽáá°áá¨á°áá áá°áŤáá˘
- á ááá áá áá á¨áá°áŤ áŽáľ áá á ááá áá°áľ TLS ááľáá˘áŤ ááá°áĽ áá˝ááᢠááá áĽááłá áá á¨áá á˘áááᣠá á°ááŁá áá á¨áŹáá°á á˘áá´ááľ ááᣠáá á á¨O(1) ááłá¨áťá áá°áŁáá˘
- ááá áá á¨áááá° áááĽá á ááľáĄ ááľáá˘áŤ ááľáĽ ááŤá áá˝ááᢠáá á˛á°á¨áᣠááᥠá áĽáŤááłááą á°áŤá°á áá áá áĽáá° áá°á á á¨ááľá°áľ áá°áľ áłáľááá˘
- á¨á°áŤá°á ááŽá˝ á¨TLS áááá¸á ááá ἠáĽá áĽá፠á¨ááááá áááááá áá-á áŤáŁá˘áŤá ááἠáááŁáľ áá˝ááá˘
ááá áĽááłá á áŁá ááá áĽá á ááŤáľááá áááł áááá ááłá á˘ááá, ᨠRCU (ááá áĽ-á á-á ááá) áĽááł á˝áá°-ááłáĽ áá á áŁá á°ááłáłá áá. á áá á¨áąáŁ á¨á áŤá°á ááŽá˝ áĽáŤ á áá áŤá áľ áá á TLS ááá°áśá˝ ááľáĽ ááá ááááľ á¨ááἠáááŚá˝á á ááŤá˝ á áááá¨áąáᢠááἠá¨áá¨á°á°á á áľáŤ ááááá˝ ááŤá¨á áŁáá á¨áĽá¨ááľ áá ááľáĽ áĽáť áá.
ááááá°áá áá áá á áááľ á¨á°ááŤáŠ ááááśá˝ áá áááá˘
- á áĽáŤááłááą á¨á°áŤá°á áá áá á¨á°ááŤáŠ áá¨ááá˝á á áá¨áá¸áľ áááĄá áŤá ááá áĽááł ááááľ ááťáá.
- á áĽáŤááłááą á¨á°áŤá°á áá áá á á°ááŁá˘-áĽáť áááł áá° á ááá áá ááἠá¨á፠á ááá á áá á á ᢠáľááá , áĽáŤááłááą á°áŤá°á áá áľáŤá á áá°áŤá áľ áá ááááľ á¨ááá˝á á¨ááἠááŁááť áá ፠á áá. ááá á°áŤá°áá˝ á˛á¨áá áĽá á á˛áľ á¨á°á፠ááἠá˛á°á á áĽáť áá á¨áľáŽá ááἠá¨áá ááᢠáá ᨠRCU áá á°ááłáłá ááá˘
á¨áááľá°á ááťáťáŤ áá
á áá
ááá TLS (Thread local storage) áááľá°áá áááľá°áłá°á áĽáá´áľ áĽá
á áá áĽáá°ááá áĽáááťááᢠá¨áááľá°á á áľá°áłá°á ᨠxDS á¤áá á áĽá/ááá á¨á˛ á¤á á¤áľ áá°áľá áĽáá˛áá á¨á¤á ááááŤá áŤáŤáľáłáá˘
á¨áááľá°á áá°áľ á áľá°áłá°á á¨áá¨á°ááľá áááá˝ áĽá á°á¨ááá˝ áŤáŤáľáłáá˘
- á¨áááľá°á á áľá°áłáłáŞá áááá á¨ááłáá á¨áááľá°á á á¨áśá˝áᣠá¨áááľá°á áááľ á áááááľ (á˛á˛á¤áľ) á¤áá ááᣠááľáĽáŤá áááľ á áááááľá (á¤áľá˛á¤áľ) áĽá á¨áá¨á¨áť ááĽáĽ áááľ á áááááľá (á˘á˛á¤áľ) á¤áá ááá˝áᣠᲠá¤á á¤áľ áĽá áá á¨áá áá°áťáá˝á á¨ááŤáľá°áłáľá á áááĽáá°á ááľáĽ áŤá á áŤá ááᢠá¨á°áá á áľá°áááá˝á áĽá á¨á¤á áááłá á¨ááŤáŤáľáľ ááĽáŤááłááą á¨áá á°áá°áľ áááľá°á "á áá¨á¨áťá ááĽááľ áŤáá" áĽááłá á¨ááá á áááááľ á áá áľá˘
- á¨á¤á ááłá áá á¨áá á¨á¤á ááá፠áŤáŤááłá áĽá á¨á¤á áááł áááŚá˝á ááááľá°á á áľá°áłáłáŞ áŤáłáááá˘
- CDS (áááľá°á áááľ á áááááľ) / á¤áľá˛á¤áľ (ááľáĽáŤá á¨ááááľ á áááááľ) / EDS (á¨áá¨á¨áť ááĽáĽ áááľ á áááááľ) / Რá¤á á¤áľ á¨áááľá°á á áŁáááľá áááá°á áá¨ááááᢠá¨áááą ááἠáá° áááľá°á á áľá°áłáłáŞ ááááłáá˘
- áĽáŤááłááą á°áŤá°á áá áŤáááá¨áĽ á¨ááľá°áľ áá°áľá áŤá¨ááááá˘
- á¨áááľá°á áľáŤ á áľáŞáŤá á¨áááľá°á áááľ ááá¨áŠá á˛áŤáá á¨áááľá°á áááľ á á˛áľ á°ááŁá˘-áĽáť á á˝á á° ááś áááĽáŤá áĽá ááĽáŤááłááą á°áŤá°á áá áááŤáá˘
- á áááĽáá á¸áĽáł áá áľáŁ á¨á°áŤá°áá áá á á°áá°á á á¨TLS ááľáá˘áŤ ááľáĽ áŤááá á á˝á áłá áá˝ áĽááł áŤááááá˘
- á I/O ááľá°áľ áá áľ á áľá°áááá ááá áĽáá˛áá áááľáááŁá¨ááľ ááá áľá á áľá°ááá áá¨á áááááľ TLS (Thread local storage) ááľáá˘áŤ áá áááᢠáá áááááŤáá˝á á ááááá. á¨áááľ ááá á°áŞáá˝ áĽá ááá˝ á áŤááľ áá¸ááŤáá˝áᣠá¨ááἠá ááááŽá˝áᣠááá° áĽáá°áá ááľááľ áĽáá˛á˝á TLS áĽáá˛á á¨ááá ááľá°áśá˝á ááŤáľááł áĽáá°áá˝á áἠáá áᢠáá á¨áá ááĽá áá°á á áá áá, ááá áá á áŽáą ááľáĽ á á°ááŤáŠ áŚáłáá˝ áĽá á áá áááá.
á¨áá áŤááá á á°áŤá á áá áá áááĽáá°á áááááá áĽáŤá áŤá ááá áĽááł (á¨áá áá°á á¨á°ááá¸á á áľá°áá) ááľá°áááľ áá˝ááᢠá¨áŤáą á¨TLS áŽáľ ááľáĽáľáĽááľ áŁáťááᣠá áĽááá áŽáľ ááá˛áľáŤááľ áĽáá´áľ áĽáá°áá°áŤ áĽá áá á-áá ááá áĽáá°áá˝á áá¨áłáľ á áŤáľáááá¸ááᢠáá á¨áá á ááťá¸á á á°á¨á᪠á áĽááá áŽáľ áááá ááá áŤá°ááááá˘
TLS á¨áá áá ááá˝ áááľ áľáááśá˝
TLS (áá á¨á áŤáŁá˘ áá¨ááť) áĽá RCU (á¨á á ááááá á ááĽáĽ) á áááĽáá°á ááľáĽ á á°áá áĽá á áá ááááá˘
á¨áá áá ááłááá˝
- á á áááá áá á°ááŁáŤáľá á¨ááá¨á áá´; á áá áŤáá á¨áá á°ááŁáŤáľ áááá á ááá áá ááľáĽ áá°áá. áĽáŤááłááą á áŤá°á áá á¨ááŤá RCU áľááá á áá áá á°ááŁá˘-áĽáť á á˝á á° áá°áŁá.
- á¨ááááľ á á¨á´ááá˝á áá°áŤáľá RDS (Route Discovery Service) áá°á°áĄáľ á¨ááááľ á°áá á¨áŚá˝ á¨ááááľ á á¨á´ááá˝ á ááá áá áá á°ááĽá¨áá. á¨ááŁáĽ-áĽáť á á˝á á°-ááśá á ááá á RCU (á¨á á ááááá á ááĽáĽ) áľááááá˝á á áá áá ááĽáŤááłááą á°áŤá°á áá ááááŁáᢠáá á¨ááááľ á á¨á´ááá˝á ááá¨á á á áśáá áá¤áłá áŤá°ááááá˘
- HTTP áŤáľá áá¸ááŤáĄ áĽáá°ááłá¨áᣠááĽáŤááłááą áĽáŤá á¨á¤á˝á˛á˛á á áááľáľá ááľááľ (~25K+ RPS per core) á áŁá ááľ ááᢠáááĽáá°áá á á¨ááá˝ á°á¨ááľ áá°á á¨áŤáľááá ááá¨áá áŤá°áá áĽá ááĽáŤááłááą á áŤá°á á TLS áĽá RCU á áŠá áá°áŁáá˘
ááá˝ ááłáŽá˝á á áᣠááá áá á¨áá°ááľ ááłááá˝ TLS áá áĽá á áá áĽáá°ááá áĽáŠ áááá¤á ááľá áľ á ááŁá¸áá˘
á¨áłáá á¨á áááá ááľááśá˝
ááááá°áá á á á ááá á áĽáŠ áááł á¨áá°áŤ á˘áááᣠá áŁá á¨áá°á á áá á°ááłáłáááľ áĽá ááĽááľ áĽá á áá á˛áá áľáŠá¨áľ á¨ááš áĽááľ áłáá áŚáłáá˝ á áá˘
- á áá á˝áá ááľáĽ áĽáá°á°áááá á á áá áá ááá á¨á°áŤá°á ááŽá˝ áá° á¨ááłá¨áť áááἠáá á°á¨ áľááľáł ááľ á˛á˝á áááá፠áŤááá. á á¨áá°á á°ááłá áĽá á¨áá°á á¨áá¤áľ áá áᣠáá° áá¨á¨áťá ááá á áá˝áá áľ áá á¨áľááá á᪠áááľá¨áľ á᪠ááĽáŤááłááą á°áŤá°á á¨ááłá¨áť áááἠááľáłááťáá˝á áá°áĽá°áĽ áŤáľáááááłáᢠá á ááŤáᣠááĽáŤááłááą á°áŤá°á áá á¨á°áᨠá¨ááłá¨áť áááἠááá á áá˝ááá˘
- ááá áĽááłá áľáłá˛áľá˛ááľ á áŁá á¨á°ááťá¸ á˘áááᣠá áŁá á¨áá°á á áá á°ááłáłáááľ áĽá áá á á ááá°áĽ áľáłá˛áľá˛ááľ áá á¨á áśáá áááá ááá áá˝ááᢠá¨áá á˝áá áááľá ááŁáŞáá˝ á áĽáŤááłááą á°áŤá°á áá á á¨ááá á¨ááá¨áá ááŁáŞáá˝á áłáá ááľááá. áá á áááĽáá á˝áá ááľáĽ ááĽáŤáŤá.
- áááĽáá°á ááá á¨áá á¨ááľáŹá ááĽááśá˝á á¨áá áá á áŁá áĽááľ áááááśá˝ á ááá áľ áááł ááľáĽ á¨á°á°áአá áá áŤáá á ááá´áá¸á áĽáŠ á áá°áŤáᢠáááááśá˝ á á áŤá°á ááŽá˝ ááŤá¨á á áĽáŠáááľ áĽáá˛á¨ááá ááá ááľáľá á¨áá. áá á¨á°áŤá°á áááááľá áááŁá á á áá°áá á áááł áá˝áá, áá á á á áŤá°á ááŽá˝ ááŤá¨á áááááśá˝á ááááἠáŤáľá˝áá.
áá°áá°ááŤ
á¨áááĽááľ ááľá áá´á á áľááá áŤáá°ááᨠááŁáá á áá˝á áá
á°á¨ áľááľáł áĽá áááááśá˝ á᪠á¨ááŽááŤá á ááŁáĽá ááá áĽá áľáá
áľáአááá
á¨áĽ á¨á°áá°á ááᢠáá
áá´á á áŁá á¨áá°á á áá á¨áá áĽááľ áĽá á áĽá
á áá á á°áἠáĽáá˛á°áŤ áŤáľá˝ááá.
á áľáá°á áá áŁáአáĽáá°ááá˝áŠáľ á˛ááá áĽáá° DPDK (áłáł ááá áááľ áŞáľ) áŁá áá á¨á°á áá-ááľ ááľáááŞáá ááá áá áááľ áá˝áááŁáá
á á¨á°ááá°á á ááááŽá˝ á á´áŽááľ á áááŽá á¨ááá አáĽáŤááá˝á á áá L7 áá°áľ áĽáá˛áŤáľá°áááą áŤá°áááᢠá áááĽááľ áĽááľ áááłáľ ááľáĽ áá áĽáá°áááᣠáá¨áľ á áŁá á áľá°áłá˝ áááá.
á ááľ á¨áá¨á¨áť ááŁá á áľá°áŤá¨áľáĄ ááá C++á ááááĽáá°á áĽáá°áá¨áĽá áĽá áá á áááŤááᢠááááŤáą á ááá á áá
á˝áá áá á¨á°áááá á ááá´áá¸á á¨ááááŁá áľ áĽá¸áá á áľááľ áĽá
á áá á¨ááá á¨á˘ááąáľáľáŞ á°á¨á ááá á ááá ááᢠC ++ á áĽááá áááľ áááá ááá ááĽá ááŽáááśá˝ á°áľáá á áá°áá, ááá áá áá°áá°á á¨á á ááá ááłáŽá˝ á ááá áľáŤáá ááá¨ááá áĽá¸áá ááłáŞáŤ áá.
áá° áŽáľ á áááá˝
á áá ááĽá ááľáĽ á¨á°áĽáŤáŤ á áááá˝ áĽá á¨á ááĽáľáľ áľáá áŤáá˝ á¨áááá˝ á áááá˝áĄ-
github.com/lyft/envoy/blob/master/include/envoy/thread_local/thread_local.h github.com/lyft/envoy/blob/master/source/common/thread_local/thread_local_impl.h github.com/lyft/envoy/blob/master/include/envoy/upstream/cluster_manager.h github.com/lyft/envoy/blob/master/source/common/upstream/cluster_manager_impl.h
ááá: hab.com