Ergo Framework 3.2

good-penguin.png

Фреймворк представляет собой реализацию концепций Erlang для разработки на Go, построенный на модели акторов с сетевой прозрачностью и готовыми компонентами.

Основные возможности в этой версии

  • mTLS — новый интерфейс gen.CertAuthManager для взаимной аутентификации с управлением CA пулами
  • NAT traversal — опции RouteHost и RoutePort для узлов за NAT или балансировщиками
  • Контроль времени запуска — InitTimeout ограничивает время инициализации процессов (локально и удаленно)
  • Shutdown timeout — контролируемое завершение узла с логированием зависших процессов
  • pprof labels — каждая горутина актора маркируется PID для отладки через pprof

Новые акторы (Extra Library)

  • Leader — распределенные выборы лидера с консенсусом в стиле Raft. Автоматический failover, защита от split-brain через кворум большинства
  • Metrics — экспортер метрик Prometheus с автоматическим сбором телеметрии узла и сети

Новые мета-процессы

  • SSE (Server-Sent Events) — однонаправленный стриминг сервер-клиент по HTTP с полной поддержкой спецификации SSE

Производительность

  • Локально: 21M+ сообщений/сек
  • По сети: ~5M сообщений/сек
  • Distributed Pub/Sub: 2.9M сообщений/сек доставка 1,000,000 подписчикам на 10 узлах (10 сетевых сообщений вместо 1M)

Исправления

  • Критический баг: сигналы завершения (Link/Monitor exits) некорректно отклонялись из-за неверной валидации incarnation в сетевом слое

Документация

Полностью переписана и включена в репозиторий. Новые статьи:

  • Project Structure — организация проектов с уровнями изоляции сообщений
  • Building a Cluster — пошаговое руководство по распределенным системам
  • Message Versioning — эволюция контрактов сообщений в кластерах
  • Debugging — build tags, pprof, отладка зависших процессов

Ссылки

>>> Список изменений

©  Linux.org.ru