[αž€αžΆαžšβ€‹αž”αž€αž”αŸ’αžšαŸ‚β€‹] αž‚αŸ†αžšαžΌβ€‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™β€‹αž”αŸ’αžšαŸαžŸαž·αž

αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘αŸ– αž‚αŸ†αžšαžΌαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž”αŸ’αžšαŸαžŸαž·αž - https://blog.envoyproxy.io/envoy-threading-model-a8d44b922310

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŽαžΆαžŸαŸ‹ αž αžΎαž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈ Envoy αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž”αŸ†αž•αž»αžαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒ "istio" αž¬αžŸαžΆαž˜αž‰αŸ’αž‰αž‡αžΆ "αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ ingress" αž“αŸƒ kubernetes αž˜αž“αž»αžŸαŸ’αžŸαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž˜αž·αž“αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™αžœαžΆαžŠαžΌαž…αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž˜αž½αž™αž’αž˜αŸ’αž˜αžαžΆαž‘αŸαŸ” αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Nginx ឬ Haproxy αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαžΌαž… αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΈαžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘αž‡αžΆαž—αžΆαžŸαžΆαžšαž»αžŸαŸ’αžŸαžΈαž±αŸ’αž™αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„αž–αžΆαž€αŸ’αž™αž–αž·αžŸαŸαžŸαž•αž„αžŠαŸ‚αžš αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž™αž›αŸ‹αžƒαžΎαž‰αžαžΆαžœαžΆαžˆαžΊαž…αžΆαž”αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αžšαžΏαž„αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‘αž»αž€αž’αž€αŸ’αžŸαžšαžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž„αŸ‹αž€αŸ’αžšαž…αž€αŸ” αžŸαžΌαž˜αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαž˜αž€αž€αžΆαž“αŸ‹αž†αŸ’αž˜αžΆαŸ”

αž―αž€αžŸαžΆαžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠ Envoy αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαžαž·αž…αžαž½αž…αŸ” αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž”αž‰αŸ’αž αžΆβ€‹αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†β€‹αž˜αžΆαž“β€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαž€αžΆαžŸβ€‹αž”αŸ’αž›αž€αŸ‹β€‹αž‡αžΆβ€‹αž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž’αŸ†αž–αžΈβ€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αžšαž„β€‹αž•αŸ’αžŸαŸαž„αŸ—β€‹αžšαž”αžŸαŸ‹ Envoy αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž“αŸαŸ‡αž‡αžΆαž’αžαŸ’αžαž”αž‘αžŠαŸ†αž”αžΌαž„ αžŸαžΌαž˜αž”αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αž·αž αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαŸ”

αžŸαŸ†αžŽαž½αžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‘αžΌαž‘αŸ…αž”αŸ†αž•αž»αžαž˜αž½αž™αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸ†αž–αžΈ Envoy αž‚αžΊαž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αž“αŸƒαž‚αŸ†αžšαžΌαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαŸ‚αž›αžœαžΆαž”αŸ’αžšαžΎαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαŸ€αž”αžšαžΆαž”αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Envoy αž—αŸ’αž‡αžΆαž”αŸ‹αž•αŸ‚αž“αž‘αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™ αž€αŸαžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’ Thread Local Storage αžŠαŸ‚αž›αžœαžΆαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαž„αž€αŸ’αž“αž»αž„αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΌαžŠαž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™

[αž€αžΆαžšβ€‹αž”αž€αž”αŸ’αžšαŸ‚β€‹] αž‚αŸ†αžšαžΌβ€‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™β€‹αž”αŸ’αžšαŸαžŸαž·αž

