Rāmis ir Erlang koncepciju realizācija Go izstrādei, balstīts uz aktoru modeli ar tīkla caurspīdīgumu un gataviem komponentiem.
Galvenās iespējas šajā versijā
- mTLS — jauns interfeiss gen.CertAuthManager savstarpējai autentifikācijai ar CA pūlu pārvaldību
- NAT caurlaide — RouteHost un RoutePort opcijas mezgliem aiz NAT vai slodzes balansētājiem
- Palaides laika kontrole — InitTimeout ierobežo procesu inicializēšanas laiku (lokāli un attālināti)
- Izslēgšanas laiks — kontrolēta mezgla slēgšana ar bloķētu procesu žurnālu
- pprof etiķetes — katra aktora gorutīna tiek marķēta ar PID pprof atkļūdošanai
Jauni aktori (Papildu bibliotēka)
- Līderis — sadalītās līdera vēlēšanas ar Raft stila konsensu. Automātiska failover, aizsardzība pret split-brain, izmantojot vairākuma kvotu
- un slodzes aģenta — metrikas eksporta rīks Prometheus ar automātisku mezgla un tīkla telemetrijas apkopošanu
Jauni meta-procesi
- SSE (Server-Sent Events) — vienvirziena straumēšana serveris-klients pa HTTP ar pilnu SSE specifikācijas atbalstu
Veiktspēja
- Lokāli: 21M+ ziņojumi/s
- Pāri tīklam: ~5M ziņojumi/s
- Distribūtais Pub/Sub: 2.9M ziņojumi/s piegāde 1,000,000 abonentiem 10 mezglos (10 tīkla ziņojumi vietā 1M)
Kļūdu labojumi
- Kritiska kļūda: izbeigšanas signāli (Link/Monitor exits) tika nepareizi noraidīti nepareizas incarnācijas validācijas dēļ tīkla slānī
Dokumentācija
Pilnībā pārstrādāta un iekļauta krātuvē. Jauni raksti:
- Projektu struktūra — projektu organizācija ar ziņojumu izolācijas līmeņiem
- Klonēšanas veidošana — soli pa solim ceļvedis sadalītajām sistēmām
- Ziņojumu versiju pārvaldība — ziņojumu līgumu attīstība klasteros
- Atkļūdošana — build tags, pprof, iesaldētu procesu atkļūdošana
Saites
- Piemēri: https://github.com/ergo-services/examples
- Apmēri: https://github.com/ergo-services/benchmarks
- Repozitorijs: https://github.com/ergo-services/ergo
- Mājaslapa: https://ergo.services
Avots: linux.org.ru
