El marco es una implementación de los conceptos de Erlang para el desarrollo en Go, construido sobre el modelo de actores con transparencia de red y componentes listos para usar.
Características principales en esta versión
- mTLS — nueva interfaz gen.CertAuthManager para autenticación mutua con gestión de grupos CA
- traversal NAT — opciones RouteHost y RoutePort para nodos detrás de NAT o balanceadores de carga
- Control del tiempo de inicio — InitTimeout limita el tiempo de inicialización de procesos (localmente y de forma remota)
- Tiempo de apagado — cierre controlado de nodos con registro de procesos colgados
- etiquetas pprof — cada goroutine de actor se etiqueta con PID para depuración a través de pprof
Nuevos actores (Extra Library)
- Líder — elecciones distribuidas de líder con consenso estilo Raft. Failover automático, protección contra split-brain a través de quorum mayoritario
- Métricas — exportador de métricas Prometheus con recopilación automática de telemetría de nodos y red
Nuevos meta-procesos
- SSE (Server-Sent Events) — transmisión unidireccional servidor-cliente por HTTP con soporte completo para la especificación SSE
Rendimiento
- Localmente: 21M+ mensajes/segundo
- A través de la red: ~5M mensajes/segundo
- Pub/Sub Distribuido: 2.9M mensajes/segundo entrega a 1,000,000 suscriptores en 10 nodos (10 mensajes de red en lugar de 1M)
Correcciones
- Error crítico: señales de finalización (Link/Monitor exits) se rechazaban incorrectamente debido a una validación errónea de la aparición en la capa de red
La documentación
Totalmente reescrito e incluido en el repositorio. Nuevos artículos:
- Estructura del Proyecto — organización de proyectos con niveles de aislamiento de mensajes
- Construyendo un Clúster — guía paso a paso para sistemas distribuidos
- Versionado de Mensajes — evolución de contratos de mensajes en clústeres
- Depuración — etiquetas de compilación, pprof, depuración de procesos colgados
Enlaces
- Ejemplos: https://github.com/ergo-services/examples
- Benchmarks: https://github.com/ergo-services/benchmarks
- Repositorio: https://github.com/ergo-services/ergo
- Sitio web: https://ergo.services
Fuente: linux.org.ru
