Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ прСдставляСт собой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ 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

author avatar
Erik Peterson Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€
A ProHoster specialist with over seven years of experience in hosting, network infrastructure, and internet security. I participate in the development and maintenance of server solutions, VPN services, and client platforms. I specialize in stability, data protection, and service optimization for clients. I regularly monitor updates in industry standards and best practices.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