Ramverket Àr en implementering av Erlangs koncept för utveckling i Go, byggt pÄ aktörsmodellen med nÀtverksgenomskinlighet och fÀrdiga komponenter.
Huvudfunktioner i denna version
- mTLS â nytt gen.CertAuthManager-grĂ€nssnitt för ömsesidig autentisering med hantering av CA-pooler
- NAT traversal â RouteHost och RoutePort-alternativ för noder bakom NAT eller lastbalanserare
- Starttidskontroll â InitTimeout begrĂ€nsar tidsgrĂ€nsen för processinitiering (lokalt och fjĂ€rrĂ„tkomst)
- NedstĂ€ngningstidsgrĂ€ns â kontrollerad avslutning av noden med loggning av hĂ€ngda processer
- pprof-etiketter â varje aktörs goroutine mĂ€rks med PID för felsökning via pprof
Nya aktörer (Extra Library)
- Leader â distribuerade ledarskapsval med Raft-liknande konsensus. Automatisk failover, skydd mot split-brain genom en majoritetskvorum
- Metrik â Prometheus-metrikexportör med automatisk insamling av telemetri för nod och nĂ€tverk
Nya meta-processer
- SSE (Server-Sent Events) â enstaka riktad streaming server-klient över HTTP med fullstĂ€ndig stöd för SSE-specifikationen
Performance
- Lokalt: 21M+ meddelanden/s
- Ăver nĂ€tverket: ~5M meddelanden/s
- Distributed Pub/Sub: 2.9M meddelanden/s leverans till 1,000,000 prenumeranter pÄ 10 noder (10 nÀtverksmeddelanden istÀllet för 1M)
Fixar
- Kritisk bugg: avslutningssignaler (Link/Monitor exits) avvisades felaktigt pÄ grund av felaktig validering av inkarnation pÄ nÀtverksnivÄ
Dokumentation
Helt omarbetad och inkluderad i förrÄdet. Nya artiklar:
- Project Structure â projektorganisation med nivĂ„er av meddelandaisolering
- Building a Cluster â en steg-för-steg guide till distribuerade system
- Message Versioning â evolution av meddelandekontrakt i kluster
- Debugging â build-tags, pprof, felsökning av hĂ€ngda processer
LĂ€nkar
- Exempel: https://github.com/ergo-services/examples
- Benchmarking: https://github.com/ergo-services/benchmarks
- Repository: https://github.com/ergo-services/ergo
- Webbplats: https://ergo.services
KĂ€lla: linux.org.ru
