Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

И Ρ‚Π°ΠΊΠ°, Π²ΠΈΠ΅ ΡΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ Π½ΠΈΠ΅. НиС ΡΡŠΡ‰ΠΎ ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΎΠ½Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° бизнСса. ДнСс Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π·Π²Π΅Π½ΠΎ Π² систСмата Π½ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° агрСгация, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ със statsd. bioyino, Π·Π°Ρ‰ΠΎ Π³ΠΎ написахмС ΠΈ Π·Π°Ρ‰ΠΎ сС ΠΎΡ‚ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ brubeck.

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

ΠžΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ Π½ΠΈ статии (1, 2) ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅, Ρ‡Π΅ Π΄ΠΎ извСстно Π²Ρ€Π΅ΠΌΠ΅ ΡΡŠΠ±ΠΈΡ€Π°Ρ…ΠΌΠ΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° brubeck. Π’ΠΎΠΉ Π΅ написан Π½Π° C. ΠžΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΊΠΎΠ΄Π° β€” прост ΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΏΡƒΡˆΠ°Π»ΠΊΠ° (Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искатС Π΄Π° допринасятС) ΠΈ, Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ, справя сС Π±Π΅Π· особСни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π½Π°ΡˆΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΌΠΈ ΠΎΡ‚ 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² сСкунда (MPS) Π² ΠΏΠΈΠΊΠ°. ДокумСнтацията посочва ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° MPS с примСс. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ обявСното число, Π°ΠΊΠΎ настроитС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π² Linux. (Колко MPS ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅, Π°ΠΊΠΎ оставитС ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅, Π½Π΅ Π΅ извСстно Π½Π° нас). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚Π΅Π·ΠΈ прСдимства, ΠΈΠΌΠ°Ρ…ΠΌΠ΅ няколко сСриозни оплаквания към brubeck.

ОплакванС 1. Github β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” спря Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°: ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΈ (Π½Π΅ само Π½Π°ΡˆΠΈΡ‚Π΅) PR. Π’ послСднитС мСсСци (някъдС ΠΎΡ‚ Ρ„Π΅Π²Ρ€ΡƒΠ°Ρ€ΠΈ-ΠΌΠ°Ρ€Ρ‚ 2018) активността сС възобнови, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° имашС ΠΏΠΎΡ‡Ρ‚ΠΈ 2 Π³ΠΎΠ΄ΠΈΠ½ΠΈ пълно Π·Π°Ρ‚ΠΈΡˆΠΈΠ΅. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π·Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Π½ΡƒΠΆΠ΄ΠΈ Π½Π° Github, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° станС сСриозна ΠΏΡ€Π΅Ρ‡ΠΊΠ° Π·Π° внСдряванСто Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ОплакванС 2. Вочността Π½Π° изчислСнията. Brubeck ΡΡŠΠ±ΠΈΡ€Π° Π·Π° агрСгация само 65536 стойности. Π’ нашия случай Π·Π° някои ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π½Π° агрСгация (30 сСк) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ΄Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ стойности (1 527 392 Π² ΠΏΠΈΠΊΠ°). Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚Π°ΠΊΠΎΠ²Π° сСмплиранС, стойноститС Π½Π° максимумитС ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΈΡ‚Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ. НапримСр, Ρ‚Π°ΠΊΠ°:

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ
Как бСшС

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ
Как Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° бъдС

По ΡΡŠΡ‰Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° сумитС ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ сС считат Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ. Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ към Ρ‚ΠΎΠ²Π° бъг с ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° 32-Π±ΠΈΡ‚Π΅Π½ float, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π°Ρ‰Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π² segfault ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π½Π° Π²ΠΈΠ΄ Π½Π΅Π²ΠΈΠ½Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, ΠΈ става ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Π‘ΡŠΠ³ΡŠΡ‚, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½.