αž”αŸαžŸαž€αž‡αž“αž”αŸ’αžšαžΎαžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž”αžΈαž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ–

  • αž˜αŸαŸ– αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž“αŸαŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž“αž·αž„αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒ XDS (xDiscovery Service) API αžšαž½αž˜αž‘αžΆαŸ†αž„ DNS αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžαž—αžΆαž– αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αž‘αžΌαž‘αŸ… αž“αž·αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ αžŸαŸ’αžαž·αžαž· αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΌαž‘αŸ… - αžŸαž‰αŸ’αž‰αžΆαž›αžΈαž“αž»αž… αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αž€αŸ’αžαŸ…αŸ”αž›αŸ” αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž“αŸαŸ‡αž‚αžΊαž’αžŸαž˜αž€αžΆαž› αž“αž·αž„ "αž˜αž·αž“αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹" αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αžαŸ’αžŸαŸ‚αžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž»αžαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžš CPU αž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŸαžšαžŸαŸαžšαž€αžΌαžŠαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžŠαžΌαž…αž‡αžΆαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αžαŸ‚αž˜αž½αž™αžαŸ’αžŸαŸ‚αŸ”
  • αž€αž˜αŸ’αž˜αž€αžšαŸ– αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž”αŸ’αžšαŸαžŸαž·αžαž”αž„αŸ’αž€αžΎαžαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‡αž˜αŸ’αžšαžΎαžŸ --concurrency. αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ "αž˜αž·αž“αžšαžΆαžšαžΆαŸ†αž„" αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŸαŸ’αžαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŸαŸ’αžαžΆαž”αŸ‹αž“αžΈαž˜αž½αž™αŸ— αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžš (αžαŸ’αž„αŸƒαž‘αžΈ 29 αžαŸ‚αž€αž€αŸ’αž€αžŠαžΆ αž†αŸ’αž“αžΆαŸ† 2017) αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αž’αŸ’αž“αž€αžŸαŸ’αžαžΆαž”αŸ‹αž‘αŸ αž€αžΆαžšαž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αž˜αžΈ αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαž»αŸ†αžαž˜αŸ’αžšαž„αž—αŸ’αž›αžΆαž˜αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›/αž‘αž·αž“αŸ’αž“αž•αž› (IO) αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” αž‡αžΆαžαŸ’αž˜αžΈαž˜αŸ’αžαž„αž‘αŸ€αž αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αžΌαžŠαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αžαŸ’αžŸαŸ‚αžαŸ‚αž˜αž½αž™αŸ”
  • αž§αž”αž€αžšαžŽαŸαž”αŸ†αž›αŸ‚αž„αž―αž€αžŸαžΆαžšαŸ– αž―αž€αžŸαžΆαžšαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž› Envoy សរសេរ αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž…αžΌαž›αž”αŸ’αžšαžΎαž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž˜αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž―αž€αžšαžΆαž‡αŸ’αž™αŸ” αž“αŸαŸ‡αž‚αžΊαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αŸ…αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž•αŸ’αž‘αž»αž€αžŠαŸ„αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ O_NONBLOCK αž–αŸαž›αžαŸ’αž›αŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαžšαžΆαŸ†αž„ (αžŠαž€αžŠαž„αŸ’αž αžΎαž˜αž’αŸ†) αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αŸ…αž―αž€αžŸαžΆαžšαž˜αž½αž™ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αž·αžαž‡αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžŠαŸ‚αž›αž‘αžΈαž”αŸ†αž•αž»αžαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΌαžšαžαžΆαž˜αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™ αž›αž»αž”αž―αž€αžŸαžΆαžš. αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž€αžΌαžŠαžŠαŸ‚αž›αžαžΆαž˜αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αž”αž·αž‘αžŸαŸ„αžŠαžΌαž…αž‚αŸ’αž“αžΆ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ†αž–αŸαž‰αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ”

αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαžŠαŸ„αž™αžŸαž„αŸ’αžαŸαž”αžαžΆαž„αž›αžΎ αžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αž€αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŸαŸ’αžαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŸαŸ’αžαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžαŸ’αžœαŸ‚αž„αž‚αŸ†αž“αž·αžαž‘αžΎαž™αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžαžΊαžŽαŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž•αŸ’αž‰αžΎβ€‹αžšαž“αŸ’αž’β€‹αžŠαŸ‚αž›β€‹αž‘αž‘αž½αž›β€‹αž™αž€β€‹αžŠαŸ„αž™β€‹αž”αŸ’αžšαžŽαž·αžβ€‹αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αžαŸ’αžŸαŸ‚β€‹αžŸαŸ’αžšαž‘αžΆαž™β€‹αžšαž”αžŸαŸ‹β€‹αž€αž˜αŸ’αž˜αž€αžšαŸ” αžαžΊαžŽαŸ‚αž›αž‘αŸ†αž“αžΎαž”αž‡αžΆαž‘αžΌαž‘αŸ…αž›αŸ’αž’αžŽαžΆαžŸαŸ‹αž…αŸ†αž–αŸ„αŸ‡αžšαžΏαž„αž“αŸαŸ‡ αž–αž½αž€αž‚αŸαž”αŸ’αžšαžΎαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž‡αŸ†αžšαž»αž‰αž’αžΆαž‘αž·αž—αžΆαž–αž”αž‰αŸ’αž…αžΌαž›/αž‘αž·αž“αŸ’αž“αž•αž› (IO) αžŠαžΎαž˜αŸ’αž”αžΈαž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ†αž–αŸαž‰αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž„αžΆαžš αž˜αž»αž“αž–αŸαž›αž–αž½αž€αž‚αŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŸαŸ’αžαžΆαž”αŸ‹αž“αŸ…αž›αžΎαžšαž“αŸ’αž’αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž αžΎαž™αž€αŸαž˜αž·αž“αž”αŸ’αžšαžΎαžšαŸ‰αžΌαž”αŸŠαžΈαž“αž˜αžΌαž›αžŠαŸ‚αžšαŸ” αž…αžΆαž€αŸ‹αžŸαŸ„ (Spinlock) αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαžΎαž“αžΈαž˜αž½αž™αŸ—αŸ”
αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžš αžœαžΆαž˜αž·αž“αžŠαŸ‚αž›αž…αžΆαž€αž…αŸαž‰αž–αžΈαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž“αŸ„αŸ‡αž‘αŸαŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αž€αžš αžšαž½αž˜αž‘αžΆαŸ†αž„αž₯αžšαž·αž™αžΆαž”αžαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαŸ”

