Framework je implementácia konceptov Erlang pre vývoj v Go, postavená na modeli hercov so sieťovou priepustnosťou a hotovými komponentmi.
Hlavné funkcie v tejto verzii
- mTLS — nový interface gen.CertAuthManager pre vzájomnú autentifikáciu s riadením CA poolov
- NAT traversal — možnosti RouteHost a RoutePort pre uzly za NAT alebo vyvažovačmi záťaže
- Kontrola času spustenia — InitTimeout obmedzuje čas inicializácie procesov (lokálne a vzdialene)
- Časový limit na vypnutie — kontrolované ukončenie uzla so zaznamenávaním visiacich procesov
- pprof štítky — každá gorutina herca je označená PID pre ladenie cez pprof
Noví herci (Extra Library)
- Vodca — distribuované voľby vodcu s konsenzom v štýle Raft. Automatický failover, ochrana pred split-brain prostredníctvom kvorumu väčšiny
- Metrics — exportér metrík Prometheus s automatickým zberom telemetrie uzla a siete
Nové meta-procesy
- SSE (Server-Sent Events) — jednosmerný streaming server-klient cez HTTP s plnou podporou špecifikácie SSE
Výkon
- Locálne: 21M+ správ/s
- Po sieti: ~5M správ/s
- Distribuované Pub/Sub: 2.9M správ/s doručenie 1 000 000 odberateľom na 10 uzloch (10 sieťových správ namiesto 1M)
Opravy
- Kritická chyba: signály ukončenia (Link/Monitor exits) sa nesprávne zamietali kvôli nesprávnej validácii incarnácie na sieťovej vrstve
Dokumentácia
Úplne prepísané a zahrnuté v repozitári. Nové články:
- Štruktúra projektu — organizácia projektov s úrovňami izolácie správ
- Stavanie klastra — krok za krokom sprievodca distribuovanými systémami
- Verzionovanie správ — evolúcia zmlúv správ v klastroch
- Ladenie — build tags, pprof, ladenie visiacich procesov
Odkazy
- Príklady: https://github.com/ergo-services/examples
- Benchmarky: https://github.com/ergo-services/benchmarks
- Repozitár: https://github.com/ergo-services/ergo
- Webová stránka: https://ergo.services
Zdroj: linux.org.ru
