Ce framework est une implémentation des concepts Erlang pour le développement Go, construit sur un modèle d'acteurs avec transparence réseau et composants prêts à l'emploi.
Principales caractéristiques de cette version
- mTLS — Nouvelle interface gen.CertAuthManager pour l'authentification mutuelle avec la gestion du pool d'autorités de certification
- Traversée NAT — Options RouteHost et RoutePort pour les nœuds situés derrière un NAT ou un équilibreur de charge
- contrôle du temps de lancement — InitTimeout limite le temps d'initialisation des processus (localement et à distance).
- Délai d'arrêt dépassé - Arrêt contrôlé des nœuds avec journalisation des processus bloqués
- étiquettes pprof — Chaque goroutine d'acteur est marquée par un PID pour le débogage via pprof
Nouveaux acteurs (Bibliothèque supplémentaire)
- Leader — Élections de leaders distribuées avec consensus de type Raft. Basculement automatique et protection contre le split-brain grâce à un quorum majoritaire.
- Métrique — Exportateur de métriques Prometheus avec collecte automatique des données de télémétrie des nœuds et du réseau
Nouveaux métaprocessus
- SSE (Server-Sent Events) est un flux unidirectionnel serveur-client sur HTTP avec prise en charge complète de la spécification SSE.
Performance
- Localement: Plus de 21 millions de messages par seconde
- Sur le réseau : ~5 millions de messages/seconde
- Publication/abonnement distribué : 2.9 millions de messages/seconde livraison à 1 000 000 abonnés sur 10 nœuds (10 messages réseau au lieu de 1 million)
Les corrections
- Bug critique : les sorties Link/Monitor étaient rejetées par erreur en raison d’une validation d’incarnation incorrecte au niveau de la couche réseau.
Documentation
Entièrement réécrit et intégré au dépôt. Nouveaux articles :
- Structure du projet — organisation des projets avec différents niveaux d'isolation des messages
- Création d'un cluster - Guide étape par étape des systèmes distribués
- Gestion des versions des messages — l'évolution des contrats de messages dans les clusters
- Débogage — balises de compilation, pprof, débogage des processus figés
références
- Exemples: https://github.com/ergo-services/examples
- Points de repère : https://github.com/ergo-services/benchmarks
- Dépôt: https://github.com/ergo-services/ergo
- Site Web: https://ergo.services
Source: linux.org.ru