И накрая, ОплакванС X. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° написванСто Π½Π° статията смС Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° прСдставим Π½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π²ΠΈ всичкитС 14 ΠΏΠΎ-ΠΈΠ»ΠΈ-ΠΌΠ΅Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° statsd, ΠΊΠΎΠΈΡ‚ΠΎ успяхмС Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ. НСка Π΄Π° си прСдставим, Ρ‡Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½Π° инфраструктура Π΅ нараснала Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°, Ρ‡Π΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° 4 ΠΌΠ»Π½ MPS Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ. Или Π΄Π° Π½Π΅ Π΅ нараснала, Π½ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ Π·Π° вас са Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ½ΠΈ, Ρ‡Π΅ Π΄ΠΎΡ€ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈ, 2-3 ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΈ ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° станат ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚ ΠΏΡ€ΠΈΡΡ‚ΡŠΠΏΠΈ Π½Π° нСустоима дСпрСсия Ρƒ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈΡ‚Π΅. Въй ΠΊΠ°Ρ‚ΠΎ Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дСпрСсията Π΅ Π½Π΅Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎ Π΄Π΅Π»ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π΅ тСхничСска интСрвСнция.

На ΠΏΡŠΡ€Π²ΠΎ място, отказоустойчивост, Π·Π° Π΄Π° Π½Π΅ създадС Π²Π½Π΅Π·Π°ΠΏΠ΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° психиатричСн Π·ΠΎΠΌΠ±ΠΈ апокалипсис Π² офиса. На Π²Ρ‚ΠΎΡ€ΠΎ място, скалируСмост, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 4 ΠΌΠ»Π½ MPS, Π±Π΅Π· Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ дълбоко Π² мрСТовия стСк Π½Π° Linux ΠΈ спокойно Π΄Π° растСм 'Π²ΡˆΠΈΡ€' Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ.

Въй ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° скалируСмостта ΠΈΠΌΠ°ΠΌΠ΅ запас, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с отказоустойчивостта. 'О! ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚! Π’ΠΎΠ²Π° Π΅ лСсно, Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ', помислихмС ΠΈ стартирахмС 2 ΡΡŠΡ€Π²ΡŠΡ€Π°, създавайки Π½Π° всСки ΠΊΠΎΠΏΠΈΠ΅ Π½Π° brubeck. Π—Π° Ρ†Π΅Π»Ρ‚Π° Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° с ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ Π½Π° Π΄Π²Π°Ρ‚Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ Π΄ΠΎΡ€ΠΈ Π΄Π° напишСм Π·Π° Ρ‚ΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°. Π Π°Π·Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с отказоустойчивостта, Π½ΠΎ... Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ всичко изглСТдашС страхотно: всСки brubeck ΡΡŠΠ±ΠΈΡ€Π° своя Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° агрСгация, записва Π΄Π°Π½Π½ΠΈ Π² Graphite Π½Π° всСки 30 сСкунди, прСзаписвайки стария ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» (Ρ‚ΠΎΠ²Π° става Π½Π° страната Π½Π° Graphite). Ако случайно Π΅Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ сС ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ, Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Π²Ρ‚ΠΎΡ€ΠΈ с собствСно ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Но Π΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚: Π°ΠΊΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ сС ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ, Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ сС появява 'зъб'. Π’ΠΎΠ²Π° сС дълТи Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ 30-сСкунднитС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΏΡ€ΠΈ brubeck Π½Π΅ са синхронизирани, ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π° ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ тях Π½Π΅ сС прСзаписва. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° стартиранС Π½Π° втория ΡΡŠΡ€Π²ΡŠΡ€ става ΡΡŠΡ‰ΠΎΡ‚ΠΎ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС ΠΏΡ€ΠΈΠ΅ΠΌΠ΅, Π½ΠΎ искамС ΠΏΠΎΠ²Π΅Ρ‡Π΅! ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ със скалируСмостта ΡΡŠΡ‰ΠΎ Π½Π΅ Π΅ ΠΈΠ·Ρ‡Π΅Π·Π½Π°Π». Всички ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ всС ΠΎΡ‰Π΅ 'лСтят' Π½Π° Π΅Π΄ΠΈΠ½ СдинствСн ΡΡŠΡ€Π²ΡŠΡ€, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ смС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ‚Π΅ 2-4 ΠΌΠ»Π½ MPS Π² зависимост ΠΎΡ‚ наличноститС Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.

