Het framework is een implementatie van de concepten van Erlang voor ontwikkeling in Go, gebouwd op het actor-model met netwerkdoorzichtigheid en kant-en-klare componenten.
Belangrijkste functies in deze versie
- mTLS — nieuwe interface gen.CertAuthManager voor wederzijdse authenticatie met beheer van CA-pools
- NAT-doorvoer — opties RouteHost en RoutePort voor knooppunten achter NAT of load balancers
- Opstarttijdcontrole — InitTimeout beperkt de initiatietijd van processen (lokaal en op afstand)
- Afsluittimeout — gecontroleerde beëindiging van het knooppunt met logging van vastlopende processen
- pprof labels — elke actor-goroutine wordt gemarkeerd met PID voor debugging via pprof
Nieuwe acteurs (Extra Bibliotheek)
- Leider — gedistribueerde leiderschapsverkiezingen met consensus in Raft-stijl. Automatische failover, bescherming tegen split-brain via een meerderheid quorum
- Metrics — Prometheus metrics-exporteur met automatische verzameling van telemetrie van knooppunten en netwerk
Nieuwe meta-processen
- SSE (Server-Sent Events) — eenrichtings streaming server-client via HTTP met volledige ondersteuning van de SSE-specificatie
Prestaties
- Lokaal: 21M+ berichten/seconde
- Via netwerk: ~5M berichten/seconde
- Gedistribueerde Pub/Sub: 2.9M berichten/seconde levering aan 1.000.000 abonnees op 10 knooppunten (10 netwerkberichten in plaats van 1M)
Fixes
- Kritieke bug: beëindigingssignalen (Link/Monitor exits) werden onjuist afgewezen door foutieve validatie van incarnatie op het netwerklaag
Documentation
Volledig herschreven en opgenomen in het repository. Nieuwe artikelen:
- Projectstructuur — organisatie van projecten met niveaus van berichtisolatie
- Een cluster bouwen — stapsgewijze handleiding voor gedistribueerde systemen
- Versiebeheer van berichten — evolutie van berichtencontracten in clusters
- Debugging — build tags, pprof, debuggen van vastlopende processen
Links
- Voorbeelden: https://github.com/ergo-services/examples
- Benchmarks: https://github.com/ergo-services/benchmarks
- Repository: https://github.com/ergo-services/ergo
- Website: https://ergo.services
Bron: linux.org.ru
