Okvir predstavlja implementaciju Erlang koncepcija za razvoj u Go-u, baziran na modelu aktera sa mrežnom prozirnošću i spremnim komponentama.
Glavne karakteristike u ovoj verziji
- mTLS — novi interfejs gen.CertAuthManager za međusobnu autentifikaciju sa upravljanjem CA bazama
- NAT prolaz — opcije RouteHost i RoutePort za čvorove iza NAT-a ili balansirače
- Kontrola vremena pokretanja — InitTimeout ograničava vreme inicijalizacije procesa (lokalno i daljinski)
- Vreme isključivanja — kontrolisano isključivanje čvora uz logovanje zatečenih procesa
- pprof oznake — svaka gorutina aktera označena je PID-om za debagovanje putem pprof
Novi akteri (Dodatna biblioteka)
- Lider — distribuirani izbor lidera sa konsenzusom u Raft stilu. Automatska failover funkcija, zaštita od split-brain kroz kvorum većine
- Metrii — Prometheus izvoznik metrika sa automatskim prikupljanjem telemetrije čvora i mreže
Novi meta-procesi
- SSE (Server-Sent Events) — jednosmerni prenos server-klijent putem HTTP-a sa punom podrškom za SSE specifikaciju
Performansa
- Lokalno: 21M+ poruka/sek
- Putem mreže: ~5M poruka/sek
- Distribuirano Pub/Sub: 2.9M poruka/sek dostava 1.000.000 pretplatnicima na 10 čvorova (10 mrežnih poruka umesto 1M)
Popravki
- Kritična greška: signali završetka (Link/Monitor izlazi) su pogrešno odbijeni zbog netačne validacije incarnacije u mrežnom sloju
Dokumentacija
Potpuno prepisano i uključeno u repozitorij. Nove članke:
- Struktura projekta — organizacija projekata sa nivoima izolacije poruka
- Izgradnja klastera — korak po korak vodič za distribuirane sisteme
- Verzije poruka — evolucija ugovora o porukama u klasterima
- Debagovanje — build tagovi, pprof, debagovanje zatečenih procesa
Povezave
- Primeri: https://github.com/ergo-services/examples
- Benchmarkovi: https://github.com/ergo-services/benchmarks
- Shramba: https://github.com/ergo-services/ergo
- Web stranica: https://ergo.services
Izvor: linux.org.ru