Ако помислим ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΊΠΎΠΏΠ°Π΅ΠΌ снСга с Π»ΠΎΠΏΠ°Ρ‚Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΠΈ Ρ…Ρ€ΡƒΠΌΠ½Π΅ Π΅Π΄Π½Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π° идСя: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΠΈ Π΅ statsd, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ. ВоСст, Ρ‚Π°ΠΊΡŠΠ², Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° синхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. β€žΠ Π°Π·Π±ΠΈΡ€Π° сС, Ρ‚Π°ΠΊΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ сигурно Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°β€œ, ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° гуглим… И Π½ΠΈΡ‰ΠΎ Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ…ΠΌΠ΅. ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ докумСнтацията Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ statsd (https://github.com/etsy/statsd/wiki#server-implementations към 11.12.2017), Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ…ΠΌΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΈΡ‰ΠΎ. Π―Π²Π½ΠΎ Π½ΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π½ΠΈΡ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ са сС сблъсквали с Π’ΠΠšΠžΠ’Πž количСство ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΈΠ½Π°Ρ‡Π΅ сигурно Π±ΠΈΡ…Π° измислили Π½Π΅Ρ‰ΠΎ.

И Ρ‚ΡƒΠΊ си ΠΏΡ€ΠΈΠΏΠΎΠΌΠ½ΠΈΡ…ΠΌΠ΅ Π·Π° β€žΠΈΠ³Ρ€Π°Ρ‡ΠΊΠ°Ρ‚Π°β€œ statsd β€” bioyino, която написахмС Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° просто Π·Π° Π·Π°Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚ скрипт ΠΏΡ€Π΅Π΄ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°) ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ спСшно Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ собствСн statsd. Π—Π°Ρ‰ΠΎ?

  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π² свСта ΠΈΠΌΠ° ΠΏΡ€Π΅ΠΊΠ°Π»Π΅Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° statsd,
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° осигурим ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° ΠΈΠ»ΠΈ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° отказоустойчивост ΠΈ мащабируСмост (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° синхронизирамС Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ ΠΈ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅),
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ brubeck,
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ сами Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° статистика, която brubeck практичСски Π½Π΅ Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΡˆΠ΅,
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ шанс Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ своС собствСно хайпСрформанс дистрибутирано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ няма Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ напълно Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π° хайпСрформанс...

На ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° пишСм? Π Π°Π·Π±ΠΈΡ€Π° сС, Π½Π° Rust. Π—Π°Ρ‰ΠΎ?

  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π²Π΅Ρ‡Π΅ имашС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ,
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° статията ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π²Π΅Ρ‡Π΅ знаСшС Rust ΠΈ искашС Π΄Π° напишС Π½Π΅Ρ‰ΠΎ с Π½Π΅Π³ΠΎ Π·Π° продукция с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° Π³ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π² open-source,
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅Π·ΠΈΡ†ΠΈ с GC Π½Π΅ Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π°Ρ‚ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°Ρ‚Π° Π½Π° получавания Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (практичСски Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅) ΠΈ ΠΏΠ°ΡƒΠ·ΠΈΡ‚Π΅ Π½Π° GC са практичСски нСдопустими,
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° максимална производитСлност, сравнима с C
  • Π·Π°Ρ‰ΠΎΡ‚ΠΎ Rust Π½ΠΈ прСдоставя Π±Π΅Π·ΡΡ‚Ρ€Π°ΡˆΠ½Π° конкурСнтност, Π° Π°ΠΊΠΎ бяхмС Π·Π°ΠΏΠΎΡ‡Π½Π°Π»ΠΈ Π΄Π° пишСм Ρ‚ΠΎΠ²Π° Π½Π° C/C++, щяхмС Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ уязвимости, ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½ΠΈΡ Π½Π° Π±ΡƒΡ„Π΅Ρ€ΠΈ, race conditions ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΈ Π΄ΡƒΠΌΠΈ.