αžœαžΆαž˜αžΆαž“αž•αž›αžœαž·αž”αžΆαž€αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ–

  • αž”αžŽαŸ’αžαžΆαž‰αžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Envoy αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž±αŸ’αž™αž‘αŸ…αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αŸ’αžšαž»αž˜αžαž—αŸ’αž‡αžΆαž”αŸ‹ HTTP/2 αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ‚αž˜αž½αž™αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαžΆαž„αž›αžΎαž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž–αŸαž›αžαŸ‚αž˜αž½αž™αž€αŸαžŠαŸ„αž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž…αŸ†αž“αž½αž“ 2 αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ HTTP/XNUMX αž…αŸ†αž“αž½αž“αž”αž½αž“αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαžΆαž„αž›αžΎαž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαŸ’αžαž·αžšαž—αžΆαž–αŸ”
  • αž αŸαžαž»αž•αž›αžŠαŸ‚αž› Envoy αž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αžšαž”αŸ€αž”αž“αŸαŸ‡αž‚αžΊαžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαžαŸ‚αž˜αž½αž™ αž€αžΌαžŠαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹ αž αžΎαž™αžŠαžΌαž…αž‡αžΆαžœαžΆαž‡αžΆαžαŸ’αžŸαŸ‚αžαŸ‚αž˜αž½αž™αŸ” αž€αžΆαžšαžšαž…αž“αžΆαž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠαž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“αž™αŸ‰αžΆαž„αž›αŸ’αž’αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‡αžΏαž…αŸ†αž–αŸ„αŸ‡αž…αŸ†αž“αž½αž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αŸ”
  • αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž‚αžΊαžαžΆ αž–αžΈαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αž‘αžŸαŸ’αžŸαž“αŸˆαž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ αžœαžΆαž–αž·αžαž‡αžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ --concurrency. αž€αžΆαžšαž˜αžΆαž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž€αžΆαžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αžΉαž„αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž€αžΆαžšαž…αž„αž…αžΆαŸ† αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ†αž“αŸαžšαž…αŸ’αžšαžΎαž“ αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž’αžαŸ’αžšαžΆαž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαŸ” αž“αŸ… Lyft αž€αž»αž„αžαžΊαž“αŸαžšαžšαžαž™αž“αŸ’αžαž…αŸ†αž αŸ€αž„αžšαž”αžŸαŸ‹αž”αŸαžŸαž€αž‡αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž‘αžΆαž”αž”αŸ†αž•αž»αž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αž“αžΉαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž’αž„αŸ’αž‚αž»αž™αž€αŸ’αž”αŸ‚αžšαŸ” αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Envoy αž‡αžΆαž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž‚αŸ‚αž˜αžαŸ‚αž“αŸ…αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž’αžαž·αž”αžšαž˜αžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αžαžΎαž€αžΆαžšαž˜αž·αž“αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž˜αžΆαž“αž“αŸαž™αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž–αžΆαž€αŸ’αž™αžαžΆ "αž˜αž·αž“αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαž…αŸ’αžšαžΎαž“αžŠαž„αž˜αž€αž αžΎαž™ αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžαŸ’αžŸαŸ‚αž˜αŸ αž“αž·αž„αž€αž˜αŸ’αž˜αž€αžšαž’αŸ’αžœαžΎαž€αžΆαžšαŸ” αž€αžΌαžŠαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž›αžΎαž€αžΆαžšαžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαžšαžΆαŸ†αž„αž‘αžΎαž™αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αž“αŸαŸ‡αž˜αž·αž“αž–αž·αžαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž‘αŸ (αžαžΎαž’αŸ’αžœαžΈαž˜αž·αž“αž–αž·αžαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„?)

