Das Framework ist eine Implementierung der Erlang-Konzepte fĂŒr die Entwicklung in Go, basierend auf dem Actor-Modell mit Netzwerktransparenz und vertikalen Komponenten.
Hauptfunktionen in dieser Version
- mTLS â neue gen.CertAuthManager-Schnittstelle fĂŒr die gegenseitige Authentifizierung mit CA-Pool-Management
- NAT-Durchquerung â Optionen RouteHost und RoutePort fĂŒr Knoten hinter NAT oder Load Balancern
- Startzeitkontrolle â InitTimeout begrenzt die Initialisierungszeit von Prozessen (lokal und remote)
- Shutdown-ZeitĂŒberschreitung â kontrolliertes Herunterfahren des Knotens mit Protokollierung von festhĂ€ngenden Prozessen
- pprof-Labels â jede Actor-Goroutine wird mit PID zum Debuggen ĂŒber pprof markiert
Neue Actoren (Extra-Bibliothek)
- Leader â verteilte Wahlen mit Konsens nach Raft-Stil. Automatischer Failover, Schutz vor Split-Brain durch ein Mehrheitsquorum.
- Metriken â Prometheus-Metrik-Exporter mit automatischer Sammlung von Knoten- und Netzwerktelemetrie.
Neue Metaprozesse
- SSE (Server-Sent Events) â unidirektionales Streaming vom Server zum Client ĂŒber HTTP mit vollstĂ€ndiger UnterstĂŒtzung der SSE-Spezifikation.
Leistung
- Lokal: 21M+ Nachrichten/Sekunde
- Ăber Netzwerk: ~5M Nachrichten/Sekunde
- Verteiltes Pub/Sub: 2.9M Nachrichten/Sekunde Lieferung an 1.000.000 Abonnenten auf 10 Knoten (10 Netzwerk-Nachrichten anstelle von 1M)
Fehlerbehebungen
- Kritischer Fehler: Abschluss-Signale (Link/Monitor beendet) wurden aufgrund ungĂŒltiger Validierung der Incarnation im Netzwerkstatus fehlerhaft abgelehnt.
Dokumentation
Komplett neu geschrieben und im Repository aufgenommen. Neue Artikel:
- Projektstruktur â Organisation von Projekten mit Ebenen der Nachrichtenisolation.
- Cluster erstellen â Schritt-fĂŒr-Schritt-Anleitung zu verteilten Systemen.
- Nachrichtenversionierung â Evolution der NachrichtenvertrĂ€ge in Clustern.
- Debugging â Build-Tags, Pprof, Debuggen von hĂ€ngenden Prozessen.
Links
- Beispiele: https://github.com/ergo-services/examples
- Benchmarks: https://github.com/ergo-services/benchmarks
- Repository: https://github.com/ergo-services/ergo
- Website: https://ergo.services
Quelle: linux.org.ru
