เบเบฒเบเปเบเบเบปเบเบเบงเบฒเบก:
เบเปเบญเบเบเบปเบเบงเปเบฒเบเบปเบเบเบงเบฒเบกเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบ, เปเบฅเบฐเบเบฑเบเบเบฑเปเบเปเบเป Envoy เบเบทเบเบเปเบฒเปเบเปเปเบฅเบทเปเบญเบเปเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ "istio" เบซเบผเบทเบเบฝเบเปเบเปเปเบเบฑเบ "เบเบปเบงเบเบงเบเบเบธเบก ingress" เบเบญเบ kubernetes, เบเบปเบเบชเปเบงเบเปเบซเบเปเบเปเปเบกเบตเบเบฒเบเบเบปเบงเบเบฑเบเปเบเบเบเบปเบเบเบฑเบเบกเบฑเบ, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเบเบเบปเบเบเบฐเบเบด. เบเบฒเบเบเบดเบเบเบฑเปเบ Nginx เบซเบผเบท Haproxy. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบ, เบกเบฑเบเบเบฐเปเบเบฑเบเบเบฒเบเบเบตเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฒเบเบเบฒเบเปเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฐเบเบฒเบเบฒเบกเปเบเบเปเปเบเบงเบฒเบกเปเบเบฑเบเบเบฒเบชเบฒเบฅเบฑเบเปเบเบเบซเบผเบฒเบเปเบเบปเปเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเป, เบฅเบงเบกเบเบฑเบเบเปเบฒเบชเบฑเบเบเบดเปเบชเบ; เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเปเบซเบฑเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบงเบเบเบตเปเบเบฐเปเบเบดเปเบเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฐเปเบงเปเบเบปเปเบเบชเบฐเบเบฑเบเบขเบนเปเปเบเบงเบปเบเปเบฅเบฑเบ. เบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบ cat.
เปเบญเบเบฐเบชเบฒเบเบเปเบฒเบเบงเบดเบเบฒเบเบฒเบเบฅเบฐเบเบฑเบเบเปเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบฐเบซเบฑเบ Envoy เปเบเบเบฑเบเบเบธเบเบฑเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเปเบซเบผเบฒเบ. เปเบเบทเปเบญเปเบเปเปเบเปเบฅเบทเปเบญเบเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบงเบฒเบเปเบเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบปเบเปเบฅเบทเปเบญเบ blog เบเปเบฝเบงเบเบฑเบเบฅเบฐเบเบปเบเบเปเบญเบเบเปเบฒเบเปเบเบญเบ Envoy. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบตเปเปเบกเปเบเบเบปเบเบเบงเบฒเบกเบเปเบฒเบญเบดเบ, เบเบฐเบฅเบธเบเบฒเปเบเปเบเปเบซเปเบเปเบญเบเบฎเบนเปเบงเปเบฒเปเบเบปเปเบฒเบเบดเบเปเบเบงเปเบเปเบฅเบฐเบชเบดเปเบเบเบตเปเปเบเบปเปเบฒเบญเบฒเบเบเบฐเบชเบปเบเปเบเปเบเบเบปเบเบเบงเบฒเบกเปเบเบญเบฐเบเบฒเบเบปเบ.
เบซเบเบถเปเบเปเบเบเปเบฒเบเบฒเบกเบเปเบฒเบเบงเบดเบเบฒเบเบฒเบเบเบปเปเบงเปเบเบเบตเปเบชเบธเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเปเบฝเบงเบเบฑเบ Envoy เปเบกเปเบเบเบฒเบเบฎเปเบญเบเบเปเปเบซเปเบกเบตเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบฅเบฐเบเบฑเบเบเปเปเบฒเบเบญเบเบฎเบนเบเปเบเบ threading เบเบตเปเบกเบฑเบเปเบเป. เปเบเบเบปเบเบเบฝเบเบเบตเป, เบเปเบญเบเบเบฐเบญเบฐเบเบดเบเบฒเบเบงเบดเบเบตเบเบตเป Envoy เบงเบฒเบเปเบเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฐเบเบนเป, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบฅเบฐเบเบปเบ Thread Local Storage เบเบตเปเบกเบฑเบเปเบเปเบเบฒเบเปเบเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบฅเบฐเบซเบฑเบเบเบฐเบซเบเบฒเบเบเบฑเบเบซเบผเบฒเบเบเบถเปเบเปเบฅเบฐเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบนเบ.
เบเบฒเบเบฅเบงเบกเบเบญเบเบเบฐเบเบนเป
Envoy เปเบเปเบชเบฒเบกเบเบฐเปเบเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบชเบฒเบเบเปเปเบฒ:
- เบซเบผเบฑเบ: เบเบฐเบเบนเปเบเบตเปเบเบงเบเบเบธเบกเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฐเบเบงเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบขเบธเบเปเบเบปเบฒ, เบเบฒเบเบเบธเบเปเบเปเบเบเบฑเบเบซเบกเบปเบเบเบญเบ API XDS (xDiscovery Service), เบฅเบงเบกเบเบฑเบ DNS, เบเบฒเบเบเบงเบเบชเบญเบเบชเบธเบเบฐเบเบฒเบ, เบเบฒเบเบเบธเปเบกเบเบญเบเบเบธเปเบกเบเบปเปเบงเปเบเปเบฅเบฐเปเบงเบฅเบฒเปเบฅเปเบ, เบชเบฐเบเบดเบเบดเบเบฒเบเบเบฑเบเปเบซเบกเป, เบเบฒเบเบเปเบฅเบดเบซเบฒเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฐเบเบงเบเบเบฒเบเบเบปเปเบงเปเบ - Linux signals hot restart, เปเบฅเบฐเบญเบทเปเบเป. เปเบเบตเบเบเบถเปเบเปเบเบเบฐเบเบนเปเบเบตเปเปเบกเปเบ asynchronous เปเบฅเบฐ "เบเปเปเบชเบฐเบเบฑเบ". เปเบเบเบเบปเปเบงเปเบ, เบเบฐเบเบนเปเบซเบผเบฑเบเบเบฐเบชเบฒเบเบเบฒเบเบเบฐเบเบงเบเบเบฒเบเบเปเบฒเบเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเป CPU เบเปเบฒเบเบงเบเบซเบผเบงเบเบซเบผเบฒเบ. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบฅเบฐเบซเบฑเบเบเบงเบเบเบธเบกเบชเปเบงเบเปเบซเบเปเบเบทเบเบเบฝเบเบเบทเบเบฑเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบฐเบเบนเปเบเบฝเบง.
- เบเบปเบเบเบฒเบ: เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, Envoy เบชเปเบฒเบเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบซเบปเบงเบเปเปเบฎเบฒเบเปเบงเปเบเบฅเบฐเบเบปเบ, เบเบตเปเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเปเบเปเปเบเบเปเบเปเบเบฒเบเปเบฅเบทเบญเบ.
--concurrency
. เปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ loop เปเบซเบเบเบฒเบ "เบเปเปเบเบฑเบ", เปเบเบดเปเบเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเปเบเปเบฅเบฐเบเบปเบ; เปเบเปเบงเบฅเบฒเบเบฝเบ (29 เบเปเบฅเบฐเบเบปเบ 2017) เบเปเปเบกเบตเบเบฒเบ sharding เบเบญเบเบเบนเปเบเบฑเบ, เบเบญเบกเบฎเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบซเบกเป, instantiating stack เบเบฒเบเบเบฑเปเบเบเบญเบเบชเปเบฒเบฅเบฑเบ. เบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโ, เปเบฅเบฐโเบเบฒเบโเบเบธเบโเปเบเปเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฒเบโเบเปเบญเบโเบเปเปโเบกเบนเบ / เบเบปเบโเบเบฐโเบฅเบดเบโเบเบฑเบโเบซเบกเบปเบ (IOโ) เปเบโเปเบฅโเบเบฐโเบเบตโเบงเบดเบโเบเบญเบโเบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโ. เบญเบตเบเปเบเบทเปเบญ เปเบถเปเบ, เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบชเปเบงเบเปเบซเบเปเบเบทเบเบเบฝเบเบเบทเบเบฑเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบฐเบเบนเปเบเบฝเบง. - File flusher: เปเบเปเบฅเบฐเปเบเบฅเปเบเบตเป Envoy เบเบฝเบ, เบชเปเบงเบเปเบซเบเปเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบเบเบถเบ, เปเบเบเบฑเบเบเบธเบเบฑเบเบกเบตเบเบฐเบเบนเปเบชเบฐเบเบฑเบเปเบญเบเบฐเบฅเบฒเบ. เบเบตเปเปเบกเปเบเปเบเบทเปเบญเบเบกเบฒเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบตเปเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเบฅเบฐเบเบปเบเปเบเบฅเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเปเบเป
O_NONBLOCK
เบเบฒเบเบเบฑเปเบเบชเบฒเบกเบฒเบเบเบทเบเบชเบฐเบเบฑเบ (sigh). เปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฝเบเปเบชเปเปเบเบฅเป, เบเบปเบงเบเบดเบเปเบฅเปเบงเบเปเปเบกเบนเบเบเบทเบเบเปเบฒเบเปเบเบเบตเป buffer เปเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเปเบญเบเบเบตเปเบกเบฑเบเบเบทเบ flushed เบเปเบฒเบเบเบฐเบเบนเปเปเบเบเบตเปเบชเบธเบ. เบฅเปเบฒเบเปเบเบฅเป. เบเบตเปเปเบกเปเบเบเบทเปเบเบเบตเปเบซเบเบถเปเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบฒเบเบงเบดเบเบฒเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบชเบฒเบกเบฒเบเบชเบฐเบเบฑเบ lock เบเบฝเบงเบเบฑเบเปเบเบเบฐเบเบฐเบเบตเปเบเบฐเบเบฒเบเบฒเบกเบเบทเปเบกเบเปเปเบกเบนเบเปเบชเป buffer เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ.
เบเบฒเบเบเบฑเบเบเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป
เบเบฑเปเบโเบเบตเปโเปเบเปโเบเปเบฒเบงโเบกเบฒโเปเบเบโเบซเบเปเปโเบเปเบฒเบโเปเบเบดเบโเบเบตเป, เบเบฐโเบเบนเปโเปเบฎเบโเบเบฒเบโเบเบฑเบโเปเบปเบโเบฅเปเบงเบโเปเบเปโเบฎเบฑเบโเบเบฑเบโเบเบนเปโเบเบฑเบโเบเบฑเบโเปเบปเบโเปเบเบโเบเปเปโเบกเบตโเบเบฒเบโเปเบเปเบโเปเบเบ. เบเบฑเปเบเบเบฑเปเบ, kernel เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเบปเปเบ sockets เบเบตเปเบเบญเบกเบฎเบฑเบเบขเปเบฒเบเบชเบฐเบซเบเปเบฒเบเบฒเบกเปเบเบซเบฒเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบ. kernels เบเบตเปเบเบฑเบเบชเบฐเปเบซเบกเปเบเบเบเบปเปเบงเปเบเปเบกเปเบเบเบตเบซเบผเบฒเบ, เบเบงเบเปเบเบปเบฒเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเปเบเบฑเปเบ input / output (IO) เบเบนเบฅเบดเบกเบฐเบชเบดเบเบเบฒเบเบเบธเบเบเบนเปเปเบเบทเปเบญเบเบฐเบเบฒเบเบฒเบกเบเบทเปเบกเบเปเปเบกเบนเบเปเบชเปเบเบฐเบเบนเปเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเปเบญเบเบเบตเปเบกเบฑเบเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเบฒเปเบเป threads เบญเบทเปเบเปเบเบตเปเบเบฑเบเบเบฑเบเบขเบนเปเปเบเปเบเบปเปเบฒเบฎเบฑเบเบเบฝเบงเบเบฑเบ, เปเบฅเบฐเบเปเปเปเบเปเปเบเป round robin. locking (Spinlock) เปเบเบทเปเบญเบเบฐเบกเบงเบเบเบปเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเป.
เปเบกเบทเปเบญเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบทเบเบเบญเบกเบฎเบฑเบเปเบเบเบฐเบเบนเปเบเบปเบเบเบฒเบ, เบกเบฑเบเบเบฐเบเปเปเบญเบญเบเบเบฒเบเบเบฐเบเบนเปเบเบฑเปเบ. เบเบฒเบเบเบธเบเปเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบตเปเบกเปเบเบตเบกเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบเบฑเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ, เบฅเบงเบกเบเบฑเบเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบชเบปเปเบเบเปเปเปเบเป.
เบเบตเปโเบกเบตโเบเบปเบโเบชเบฐโเบเปเบญเบโเบเบตเปโเบชเปเบฒโเบเบฑเบโเบเปเบฒโเบเบงเบโเบซเบเบถเปเบโ:
- เบชเบฐเบฅเบญเบเบเปเบณเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบปเบเปเบ Envoy เปเบกเปเบเบเบทเบเบกเบญเบเปเบฒเบเปเบซเปเบเบฑเบเบเบฐเบเบนเปเบเบปเบเบเบฒเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเป HTTP / 2 เปเบเบทเปเบญเบกเบเปเปเบเบฝเบเปเบเปเบซเบเบถเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบเปเบฅเบฐ host upstream เปเบเปเบงเบฅเบฒเบเบฝเบง, เบเปเบฒเบกเบตเบชเบตเป threads เบเบญเบเบเบฐเบเบฑเบเบเบฒเบ, เบเบฐเบกเบตเบชเบตเปเบเบฒเบเปเบเบทเปเบญเบกเบเปเป HTTP / 2 เบเปเป host upstream เบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเปเบซเบกเบฑเปเบเบเบปเบ.
- เปเบซเบเบเบปเบเบเบตเป Envoy เปเบฎเบฑเบเบงเบฝเบเบงเบดเบเบตเบเบตเปเปเบกเปเบเบงเปเบฒเปเบเบเบเบฒเบเบฎเบฑเบเบชเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบขเบนเปเปเบเบเบฐเบเบนเปเบเบปเบเบเบฝเบง, เปเบเบทเบญเบเบฅเบฐเบซเบฑเบเบเบฑเบเบซเบกเบปเบเบชเบฒเบกเบฒเบเบเบทเบเบเบฝเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบฐเบเบฑเบเปเบฅเบฐเบเบทเบเบฑเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบฐเบเบนเปเบเบฝเบง. เบเบฒเบเบญเบญเบเปเบเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเปเปเบเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบเบซเบผเบฒเบเปเบฅเบฐเบเบฐเบซเบเบฒเบเปเบเปเบเบต incredibly เปเบเบฑเบเบเปเบฒเบเบงเบเปเบเบทเบญเบเบเปเปเบเปเบฒเบเบฑเบเบเบญเบเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบ.
- เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบซเบเบถเปเบเปเบเบชเบดเปเบเบเบตเปเปเบญเบปเบฒเบกเบฒเบเบปเปเบเบเปเปเบกเปเบเบงเปเบฒเบเบฒเบเบชเบฐเบเบธเบเปเบเบตเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบฅเบฐเบเบธเบเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบซเบผเบฒเบเบเบตเปเบเบฐ configure เปเบเป.
--concurrency
. เบเบฒเบเบกเบตเบเบฐเบเบนเปเบเบปเบเบเบฒเบเบซเบผเบฒเบเบเบงเปเบฒเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบเบฐเปเบชเบเบเบงเบฒเบกเบเปเบฒ, เบชเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเปเปเบกเบตเบเบฐเปเบซเบเบเบซเบผเบฒเบ, เปเบฅเบฐเบซเบผเบธเบเบเปเบญเบเบญเบฑเบเบเบฒเบเบฒเบเบฅเบงเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเป. เบขเบนเป Lyft, เบเบนเปเบเบญเบเปเบเบเปเบเบต sidecar เบเบนเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบฅเปเบเบเปเบงเบเบชเบฐเบเบธเบเปเบเบดเบเบเบตเปเบเปเปเบฒเบซเบผเบฒเบเปเบเบทเปเบญเปเบซเปเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบปเบเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเปเบเบขเบนเปเบเบฝเบเบเปเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบ Envoy เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบฝเบเปเบเปเบขเบนเปเปเบเบเบงเบฒเบกเบชเบญเบเบเปเบญเบเบชเบนเบเบชเบธเบ.
เบเบฒเบเบเปเปเบเบฑเบเบเบงเบฒเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเปเบเบงเปเบ?
เบเปเบฒเบงเปเบฒ "เบเปเปเบชเบฐเบเบฑเบเบเบฑเปเบ" เปเบเปเบเบทเบเบเปเบฒเปเบเปเบซเบผเบฒเบเบเบฑเปเบเบกเบฒเปเบเบดเบเบเบญเบเบเบฑเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบฐเบเบนเปเบเบปเปเบเบเปเปเบฅเบฐเบเบฐเบเบฑเบเบเบฒเบ. เบฅเบฐเบซเบฑเบเบเบฑเบเบซเบกเบปเบเบเบทเบเบเบฝเบเปเบงเปเปเบเบชเบปเบกเบกเบธเบเบเบดเบเบฒเบเบงเปเบฒเบเปเปเบกเบตเบซเบเบฑเบเบเบทเบเบเบฅเบฑเบญเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบตเปเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบเบฑเบเบซเบกเบปเบ (เบชเบดเปเบเบเบตเปเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบเบฑเบเบซเบกเบปเบ?).
Envoy เปเบเปเบเบฒเบเบฅเบฑเบญเบเบเบฐเบเบงเบเบเบฒเบเบเบฒเบงเบซเบผเบฒเบ:
- เบเบฑเปเบเบเบตเปเปเบเปเบชเบปเบเบเบฐเบเบฒเบเบฑเบเปเบฅเปเบง, เปเบกเบทเปเบญเบเบฝเบเบเบฑเบเบเบถเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ, เบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเปเบปเบเปเบเปเบฎเบฑเบ lock เบเบฝเบงเบเบฑเบเบเปเบญเบเบเบตเป buffer log in-memory เบเบฐเปเบเบฑเบกเปเบ. เปเบงเบฅเบฒเบเบท lock เบเบงเบเบเบฐเบเปเปเบฒเบซเบผเบฒเบ, เปเบเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบ lock เบเบตเปเบเบฐเปเบเปเบเบเบฑเบเปเบ concurrency เบชเบนเบเปเบฅเบฐ throughput เบชเบนเบ.
- Envoy เปเบเปเบฅเบฐเบเบปเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบฑเบเบชเบฐเบเบดเบเบดเบเบตเปเปเบเบฑเบเบเปเบญเบเบเบดเปเบเบเบญเบเบเบฐเบเบนเป. เบเบตเปเบเบฐเปเบเบฑเบเบซเบปเบงเบเปเปเบเบญเบเบเบฒเบเบเบญเบเปเบเบเบเปเบฒเบเบซเบฒเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเปเบฒเบงเปเบเบดเบเบชเบฑเปเบเปเบงเปเบฒเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเบเบธเบเปเบเปเบเบชเบฐเบเบดเบเบดเบเบฐเบเบนเปเปเบเบเปเบญเบเบเบดเปเบ, เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบกเบฒเบฅเบฑเบญเบเบขเบนเปเปเบ "เบฎเปเบฒเบเบชเบฐเบเบดเบเบด". เบเบฒเบเบฅเบฑเบญเบเบเบตเปเบเปเปเบเบงเบเบเบทเบเบเปเบญเบเบเบฒเบ.
- เบเบฐเบเบนเปเบซเบผเบฑเบเปเบเปเบฅเบฐเปเบฅเบเบฐเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบชเบฒเบเบเบฒเบเบเบฑเบเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ. เบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบ "เปเบเบตเบเปเบเป" เบเบฒเบเบเบฐเบเบนเปเบซเบผเบฑเบเปเบเบซเบฒเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ, เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบทเบเปเบเบซเบฒเบเบฐเบเบนเปเบเบปเปเบเบเป. เบเบฒเบเบชเบปเปเบเบเปเบญเบเบเบฒเบเบฅเบฑเบญเบเปเบเบทเปเบญเปเบซเปเบเปเปเบเบงเบฒเบกเบเบตเปเบเบทเบเปเบเบตเบเปเบเปเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเบเบเบดเบงเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบชเบปเปเบเปเบเบเบฒเบเบซเบผเบฑเบ. locks เปเบซเบผเบปเปเบฒเบเบตเปเบเปเปเบเบงเบเบเบฐเบเบทเบเปเบเปเปเบเปเบเบขเปเบฒเบเบเบดเบเบเบฑเบ, เปเบเปเบเบงเบเบกเบฑเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบชเบฐเบเบฑเบเบเบฒเบเบเปเบฒเบเบงเบดเบเบฒเบเบฒเบ.
- เปเบกเบทเปเบญ Envoy เบเบฝเบเบเบฑเบเบเบถเบเบเบฒเบเบเปเบฒเบเบเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบญเบเบฅเบฐเบเบปเบ (เบเบงเบฒเบกเบเบดเบเบเบฒเบเบกเบฒเบเบเบฐเบเบฒเบ), เบกเบฑเบเปเบเปเบฎเบฑเบ lock เปเบเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ. เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบง, เบเบฒเบเบฅเบฑเบเบฅเบญเบเบเบฑเบเปเบกเปเปเบเบเปเบญเบเบเบดเปเบเบเบญเบ Envoy เปเบกเปเบเบเบทเบงเปเบฒเบเบตเปเบฎเปเบฒเบเบเบฒเบเบเบธเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ, เบชเบฐเบเบฑเปเบ เบเบฑเบเบเปเปเบเบฑเบเปเบเปเปเบญเบปเบฒเปเบเปเบชเปเบซเบผเบฒเบเปเบเบเบฒเบเบเบฑเบเบเบธเบเบกเบฑเบ.
- เบกเบตเบเบฒเบเบฅเบฑเบญเบเปเบเบเบชเบธเปเบกเบญเบตเบเบเบณเบเบงเบเปเบถเปเบ, เปเบเปเบเปเปเบกเบตเบญเบฑเบเปเบเบญเบฑเบเปเบเบเบตเปเบชเบณเบเบฑเบ เปเบฅเบฐเบเปเปเบเบงเบเบเบทเบเบเปเบฒเบเบฒเบ.
เบเบฐเบเบนเปเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเบญเบเบเบดเปเบ
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบ Envoy เปเบเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบญเบเบเบฐเบเบนเปเบเบปเปเบเบเปเบญเบญเบเบเบฒเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบญเบเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ, เบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบธเบเปเบเปเบเบเบตเปเบเบฑเบเบเปเบญเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบฐเบเบนเปเบซเบผเบฑเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบฅเบฑเบเบชเบฐเบเบฐ concurrently. เบเบฒเบเบชเปเบงเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบเบดเบ Envoy Thread Local Storage (TLS) เปเบเบฅเบฐเบเบฑเบเบชเบนเบ. เปเบเบเบฒเบเบเปเปเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบญเบฐเบเบดเบเบฒเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบเบฒเบเบเบธเปเบกเบเบญเบเบเบธเปเบก.
เบเบฑเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบฅเปเบง, เบเบฐเบเบนเปเบซเบผเบฑเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบ เปเบฅเบฐเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบเบเบปเบเปเบเบทเบญเบเบเบฑเบเปเบปเบเปเบเบเบฐเบเบงเบเบเบฒเบ Envoy. เบเบปเบเบเบงเบเบเบธเบกเปเบกเปเบ overload เปเบฅเบฑเบเบเปเบญเบเบขเบนเปเบเบตเปเบเบตเป, เปเบเปเปเบกเบทเปเบญเบเปเบฒเบเปเบเบดเปเบเบกเบฑเบเบขเบนเปเปเบเบเบฐเบเบงเบเบเบฒเบ Envoy เบเบปเบงเบกเบฑเบเปเบญเบเปเบฅเบฐเบเบฝเบเบเบฝเบเบกเบฑเบเบเบฑเบเบเบฒเบเบชเบปเปเบเบเปเปเบเบตเปเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเปเบฎเบฑเบ, เบกเบฑเบเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบ. เบเบปเบเบฅเบฐเบเบฝเบเบเบปเปเบงเปเบเปเบกเปเบเบงเปเบฒเบเบฐเบเบงเบเบเบฒเบเบเบฐเบเบนเปเบเบปเปเบเบเปเปเบฎเบฑเบเบงเบฝเบเบเบฒเบเบขเปเบฒเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบเบธเบเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเบฒเบกเบเบปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเปเบ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบฐเบเบนเปเปเบฎเบเบเบฒเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบ lock เปเบเปเบเปเบฅเบฐเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ.
เบฅเบฐเบเบปเบ TLS เบเบญเบ Envoy (Thread local storage) เปเบฎเบฑเบเบงเบฝเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เบฅเบฐเบซเบฑเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบซเบปเบงเบเปเปเบซเบผเบฑเบเบชเบฒเบกเบฒเบเบเบฑเบเบชเบฑเบเบเปเบญเบเบชเบฝเบ TLS เบชเปเบฒเบฅเบฑเบเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบตเปเปเบกเปเบเบเปเปเบกเบตเบเบปเบงเบเบปเบ, เปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบกเบฑเบเปเบเบฑเบเบเบฑเบเบเบฐเบเบตเปเบเบปเปเบฒเปเบเปเบ vector, เบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ O(1).
- เบเบฐเบเบนเปเบเบปเปเบเบเปเบชเบฒเบกเบฒเบเบเบดเบเบเบฑเปเบเบเปเปเบกเบนเบ arbitrary เปเบเบปเปเบฒเปเบเปเบเบเปเบญเบเบเบญเบเบเบปเบ. เปเบกเบทเปเบญเบญเบฑเบเบเบตเปเบชเบณเปเบฅเบฑเบเปเบฅเปเบง, เบเปเปเบกเบนเบเบเบฐเบเบทเบเปเบเบตเบเปเบเปเปเบซเปเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบฑเบเปเบซเบเบเบฒเบ loop เปเบซเบเบเบฒเบเบเบปเบเบเบฐเบเบด.
- เบเบฐเบเบนเปเบเบปเบเบเบฒเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเบเบฒเบเบเปเบญเบ TLS เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ เปเบฅเบฐเบเบถเบเบเปเปเบกเบนเบ thread-local เบเบตเปเบกเบตเบขเบนเปเปเบเบเปเบญเบเบเบฑเปเบ.
เปเบเบดเบโเปเบกเปเบโเบงเปเบฒโเบกเบฑเบโเปเบเบฑเบโเบฎเบนเบโเปเบเบโเบเบตเปโเบเปเบฒเบโเบเบฒเบโเปเบฅเบฐโเบกเบตโเบญเปเบฒโเบเบฒเบ incredibly, เบกเบฑเบโเบเปเบฒเบโเบเบทโเบเบฑเบโเบซเบผเบฒเบโเบเบฑเบโเปเบเบงโเบเบงเบฒเบกโเบเบดเบโเบเบญเบ RCU (Read-Copy-Updateโ) เบเบฒเบโเบเบดเบโ. เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบง, เบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเปเปเปเบเบตเบเปเบซเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเปเปเบกเบนเบเปเบเปเปเบเบเปเบญเบ TLS เปเบเบเบฐเบเบฐเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบฎเบฑเบเบงเบฝเบ. เบเบฒเบเบเปเบฝเบเปเบเบเปเบเบตเบเบเบถเปเบเบเบฝเบเปเบเปเปเบเปเบฅเบเบฐเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบฅเบฐเบซเบงเปเบฒเบเบเบดเบเบเบฐเบเปเบฒเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ.
Envoy เปเบเปเบชเบดเปเบเบเบตเปเปเบเบชเบญเบเบงเบดเบเบตเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ:
- เปเบเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ, เบเปเปเบกเบนเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบฐเบเบฑเบเปเบเป.
- เปเบเบเบเบฒเบเบฎเบฑเบเบชเบฒเบเบปเบงเบเบตเปเบเบตเปเปเบเปเบเบเบฑเบเปเบซเปเบเบฑเบเบเปเปเบกเบนเบเบเบปเปเบงเปเบฅเบเปเบเบฎเบนเบเปเบเบเบญเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบเปเบเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบเบกเบตเบเปเบฒเบเบงเบเบเบฒเบเบญเปเบฒเบเบญเบดเบเบเปเปเบกเบนเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบเบงเบฝเบ. เบเบฝเบเปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบชเบฐเบซเบเบปเบเบฅเบปเบเปเบฅเบฐเบญเบฑเบเปเบซเบฅเบเบเปเปเบกเบนเบเบเบตเปเปเบเปเบเบเบฑเบเปเบซเบกเปเบเปเปเบกเบนเบเปเบเบปเปเบฒเบเบฐเบเบทเบเบเปเบฒเบฅเบฒเบ. เบเบตเปเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบ RCU.
เบเบฐเบเบนเปเบญเบฑเบเปเบเบเบเบธเปเบก
เปเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบญเบฐเบเบดเบเบฒเบเบงเบดเบเบตเบเบฒเบ TLS (Thread local storage) เบเบทเบเปเบเปเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบธเปเบก. เบเบฒเบเบเบฑเบเบเบฒเบเบเบธเปเบกเบฅเบงเบกเบกเบต xDS API เปเบฅเบฐ/เบซเบผเบท DNS processing, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบ.
เบเบฒเบเบเบฑเบเบเบฒเบเบเบฒเบเปเบซเบผเบเบญเบเบเบธเปเบกเบเบฐเบเบญเบเบกเบตเบญเบปเบเบเบฐเบเบญเบ เปเบฅเบฐเบเบฑเปเบเบเบญเบเบเปเปเปเบเบเบตเป:
- Cluster Manager เปเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเปเบ Envoy เบเบตเปเบเบธเปเบกเบเบญเบเบเบฑเบเปเบปเบเบเบตเปเบฎเบนเปเบเบฑเบเบเบญเบ cluster upstreams, Cluster Discovery Service (CDS) API, the Secret Discovery Service (SDS) เปเบฅเบฐ Endpoint Discovery Service (EDS) APIs, DNS, เปเบฅเบฐ active external checking. เบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบชเปเบฒเบเบเบฑเบเบชเบฐเบเบฐ "เปเบเบเบตเปเบชเบธเบเบชเบญเบเบเปเบญเบ" เบเบญเบเปเบเปเบฅเบฐเบเบธเปเบกเบเบปเปเบเบเปเปเบฒ, เปเบเบดเปเบเบเบฐเบเบญเบเบกเบตเปเบเบปเปเบฒเบเบฒเบเบเบตเปเบเบปเปเบเบเบปเบเปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบชเบธเบเบฐเบเบฒเบ.
- เบเบนเปเบเบงเบเบชเบธเบเบฐเบเบฒเบเปเบฎเบฑเบเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเบขเปเบฒเบเบซเปเบฒเบงเบซเบฑเบ เปเบฅเบฐเบฅเบฒเบเบเบฒเบเบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบเบฒเบเบฐเบชเบธเบเบฐเบเบฒเบเปเบซเปเบเบฑเบเบเบนเปเบเบฑเบเบเบฒเบเบเบธเปเบก.
- CDS (Cluster Discovery Service) / SDS (Secret Discovery Service) / EDS (Endpoint Discovery Service) / DNS เปเบกเปเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบฒเบเปเบเบฑเบเบชเบฐเบกเบฒเบเบดเบเบเบธเปเบก. เบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเบฅเบฑเบเปเบกเปเบเบเบฑเบเบเบทเบเปเบเบซเบฒเบเบนเปเบเบฑเบเบเบฒเบเบเบธเปเบก.
- เปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ loop เปเบซเบเบเบฒเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ.
- เปเบกเบทเปเบญเบเบปเบงเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบณเบเบปเบเบงเปเบฒเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบธเปเบกเปเบเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เบกเบฑเบเบเบฐเบชเปเบฒเบเบเบฒเบเบเปเบฒเบเปเปเปเบเบตเปเบญเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบเบเบญเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบธเปเบก เปเบฅเบฐ เบชเบปเปเบเบกเบฑเบเปเบเบซเบฒเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ.
- เปเบเบฅเบฐเบซเบงเปเบฒเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบตเปเบเบฝเบเบชเบฐเบซเบเบปเบเบเปเปเปเบ, เบเบฐเบเบนเปเบเบปเบเบเบฒเบเบเบฐเบญเบฑเบเปเบเบเบฎเบนเบเบเปเบฒเบเปเบเบเปเบญเบ TLS เบเบตเปเบเบฑเบเบชเบฑเบเปเบงเป.
- เปเบเบฅเบฐเบซเบงเปเบฒเบเปเบซเบเบเบฒเบ I/O เบเบตเปเบเบงเบเบเบฐเบเปเบฒเบเบปเบเปเบฎเบเปเบเบเบฒเบเปเบซเบผเบเบเบญเบเปเบเบดเบ, เบเบปเบงเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบเบเบฐเบฎเปเบญเบเบเปเบเปเบญเบเปเบชเป TLS (Thread local storage) เปเบเบทเปเบญเบเปเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเปเบฎเบ. เบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบต locks. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒ TLS เบเบฑเบเบชเบฒเบกเบฒเบเบเบฐเบเบธเปเบเปเบซเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบธเบเปเบเบทเปเบญเปเบซเปเบเบปเบงเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเบญเบทเปเบเปเบชเบฒเบกเบฒเบเบเบดเบเปเบฅเปเปเบเบ, เปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบญเบทเปเบเป. เบเบตเปเปเบกเปเบเปเบเบตเบเบเบญเบเปเบเบเบเบญเบเบเบฒเบเบเบญเบเบเบตเป, เปเบเปเบเบทเบเบเปเบฒเปเบเปเปเบเบชเบฐเบเบฒเบเบเบตเปเบเปเบฒเบเปเปเบเบฅเบฐเบซเบฑเบ.
เบเบฒเบเบเปเบฒเปเบเปเบเบฑเปเบเบเบญเบเบเปเบฒเบเปเบเบดเบ, Envoy เบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบธเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบฐเบเบฑเบเปเบเป (เบเบปเบเปเบงเบฑเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเบเปเบญเบเบซเบเปเบฒเบเบตเป). เบเบญเบเปเบซเบเบทเบญเบเบฒเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเบเบญเบเบฅเบฐเบซเบฑเบ TLS เบเบปเบงเบกเบฑเบเปเบญเบ, เบชเปเบงเบเปเบซเบเปเบเบญเบเบฅเบฐเบซเบฑเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบปเปเบฒเปเบเบงเปเบฒ multithreading เปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบเปเบฅเบฐเบชเบฒเบกเบฒเบเบเบฝเบเปเบเบฑเบเบเบฐเบเบนเปเบเบฝเบง. เบเบตเปเปเบฎเบฑเบเปเบซเปเบฅเบฐเบซเบฑเบเบชเปเบงเบเปเบซเบเปเบเปเบฒเบเบเปเปเบเบฒเบเบเบฝเบเบเบญเบเปเบซเบเบทเบญเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเบเบถเปเบ.
เบฅเบฐเบเบปเบเบเปเบญเบเบญเบทเปเบเปเบเบตเปเบเปเบฒเปเบเป TLS
TLS (Thread local storage) เปเบฅเบฐ RCU (Read Copy Update) เบเบทเบเบเปเบฒเปเบเปเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบ Envoy.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบ เบเบณ เปเบเป:
- เบเบปเบเปเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ: เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเปเบเบตเบเปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเปเบกเปเบเบเบดเบเปเบฅเปเบขเบนเปเปเบเบซเบปเบงเบเปเปเบเบปเปเบเบเป. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเปเบกเปเบเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒเบเปเบเบเบญเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบเปเบเบเปเบเป RCU semantics.
- เบเบฒเบเบเปเบฝเบเบเบฒเบเบฐเบฅเบฒเบเปเบชเบฑเปเบเบเบฒเบ: เบชเปเบฒเบฅเบฑเบเบเบฒเบเบฐเบฅเบฒเบเปเบชเบฑเปเบเบเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบเบ RDS (Route Discovery Service), เบเบฒเบเบฐเบฅเบฒเบเปเบชเบฑเปเบเบเบฒเบเปเบกเปเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบซเบปเบงเบเปเปเบเบปเปเบเบเป. เบเบฒเบเบเปเบฒเบเปเบเบเบญเปเบฒเบเบขเปเบฒเบเบเบฝเบงเบเบฐเบเบทเบเบชเบฐเปเบญเบเปเบซเปเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบเบฒเบเบซเบผเบฑเบเปเบเบเปเบเป RCU (Read Copy Update) semantics. เบเบตเปเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบฐเบฅเบฒเบเปเบชเบฑเปเบเบเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฐเบฅเปเบฒเบกเบฐเบเบน.
- HTTP header caching: เบเปเบญเบเบงเปเบฒเบกเบฑเบเบซเบฑเบเบญเบญเบ, เบเบฒเบเบเบดเบเปเบฅเปเบชเปเบงเบเบซเบปเบง HTTP เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเป (เปเบเบเบฐเบเบฐเบเบตเปเปเบฅเปเบ ~ 25K + RPS เบเปเปเบซเบผเบฑเบ) เปเบกเปเบเบเปเบญเบเบเปเบฒเบเปเบเบ. Envoy เบชเบนเบเบเบฒเบเบเบดเบเปเบฅเปเบชเปเบงเบเบซเบปเบงเบเบฐเบกเบฒเบเบเบธเบเปเปเบเบดเปเบเบงเบดเบเบฒเบเบตเปเบฅเบฐเบชเบฐเบซเบเบญเบเบกเบฑเบเปเบซเปเปเบเปเบฅเบฐเบเบฐเบเบฑเบเบเบฒเบเปเบเบเบเปเบฒเบ TLS เปเบฅเบฐ RCU.
เบกเบตเบเปเบฅเบฐเบเบตเบญเบทเปเบเป, เปเบเปเบเบปเบงเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒเบเบงเบเปเบซเปเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเบเบตเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเป TLS เบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบ.
เบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบ
เปเบเบเบฐเบเบฐเบเบตเป Envoy เบเบฐเบเบดเบเบฑเบเปเบเปเบเบตเปเบเบเบฅเบงเบก, เบกเบตเบเบฒเบเบเบปเบเปเบเบเบเบตเปเปเบเบเปเบเบฑเปเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเบชเบปเบเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบเบงเบฒเบกเบชเบญเบเบเปเบญเบเปเบฅเบฐเบเบฒเบเบชเบปเปเบเบเปเปเบเบตเปเบชเบนเบเบซเบผเบฒเบ:
- เบเบฑเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเบฐเบเบธเบเบฑเบเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเปเบปเบเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบฑเบญเบเปเบกเบทเปเบญเบเบฝเบเปเบชเป buffer เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ. เบเปเบงเบเบเบงเบฒเบกเบชเบญเบเบเปเบญเบเบเบฑเบเบชเบนเบเปเบฅเบฐเบเบฒเบเบชเบปเปเบเบเปเบฒเบเบชเบนเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบเป batch เบเบฑเบเบเบถเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบเบเปเบฒเปเบเปเบเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเบเบชเบปเปเบเบเบตเปเบเปเปเปเบเปเบชเบฑเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฝเบเปเบเบดเบเปเบเบฅเปเบชเบธเบเบเปเบฒเบ. เบญเบตเบเบเบฒเบเปเบฅเบทเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเบฑเบเบเบถเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบเปเบฒเบเบซเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ.
- เปเบเบดเบเปเบกเปเบเบงเปเบฒเบชเบฐเบเบดเบเบดเปเบเปเบเบทเบเบเบฑเบเบเบธเบเปเบซเปเบเบตเบเบตเปเบชเบธเบ, เปเบเปเปเบเบญเบฑเบเบเบฒเบเบตเปเบชเบนเบเบซเบผเบฒเบ, เบญเบฑเบเบเบฒเปเบฅเบเบเปเบฝเบเปเบฅเบฐเบญเบฑเบเบเบฒเบชเบฐเปเบฅเปเบเบญเบฒเบเบเบฐเบกเบตเบเบฒเบเบเบฑเบเปเบเปเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบดเบเบดเบชเปเบงเบเบเบธเบเบเบปเบ. เบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเปเบกเปเบเบเบปเบงเบเบฑเบเบเปเปเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบเบตเปเบกเบตเบเบฒเบเบเบฑเบเบเปเบฒเบเบปเบงเบเบฑเบเบเบฒเบเปเบเบฑเบเปเบฅเบเบฐ. เบเบตเปเบเบฐเบเบทเบเบเบถเบเบชเบฒเบซเบฒเบฅเบทเปเบเบเบฒเบเบเบญเบเบเปเปเปเบ.
- เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเบเบฐเบเบธเบเบฑเบเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบตเบเปเบฒ Envoy เบเบทเบเบเปเบฒเปเบเปเบเปเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบซเบเปเบญเบเบเบตเปเบชเบธเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฒเบเบเบธเบเปเบเปเบเบเบตเปเบชเปเบฒเบเบฑเบ. เบเปเปเบกเบตเบเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฐเบเบทเบเปเบเบเบขเบฒเบเบขเปเบฒเบเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ. เบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ, เปเบเบดเปเบเบเบฐเบเปเบงเบเปเบซเปเบกเบตเบเบฒเบเปเบฅเบเบเปเบฝเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบฅเบฐเบซเบงเปเบฒเบเบเบฐเบเบนเปเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ.
เบชเบฐเบซเบผเบธเบ
เบฎเบนเบเปเบเบเบเบฒเบเปเบชเปเบเบฐเบเบนเปเบเบญเบ Envoy เบเบทเบเบญเบญเบเปเบเบเบกเบฒเปเบเบทเปเบญเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบเปเบฒเบเบเบญเบเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเปเบฅเบฐเบเบฒเบเบเบฐเบซเบเบฒเบเบญเบฑเบเปเบซเบเปเบซเบผเบงเบเปเบเบเบเปเบฒเปเบเปเบเปเบฒเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบฅเบฐเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบญเบฒเบเบเบฐเบชเบนเบเปเบชเบเปเบเบเปเบฒเบเปเปเปเบเปเบเบฑเปเบเบเปเบฒเบขเปเบฒเบเบเบทเบเบเปเบญเบ. เบฎเบนเบเปเบเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบกเบฑเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเบตเบซเบผเบฒเบเปเบเบเปเบฒเบเบงเบ thread เบชเบนเบเบซเบผเบฒเบเปเบฅเบฐ throughput.
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเปเบฒเบงเบกเบฒเบชเบฑเปเบเปเปเบ Twitter, เบเบฒเบเบญเบญเบเปเบเบเบเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบเปเบเบทเบญเบเปเบฒเบเบฎเบนเบเปเบเบเบเบนเปเปเบเปเปเบเบเปเบเบฑเบกเบฎเบนเบเปเบเบเปเบเบฑเปเบ DPDK (Data Plane Development Kit), เปเบเบดเปเบเบชเบฒเบกเบฒเบเบชเบปเปเบเบเบปเบเปเบซเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเบเบเบฑเปเบเปเบเบตเบกเบเบฑเบเบเบฒเบเบซเบผเบฒเบเบฅเปเบฒเบเบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบตเบเปเบงเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเปเบเบฑเบก L7. เบกเบฑเบเบเบฐเปเบเบฑเบเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบซเบฑเบเบชเบดเปเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบชเบญเบเบชเบฒเบกเบเบตเบเปเบฒเบเบซเบเปเบฒ.
เบเปเบฒเปเบซเบฑเบเบชเบฑเปเบเปเบเบฑเปเบเบชเบธเบเบเปเบฒเบ: เบเปเบญเบเบเบทเบเบเบฒเบกเบซเบผเบฒเบเบเบฑเปเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบ C ++ เบชเปเบฒเบฅเบฑเบ Envoy. เปเบซเบเบเบปเบเบเบฑเบเบเบปเบเบขเบนเปเบงเปเบฒเบกเบฑเบเบเบฑเบเปเบเบฑเบเบเบฝเบเปเบเปเบเบฒเบชเบฒเบเบฑเปเบเบฎเบฝเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเบเบตเปเปเบเปเบเบฑเบเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบเบดเปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเบเปเปเบเบงเบฒเบกเบเบตเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเป. 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
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com