αž”αŸαžŸαž€αž‡αž“αž”αŸ’αžšαžΎαž€αžΆαžšαž…αžΆαž€αŸ‹αžŸαŸ„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸαžœαŸ‚αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ–

  • αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆ αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ„αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž˜αž»αž“αž–αŸαž›αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αŸαž‰αŸ” αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž€αžΆαžšαž…αžΆαž€αŸ‹αžŸαŸ„αžšαž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αž”αŸ†αž•αž»αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž‚αžΊαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžŸαŸ„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžαž˜αŸ’αž›αŸƒαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž“αž·αž„αž‘αž·αž“αŸ’αž“αž•αž›αžαŸ’αž–αžŸαŸ‹αŸ”
  • αž”αŸαžŸαž€αž‡αž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸ’αžαž·αžαž·αžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αŸ” αž“αŸαŸ‡αž“αžΉαž„αž‡αžΆαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž“αž·αž™αžΆαž™αžŠαŸ„αž™αžŸαž„αŸ’αžαŸαž”αžαžΆ αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αžαž·αžαž·αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€ αž‡αž½αž“αž€αžΆαž›αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ„αž“αŸ…αž›αžΎ "αžƒαŸ’αž›αžΆαŸ†αž„αžŸαŸ’αžαž·αžαž·" αž€αžŽαŸ’αžαžΆαž›αŸ” αž€αžΆαžšαž…αžΆαž€αŸ‹αžŸαŸ„αž“αŸαŸ‡αž˜αž·αž“αž‚αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαž‘αŸαŸ”
  • αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŸαŸ†αžαžΆαž“αŸ‹αž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž›αž‡αžΆαž˜αž½αž™αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™ "αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–" αž–αžΈαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸαž‘αŸ…αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžš αž αžΎαž™αž‡αž½αž“αž€αžΆαž›αž–αžΈαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸαžœαž·αž‰αŸ” αž€αžΆαžšαž•αŸ’αž‰αžΎαžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž…αžΆαž€αŸ‹αžŸαŸ„ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαž˜αŸ’αžšαž„αŸ‹αž‡αž½αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αŸ” αž€αžΆαžšαž…αžΆαž€αŸ‹αžŸαŸ„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αž‚αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„αžαŸ’αž›αžΆαŸ†αž„αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž“αŸ…αžαŸ‚αž’αžΆαž…αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αžαžΆαž˜αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαŸ”
  • αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› Envoy αžŸαžšαžŸαŸαžšαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž€αŸ†αž αž»αžŸαž”αŸ’αžšαž–αŸαž“αŸ’αž’ (αž€αŸ†αž αž»αžŸαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš) αžœαžΆαž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ„αž“αŸ…αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžšαž”αžŸαŸ‹ Envoy αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαžšαžΏαž„αžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž–αžΈαž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αžœαžΆαž‘αŸαŸ”
  • αž˜αžΆαž“αž€αžΆαžšαž…αžΆαž€αŸ‹αžŸαŸ„αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž…αŸ†αž“αŸ„αž˜αž–αž½αž€αž‚αŸαž‚αžΊαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹ αž“αž·αž„αž˜αž·αž“αž‚αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αž‘αžΆαžŸαŸ‹αž‘αžΎαž™αŸ”

αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžœαž·αž’αžΈαžŠαŸ‚αž› Envoy αž”αŸ†αž”αŸ‚αž€αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž“αŸƒαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸαž–αžΈαž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž“αŸƒαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžš αžœαžΆαž˜αžΆαž“αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž•αŸ’αžαž›αŸ‹αž‘αŸ…αž±αŸ’αž™αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαžαŸ’αž–αžŸαŸ‹αŸ” αž•αŸ’αž“αŸ‚αž€αž“αŸαŸ‡αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ Envoy Thread Local Storage (TLS) αž“αŸ…αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αŸ” αž“αŸ…αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαŸ€αž”αžšαžΆαž”αŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αŸ”
[αž€αžΆαžšβ€‹αž”αž€αž”αŸ’αžšαŸ‚β€‹] αž‚αŸ†αžšαžΌβ€‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™β€‹αž”αŸ’αžšαŸαžŸαž·αž

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αžŽαŸŒαž“αžΆαžšαž½αž…αž˜αž€αž αžΎαž™ αžαŸ’αžŸαŸ‚αžŸαŸ†αžαžΆαž“αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΌαžœαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αž“αŸ’αžαž αŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Envoy αŸ” αž™αž“αŸ’αžαž αŸ„αŸ‡αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‚αžΊαž•αŸ’αž‘αž»αž€αž›αžΎαžŸαž‘αž˜αŸ’αž„αž“αŸ‹αž”αž“αŸ’αžαž·αž…αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž˜αžΎαž›αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Envoy αžαŸ’αž›αž½αž“αžœαžΆ αž αžΎαž™αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžœαžΆαž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαžŠαŸ‚αž›αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž’αŸ’αžœαžΎ αžœαžΆαžŸαž˜αž αŸαžαž»αž•αž›αŸ” αž…αŸ’αž”αžΆαž”αŸ‹αž‘αžΌαž‘αŸ…αž‚αžΊαžαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αž›αŸ‡αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžœαžΆαžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž“αž·αž™αŸ„αž‡αž·αžαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ„αž™αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž„αžΆαžšαž“αŸ„αŸ‡αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αž€αžšαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ„αž›αžΎαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž“αžΈαž˜αž½αž™αŸ—αž‘αŸαŸ”.