ИмашС ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Rust. ΠšΠΎΠΌΠΏΠ°Π½ΠΈΡΡ‚Π° нямашС ΠΎΠΏΠΈΡ‚ Π² ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Rust ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² основния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π—Π°Ρ‚ΠΎΠ²Π° имашС сСриозни опасСния, Ρ‡Π΅ Π½ΠΈΡ‰ΠΎ няма Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ, Π½ΠΎ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° рискувамС ΠΈ Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅.

МинавашС Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ...

Накрая, слСд няколко Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ ΠΎΠΏΠΈΡ‚Π°, ΠΏΡŠΡ€Π²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° вСрсия бСшС Π³ΠΎΡ‚ΠΎΠ²Π°. Какво постигнахмС? ΠŸΠΎΠ»ΡƒΡ‡ΠΈ сС Π΅Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π°.

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

Всяка Π½ΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° своя собствСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Π³ΠΈ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π° ΠΏΡ€ΠΈ сСбС си, ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅Π·ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π·Π° Ρ„ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° агрСгация Ρ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ пълСн Π½Π°Π±ΠΎΡ€. НодитС са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си Ρ‡Ρ€Π΅Π· някакъв ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ (distributed lock), ΠΊΠΎΠΉΡ‚ΠΎ позволява Π΄Π° сС ΠΈΠ·Π±Π΅Ρ€Π΅ срСд тях ΠΎΠ½Π°Π·ΠΈ СдинствСна (Ρ‚ΡƒΠΊ ΠΏΠ»Π°Ρ‡Π΅Ρ…ΠΌΠ΅), която Π΅ достойна Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π° ВСликия. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сС Ρ€Π΅ΡˆΠ°Π²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Consul, Π½ΠΎ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Π°ΠΌΠ±ΠΈΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Π°Π²Ρ‚ΠΎΡ€Π° стигат Π΄ΠΎ собствСн рСализацията Raft, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΎΠ½Π°Π·ΠΈ достойна, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Ρ‰Π΅ бъдС Π½ΠΎΠ΄Π°-Π»ΠΈΠ΄Π΅Ρ€ Π½Π° консСнсуса. ОсвСн консСнсуса, Π½ΠΎΠ΄ΠΈΡ‚Π΅ доста чСсто (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ вСднъТ Π² сСкунда) ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π½Π° своитС съсСди Ρ‚Π΅Π·ΠΈ части ΠΎΡ‚ ΠΏΡ€Π΅Π΄Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ успяват Π΄Π° Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Ρ‚ Π·Π° Ρ‚Π°Π·ΠΈ сСкунда. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π° сС, Ρ‡Π΅ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ отказоустойчивостта сС Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚ β€” всяка ΠΎΡ‚ Π½ΠΎΠ΄ΠΈΡ‚Π΅ всС ΠΎΡ‰Π΅ Π΄ΡŠΡ€ΠΆΠΈ пълния Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Π½ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π²Π΅Ρ‡Π΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½ΠΈ, ΠΏΠΎ TCP ΠΈ с ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π² Π±ΠΈΠ½Π°Ρ€Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½Π΅ Π² сравнСниС с UDP Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намаляват. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ доста голямото количСство входящи ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Π½Π΅Ρ‚ΠΎ изисква съвсСм ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ ΠΎΡ‰Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ CPU. Π—Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π΄ΠΎΠ±Ρ€Π΅ компрСсируСми ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Ρ‚ΠΎΠ²Π° са само няколко дСсСтки ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π° Π΄Π°Π½Π½ΠΈ. Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ бонус Π΅ ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° излишни прСзаписи Π½Π° Π΄Π°Π½Π½ΠΈ Π² Graphite, ΠΊΠ°ΠΊΡ‚ΠΎ бСшС Π² случая с burbeck.

