Ergo Framework 3.2

Das Framework stellt eine Implementierung der Erlang-Konzepte für die Entwicklung in Go dar, basierend auf dem Actor-Modell mit Netzwerktransparenz und fertigen Komponenten.

Hauptfunktionen in dieser Version

  • mTLS — neue Schnittstelle gen.CertAuthManager für gegenseitige Authentifizierung mit CA-Pool-Management
  • NAT-Überquerung — Optionen RouteHost und RoutePort für Knoten hinter NAT oder Lastenausgleichern
  • Kontrolle der Startzeit — InitTimeout begrenzt die Initialisierungszeit von Prozessen (lokal und remote)
  • Shutdown-Timeout — kontrolliertes Beenden des Knotens mit Protokollierung hängender Prozesse
  • pprof-Labels — jede Actor-Goroutine wird mit PID für das Debugging über pprof markiert

Neue Actoren (Extra-Bibliothek)

  • Anführer — verteilte Anführerwahlen mit Konsens im Raft-Stil. Automatischer Failover, Schutz vor Split-Brain durch Quorum der Mehrheit
  • und des Lastagenten — Prometheus-Metrik-Exporter mit automatischer Erfassung von Telemetriedaten des Knotens und des Netzwerks

Neue Meta-Prozesse

  • SSE (Server-Sent Events) — unidirektionales Streaming von Server zu Client über HTTP mit vollständiger Unterstützung der SSE-Spezifikation

Leistung

  • Lokal: 21M+ Nachrichten/Sek.
  • Über das Netzwerk: ~5M Nachrichten/Sek.
  • Verteiltes Pub/Sub: 2.9M Nachrichten/Sek. Zustellung an 1.000.000 Abonnenten auf 10 Knoten (10 Netzwerk-Nachrichten statt 1M)

Fehlerbehebungen

  • Kritischer Fehler: Abschluss-Signale (Link/Monitor-Exits) wurden falsch abgelehnt aufgrund fehlerhafter Validierung der Inkarnation im Netzwerk-Layer

Dokumentation

Vollständig neu geschrieben und im Repository enthalten. Neue Artikel:

  • Projektstruktur — Organisation von Projekten mit Isolationsstufen für Nachrichten
  • Einen Cluster aufbauen — Schritt-für-Schritt-Anleitung für verteilte Systeme
  • Nachrichtenversionierung — Evolution von Nachrichtenverträgen in Clustern
  • Debugging — Build-Tags, pprof, Debugging hängender Prozesse

Links

Quelle: linux.org.ru

60GB SSD 8Gb DDR4