αž”αŸ’αžšαž–αŸαž“αŸ’αž’ TLS (Thread local storage) αžšαž”αžŸαŸ‹ Envoy αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  • αž€αžΌαžŠαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αž˜αŸαž’αžΆαž…αž”αŸ‚αž„αž…αŸ‚αž€αžšαž“αŸ’αž’αžŠαŸ„αž TLS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž’αžšαžΌαž”αžΈαž€αŸαžŠαŸ„αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αžœαžΆαž‚αžΊαž‡αžΆαž›αž·αž”αž·αž€αŸ’αžšαž˜αž‘αŸ…αž€αŸ’αž“αž»αž„αžœαŸ‰αž·αž…αž‘αŸαžš αžŠαŸ„αž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ O(1)αŸ”
  • αžαŸ’αžŸαŸ‚αžŸαŸ†αžαžΆαž“αŸ‹αž’αžΆαž…αžŠαŸ†αž‘αžΎαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ†αž–αžΆαž“αž‘αŸ…αž€αŸ’αž“αž»αž„αžšαž“αŸ’αž’αžŠαŸ„αžαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž“αŸ…αž–αŸαž›αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžšαž½αž… αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αž‘αŸ…αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αž‡αžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αž˜αŸ’αž˜αžαžΆαŸ”
  • αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž’αžΆαž…αž’αžΆαž“αž–αžΈαžšαž“αŸ’αž’αžŠαŸ„αž TLS αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž“αž·αž„αž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžŸαŸ‚αž”αžŽαŸ’αžαžΆαž‰αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž‡αžΆαž‚αŸ†αžšαžΌαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‡αžΏαž€αŸαžŠαŸ„αž™ αž€αŸαžœαžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹ RCU (Read-Copy-Update) αŸ” αž‡αžΆαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹ αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž˜αž·αž“αžŠαŸ‚αž›αžƒαžΎαž‰αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž“αŸ’αž’αžŠαŸ„αž TLS αž‘αŸ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž„αžΆαžšαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΎαžαž‘αžΎαž„αžαŸ‚αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžšαžœαžΆαž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž€αžΆαžšαž„αžΆαžšαŸ”

αž”αŸαžŸαž€αž‡αž“αž”αŸ’αžšαžΎαžœαž·αž’αžΈαž–αžΈαžšαž™αŸ‰αžΆαž„αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ–

  • αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ— αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžΆαž…αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ”
  • αžŠαŸ„αž™αžšαž€αŸ’αžŸαžΆαž”αžΆαž“αž“αžΌαžœαž‘αŸ’αžšαž“αž·αž…αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‘αŸ…αž€αžΆαž“αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž€αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αžΆαž“αžαŸ‚αž’αžΆαž“αž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž“αžΈαž˜αž½αž™αŸ—αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αž˜αžΆαž“αž…αŸ†αž“αž½αž“αž™αŸ„αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž”αž“αŸ’αžαž™αž”αžΆαž“ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž„αžΆαžšαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αž€αž˜αŸ’αž˜αž€αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαŸ’αž„αž”αŸ‹αž…αž·αžαŸ’αž αž αžΎαž™αž”αž„αŸ’αž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžαŸ’αž˜αžΈ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αžΆαžŸαŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αŸ†αž•αŸ’αž›αžΆαž‰αŸ” αž“αŸαŸ‡αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αŸαŸ‡αž”αž·αž‘αž‘αŸ…αž“αžΉαž„ RCU αŸ”

αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–β€‹αž”αžŽαŸ’αžαž»αŸ†β€‹αžαŸ’αžŸαŸ‚β€‹αžŸαŸ’αžšαž‘αžΆαž™

αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαŸ€αž”αžšαžΆαž”αŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› TLS (Thread local storage) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αŸ” αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αžšαž½αž˜αž˜αžΆαž“ xDS API αž“αž·αž„/αž¬αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš DNS αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžαž—αžΆαž–αŸ”
[αž€αžΆαžšβ€‹αž”αž€αž”αŸ’αžšαŸ‚β€‹] αž‚αŸ†αžšαžΌβ€‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™β€‹αž”αŸ’αžšαŸαžŸαž·αž

αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αŸ†αž αžΌαžšαž…αž„αŸ’αž€αŸ„αž˜ αžšαž½αž˜αž˜αžΆαž“αž’αžΆαžαž»αž•αŸ’αžŸαŸ† αž“αž·αž„αž‡αŸ†αž αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  1. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αž‚αžΊαž‡αžΆαž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαŸαžŸαž·αžαžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αžšαž”αžŸαŸ‹αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ Cluster Discovery Service (CDS) API αžŸαŸαžœαžΆαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαž˜αŸ’αž„αžΆαžαŸ‹ (SDS) αž“αž·αž„ Endpoint Discovery Service (EDS) APIs DNS αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαžΆαž„αž€αŸ’αžšαŸ…αžŸαž€αž˜αŸ’αž˜ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžαž—αžΆαž–αŸ” αžœαžΆαž˜αžΆαž“αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž·αžŠαŸ’αž‹αž—αžΆαž– "αž“αŸ…αž‘αžΈαž”αŸ†αž•αž»αžαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ" αž“αŸƒαž…αž„αŸ’αž€αŸ„αž˜αž…αžšαž“αŸ’αžαž“αžΈαž˜αž½αž™αŸ— αžŠαŸ‚αž›αžšαž½αž˜αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž”αžΆαž“αžšαž€αžƒαžΎαž‰ αž€αŸαžŠαžΌαž…αž‡αžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαž»αžαž—αžΆαž–αž•αž„αžŠαŸ‚αžšαŸ”
  2. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžαž—αžΆαž–αž’αŸ’αžœαžΎαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžαž—αžΆαž–αžŸαž€αž˜αŸ’αž˜ αž αžΎαž™αžšαžΆαž™αž€αžΆαžšαžŽαŸαž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαž»αžαž—αžΆαž–αž‘αŸ…αž€αžΆαž“αŸ‹αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αŸ”
  3. CDS (αžŸαŸαžœαžΆαžŸαŸ’αžœαŸ‚αž„αžšαž€αž…αž„αŸ’αž€αŸ„αž˜) / SDS (αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„) / EDS (αžŸαŸαžœαžΆαžŸαŸ’αžœαŸ‚αž„αžšαž€αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹) / DNS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžŸαž˜αžΆαž‡αž·αž€αž—αžΆαž–αž…αž„αŸ’αž€αŸ„αž˜αŸ” αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαžŠαŸ’αž‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αŸ”
  4. αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ”
  5. αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αž€αŸ†αžŽαžαŸ‹αžαžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αžœαžΆαž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αžαžαžŠαŸ‚αž›αž”αžΆαž“αž’αžΆαž“αž”αžΆαž“αžαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αž…αž„αŸ’αž€αŸ„αž˜ αž αžΎαž™αž•αŸ’αž‰αžΎαžœαžΆαž‘αŸ…αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αžΈαž˜αž½αž™αŸ—αŸ”
  6. αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŸαŸ’αž„αžΆαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αžΉαž„αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžšαžΌαž”αžαžαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž“αŸ’αž’αžŠαŸ„αž TLS αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αŸ”
  7. αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ I/O αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€αžŸαž˜αžαž»αž›αŸ’αž™ αž’αŸ’αž“αž€αž•αŸ’αž‘αž»αž€αžαž»αž›αŸ’αž™αž—αžΆαž–αž“αžΉαž„αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžšαž“αŸ’αž’αžŠαŸ„αž TLS (Thread local storage) αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αŸ” αž“αŸαŸ‡αž˜αž·αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αžŸαŸ„αŸ” αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αž•αž„αžŠαŸ‚αžšαžαžΆ TLS αž€αŸαž’αžΆαž…αž”αž„αŸ’αž€αž±αŸ’αž™αž˜αžΆαž“αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αžΆαž”αŸ‹αžŠαŸαž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŸαž˜αžαž»αž›αŸ’αž™ αž“αž·αž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž’αžΆαž…αž‚αžŽαž“αžΆαž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”αž›αŸ” αž“αŸαŸ‡αž αž½αžŸαž–αžΈαžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒαž”αŸ’αžšαž€αžΆαžŸαž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„αŸ—αž€αŸ’αž“αž»αž„αž€αžΌαžŠαŸ”