UDP ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ с ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ са Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· прост Round Robin. Π‘Π°ΠΌΠΎ ΠΏΠΎ сСбС си, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅ Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΈ Π·Π°Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 4M ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² сСкунда, Π΄Π° Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Π·Π½Π°Π΅. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ ΠΈΠ΄Π²Π°Ρ‚ Π½Π΅ ΠΏΠΎ Π΅Π΄Π½Π° Π·Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚, Π½Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с производитСлността Π½Π° Ρ‚ΠΎΠ²Π° място. Π’ случай Π½Π° срив Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ устройството Π±ΡŠΡ€Π·ΠΎ (Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° 1-2 сСкунди) ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΊΡ‚ ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° сриващия сС ΡΡŠΡ€Π²ΡŠΡ€ ΠΎΡ‚ ротацията. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° пасивнитС (Ρ‚.Π΅. Π½Π΅ лидСрски) възли ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈ ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈ практичСски Π±Π΅Π· Π΄Π° сС забСлязват спадовС Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³ΡƒΠ±ΠΈΠΌ, Π΅ част ΠΎΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅, ΠΏΠΎΡΡ‚ΡŠΠΏΠΈΠ»ΠΈ Π·Π° послСдната сСкунда. Π˜Π·Π½Π΅Π½Π°Π΄Π²Π°Ρ‰Π° Π·Π°Π³ΡƒΠ±Π°/ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅/ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Π»ΠΈΠ΄Π΅Ρ€Π° всС ΠΏΠ°ΠΊ Ρ‰Π΅ нарисува Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° аномалия (30-сСкундСн ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» всС ΠΎΡ‰Π΅ Π΅ Π΄Π΅Π·ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€Π°Π½), Π½ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΡΠ²Ρ€ΡŠΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΈ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ€Π΅Π· Ρ€Π°Π·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° синхронизиращи ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

Няколко Π΄ΡƒΠΌΠΈ Π·Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ устройство. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ, Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΈΡ‚Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ Ρ‚Π°Π·ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² brubeck. ΠŸΠΎΡ‚ΠΎΠΊΠΈΡ‚Π΅ Π² brubeck са Π΅Π΄Π½Π°ΠΊΠ²ΠΈ - всСки ΠΎΡ‚ тях отговаря Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° информация, ΠΈ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅. Π’ bioyino Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ (workers) са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΈ: ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅. Π’Π°ΠΊΠΎΠ²Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ позволява ΠΏΠΎ-гъвкаво ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² зависимост ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: Ρ‚Π°ΠΌ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС добавят Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΈ, Ρ‚Π°ΠΌ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ² Ρ‚Ρ€Π°Ρ„ΠΈΠΊ - Π΄Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ броят Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с 8 ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΈ 4 Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Ρ‰ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Частта, отговаряща Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ скучна. Π—Π°ΠΏΡŠΠ»Π½Π΅Π½ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ сС разпрСдСлят ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΠΎ-късно сС парсват ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈΡ€Π°Ρ‚. По Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ сС прСдоставят Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ възли. Всичко Ρ‚ΠΎΠ²Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Consul, сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° асинхронно, Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° tokio.

