Framework je implementace konceptů Erlang pro vývoj v Go, postavená na modelu aktorů s síťovou transparentností a připravenými komponenty.
Hlavní funkce v této verzi
- mTLS — nové rozhraní gen.CertAuthManager pro vzájemnou autentizaci s managementem CA poolů
- NAT traversal — možnosti RouteHost a RoutePort pro uzly za NAT nebo vyvažovači zátěže
- Kontrola času startu — InitTimeout omezuje čas inicializace procesů (lokálně a vzdáleně)
- Časový limit vypnutí — kontrolované ukončení uzlu s logováním visících procesů
- pprof štítky — každá gorutina aktora je označena PID pro ladění přes pprof
Noví aktori (Extra Library)
- Leader — distribuované volby lídra s konsensem ve stylu Raft. Automatický failover, ochrana proti split-brain přes quorum většiny
- Metrics — exporter metrik Prometheus s automatickým sběrem telemetrie uzlu a sítě
Nové meta-procesy
- SSE (Server-Sent Events) — jednosměrný streaming server-klient po HTTP s plnou podporou specifikace SSE
Výkon
- Lokálně: 21M+ zpráv/s
- Po síti: ~5M zpráv/s
- Distribuované Pub/Sub: 2.9M zpráv/s doručení 1 000 000 odběratelům na 10 uzlech (10 síťových zpráv místo 1M)
Opravy
- Kritická chyba: signály ukončení (Link/Monitor exits) byly nesprávně odmítány kvůli nesprávné validaci incarnation v síťové vrstvě
Dokumentace
Úplně přepsáno a zahrnuto do repozitáře. Nové články:
- Project Structure — organizace projektů s úrovněmi izolace zpráv
- Building a Cluster — krok za krokem průvodce distribuovanými systémy
- Message Versioning — evoluce smluv zpráv v clusterech
- Debugging — build tags, pprof, ladění visících procesů
Odkazy
- Příklady: https://github.com/ergo-services/examples
- Benchmarky: https://github.com/ergo-services/benchmarks
- Repozitář: https://github.com/ergo-services/ergo
- Web: https://ergo.services
Zdroj: linux.org.ru