αžŠαŸ„αž™αž”αŸ’αžšαžΎαž“αžΈαžαž·αžœαž·αž’αžΈαžαžΆαž„αž›αžΎ αž”αŸαžŸαž€αž‡αž“αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαžΆαž›αŸ‹αžŸαŸ†αžŽαžΎαžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžšαžΆαžšαžΆαŸ†αž„αžŽαžΆαž˜αž½αž™αž‘αžΎαž™ (αž›αžΎαž€αž›αŸ‚αž„αžŠαžΌαž…αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αž–αžΈαž˜αž»αž“)αŸ” αž€αŸ’αžšαŸ…αž–αžΈαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒαž€αžΌαžŠ TLS αžαŸ’αž›αž½αž“αžœαžΆ αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαž€αžΌαžŠαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› multithreading αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžαŸ‚αž˜αž½αž™αžαŸ’αžŸαŸ‚αŸ” αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΌαžŠαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžš αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž‡αžΆαž„αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž”αŸ’αžšαžΎ TLS

TLS (Thread local storage) αž“αž·αž„ RCU (Read Copy Update) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„ Envoy αŸ”

αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ–

  • αž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αž»αžαž„αžΆαžšαž€αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αŸ– αž”αž‰αŸ’αž‡αžΈαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸƒαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αžΎαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžšαžΌαž”αžαžαžŠαŸ‚αž›αž”αžΆαž“αž’αžΆαž“αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎ RCU semantics αŸ”
  • αž€αžΆαžšαž‡αŸ†αž“αž½αžŸαžαžΆαžšαžΆαž„αž•αŸ’αž›αžΌαžœαŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαžΆαžšαžΆαž„αž•αŸ’αž›αžΌαžœαžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™ RDS (Route Discovery Service) αžαžΆαžšαžΆαž„αž•αŸ’αž›αžΌαžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž›αžΎαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αŸαŸ” αžšαžΌαž”αžαžβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžαŸ‚β€‹αž’αžΆαž“β€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž•αŸ’αžαž›αŸ‹β€‹αž‡αžΌαž“β€‹αž‡αžΆβ€‹αž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αžŠαž›αŸ‹β€‹αžαŸ’αžŸαŸ‚β€‹αžŸαŸ’αžšαž‘αžΆαž™β€‹αžšαž”αžŸαŸ‹β€‹αž€αž˜αŸ’αž˜αž€αžšβ€‹αž“αž·αž˜αž½αž™αŸ—β€‹αžŠαŸ„αž™β€‹αž”αŸ’αžšαžΎ RCU (Read Copy Update) semanticsαŸ” αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαžΆαžšαžΆαž„αž•αŸ’αž›αžΌαžœαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ”
  • αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž”αž‹αž˜αž€αžαžΆ HTTPαŸ– αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž€αžΆαžšαž‚αžŽαž“αžΆαž”αž‹αž˜αž€αžαžΆ HTTP αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαž“αžΈαž˜αž½αž™αŸ— (αžαžŽαŸˆαž–αŸαž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš ~ 25K + RPS αž€αŸ’αž“αž»αž„αž˜αž½αž™αžŸαŸ’αž“αžΌαž›) αž‚αžΊαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαžŽαžΆαžŸαŸ‹αŸ” αž”αŸ’αžšαŸαžŸαž·αžαž€αžŽαŸ’αžαžΆαž›αž‚αžŽαž“αžΆαž”αž‹αž˜αž€αžαžΆαž”αŸ’αžšαž αŸ‚αž›αžšαŸ€αž„αžšαžΆαž›αŸ‹αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αžœαž·αž“αžΆαž‘αžΈ αž αžΎαž™αž•αŸ’αžαž›αŸ‹αžœαžΆαžŠαž›αŸ‹αž€αž˜αŸ’αž˜αž€αžšαž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αžαžΆαž˜αžšαž™αŸˆ TLS αž“αž·αž„ RCU αŸ”

αž˜αžΆαž“αž€αžšαžŽαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž§αž‘αžΆαž αžšαžŽαŸαž–αžΈαž˜αž»αž“αž‚αž½αžšαžαŸ‚αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžŠαŸαž›αŸ’αž’αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž› TLS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αŸ”

αž€αŸ†αž αž»αžŸαž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŠαŸ‚αž›αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹

αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› Envoy αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’αž‡αžΆαžšαž½αž˜ αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž‘αžΆαž˜αž‘αžΆαžšαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž“αž·αž„αž›αž‘αŸ’αž’αž•αž›αžαŸ’αž–αžŸαŸ‹αžαŸ’αž›αžΆαŸ†αž„αŸ–

  • αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ„αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž‘αŸ…αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž“αŸƒαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžŠαŸ„αž™αž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαžαŸ’αž–αžŸαŸ‹ αž“αž·αž„αž›αŸ†αž αžΌαžšαž…αžΌαž›αžαŸ’αž–αžŸαŸ‹ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž…αŸ‹αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ— αžŠαŸ„αž™αž…αŸ†αžŽαžΆαž™αž›αžΎαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž€αŸ’αžšαŸ…αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž‘αŸ…αž―αž€αžŸαžΆαžšαž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ” αž˜αŸ‰αŸ’αž™αžΆαž„αž‘αŸ€αž αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αž·αž˜αž½αž™αŸ—αŸ”
  • αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŸαŸ’αžαž·αžαž·αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαžαŸ’αž–αžŸαŸ‹αž€αŸαžŠαŸ„αž™ αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αž·αž„αž‘αž·αž“αŸ’αž“αž•αž›αžαŸ’αž–αžŸαŸ‹ αž‘αŸ†αž“αž„αž‡αžΆαž“αžΉαž„αž˜αžΆαž“αž‡αž˜αŸ’αž›αŸ„αŸ‡αž’αžΆαžαžΌαž˜αž·αž€αž›αžΎαžŸαŸ’αžαž·αžαž·αž”αž»αž‚αŸ’αž‚αž›αŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž…αŸ†αž–αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž‚αžΊαž”αž‰αŸ’αž‡αžšαž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αžŸαŸ‚αžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αž€αžš αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αžαžΆαž˜αž€αžΆαž›αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž”αž‰αŸ’αž‡αžšαž€αžŽαŸ’αžαžΆαž›αŸ” αž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”
  • αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Envoy αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αž“αž’αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ” αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž’αžΆαž“αžΆαžαžΆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αžŸαŸ’αž˜αžΎαŸ—αž‚αŸ’αž“αžΆαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαž“αŸ„αŸ‡αž‘αŸαŸ” αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαž»αž›αŸ’αž™αž—αžΆαž–αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž€αž˜αŸ’αž˜αž€αžšαžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžšαŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž‚αŸ†αžšαžΌαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžšαž”αžŸαŸ‹ Envoy αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαžŠαŸαž’αŸ†αžŠαŸ„αž™αž…αŸ†αžŽαžΆαž™αž“αŸƒαž€αžΆαžšαž…αž„αž…αžΆαŸ† αž“αž·αž„αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž˜αŸ‰αžΌαžŠαŸ‚αž›αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž™αŸ‰αžΆαž„αž›αŸ’αž’αž“αŸ…αž…αŸ†αž“αž½αž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžαŸ’αž–αžŸαŸ‹ αž“αž·αž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αŸ”
αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž™αŸ‰αžΆαž„αžαŸ’αž›αžΈαž“αŸ…αž›αžΎ Twitter αž€αžΆαžšαžšαž…αž“αžΆαž€αŸαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž”αžŽαŸ’αžαžΆαž‰αžšαž”αŸ€αž”αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸαž‰αž›αŸαž‰αžŠαžΌαž…αž‡αžΆ DPDK (Data Plane Development Kit) αžŠαŸ‚αž›αž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αž˜αŸ’αž˜αžαžΆαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ†αžŽαžΎαžšαžΆαž”αŸ‹αž›αžΆαž“αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš L7 αž–αŸαž‰αž›αŸαž‰αŸ” αžœαžΆαž“αžΉαž„αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž–αžΈαžšαž”αžΈαž†αŸ’αž“αžΆαŸ†αžαžΆαž„αž˜αž»αžαŸ”
αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αžšαž αŸαžŸαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž˜αž½αž™αŸ– αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαž½αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαž„αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž™αžΎαž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ C++ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Envoy αŸ” αž αŸαžαž»αž•αž›αž“αŸ…αžαŸ‚αžαžΆαžœαžΆαž“αŸ…αžαŸ‚αž‡αžΆαž—αžΆαžŸαžΆαžαŸ’αž“αžΆαž€αŸ‹αž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž“αŸαŸ‡αž’αžΆαž…αžŸαžΆαž„αžŸαž„αŸ‹αž”αžΆαž“αŸ” C ++ αž‚αžΊαž–αž·αžαž‡αžΆαž˜αž·αž“αžŸαŸαž€αŸ’αžαž·αžŸαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž¬αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“ αžœαžΆαž“αŸ…αžαŸ‚αž‡αžΆαž§αž”αž€αžšαžŽαŸαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž–αŸαž‰αž€αžΆαžšαž„αžΆαžšαŸ”

αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž›αŸαžαž€αžΌαžŠ

αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž‹αž˜αž€αžαžΆαžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž“αŸαŸ‡αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