Много ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ создадС ΠΌΡ€Π΅ΠΆΠ½Π°Ρ‚Π° част, ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π½Π° раздСлянСто Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ бСшС ΡΡ‚Ρ€Π΅ΠΌΠ΅ΠΆΡŠΡ‚ Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡŠΡ‚ Ρ…Π°Ρ€Ρ‡ΠΈ Π½Π΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ сокСта. ΠžΠΏΡ†ΠΈΠΈΡ‚Π΅ с асинхронСн UDP ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ recvmsg Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ΠΏΠ°Π΄Π½Π°Ρ…Π°: ΠΏΡŠΡ€Π²ΠΈΡΡ‚ изяТда Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ CPU Π² user-space Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, вторият - Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ контСкстни ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡ. Π—Π°Ρ‚ΠΎΠ²Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° recvmmsg с Π³ΠΎΠ»Π΅ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ (Π° Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅, господа ΠΎΡ„ΠΈΡ†Π΅Ρ€ΠΈ, Π½Π΅ са Π½Π΅Ρ‰ΠΎ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ!). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° стандартСн UDP Π΅ оставСна Π·Π° Π½Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ recvmmsg Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. Π’ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° мноТСство ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ сС постига основното: ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π²Π°Ρ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ мрСТовият ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π½Π° ОБ - ΠΈΠ·Π²Π»ΠΈΡ‡Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ сокСта ΠΈ Π³ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π² user-space Π±ΡƒΡ„Π΅Ρ€Π°, само ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΉΠΊΠΈ, Π·Π° Π΄Π° ΠΏΡ€Π΅Π΄Π°Π΄Π΅ запълнСния Π±ΡƒΡ„Π΅Ρ€ Π½Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅. ΠžΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π² сокСта практичСски Π½Π΅ нараства, количСството Π½Π° ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°.

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°

Π’ настройкитС ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ голям. Ако Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° тСст, възмоТно Π΅ Π΄Π° сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ‚Π΅ с Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ слСд ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΎ количСство ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Ρ‚Π΅ няма Π΄Π° достигнат Π³Ρ€Π°Ρ„ΠΈΡ‚, оставяйки сС Π² Π±ΡƒΡ„Π΅Ρ€Π° Π½Π° мрСТовия ΠΏΠΎΡ‚ΠΎΠΊ. Π—Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ°Π»ΠΊΠΎ количСство ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ трябва Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Π² конфигурацията bufsize ΠΈ task-queue-size ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ стойности.

Накрая - ΠΌΠ°Π»ΠΊΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π·Π° Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Бтатистика Π·Π° броя Π½Π° входящитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π·Π° всСки ΡΡŠΡ€Π²ΡŠΡ€: Π½Π°Π΄ 2 ΠΌΠ»Π½ MPS.

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Π΅Π΄Π½Π° ΠΎΡ‚ Π½ΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ прСнасочванС Π½Π° входящитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

Бтатистика Π·Π° изходящитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: Π²ΠΈΠ½Π°Π³ΠΈ само Π΅Π΄Π½Π° Π½ΠΎΠ΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° - рСйдбос.

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

Бтатистика Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° всяка Π½ΠΎΠ΄Π° с ΠΎΠ³Π»Π΅Π΄ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° систСмата.

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

ДСтализация Π½Π° входящитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ (ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ са скрити).

Bioyino β€” Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, скалируСм Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

Какво ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ с всичко Ρ‚ΠΎΠ²Π° ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ? Π Π°Π·Π±ΠΈΡ€Π° сС, Π΄Π° пишСм ΠΊΠΎΠ΄, бл…! ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ бСшС ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ open-source ΠΈ Ρ‰Π΅ останС Ρ‚Π°ΠΊΡŠΠ² ΠΏΡ€Π΅Π· цСлия си ΠΆΠΈΠ²ΠΎΡ‚. Π’ Π±Π»ΠΈΠ·ΠΊΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ - ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° собствСна вСрсия Π½Π° Raft, смяна Π½Π° peer ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° ΠΏΠΎ-прСносим, добавянС Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π° статистика, Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ подобрСния.

Π Π°Π·Π±ΠΈΡ€Π° сС, привСтствамС всички ΠΆΠ΅Π»Π°Π΅Ρ‰ΠΈ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: ΡΡŠΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ PR, Issues, ΠΏΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Ρ‰Π΅ отговарямС, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ ΠΈ Ρ‚. Π½.

Π‘ Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΊΠ°Π·Π²Π°, that’s all folks, ΠΊΡƒΠΏΡƒΠ²Π°ΠΉΡ‚Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ слоновС!

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ


Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com
ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster