Π“Ρ€Π°Π΄ΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния. Π’Ρ‚ΠΎΡ€ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅

Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅

КолСги, Π² срСдата Π½Π° лятото ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌ Π΄Π° пусна ΠΎΡ‰Π΅ Π΅Π΄Π½Π° сСрия ΠΎΡ‚ статии Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСми Π·Π° масово обслуТванС: β€žΠ•ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΡŠΡ‚ VTradeβ€œ - ΠΎΠΏΠΈΡ‚ Π΄Π° сС напишС Ρ€Π°ΠΌΠΊΠ° Π·Π° систСми Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ. ΠŸΠΎΡ€Π΅Π΄ΠΈΡ†Π°Ρ‚Π° Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π° тСорията ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° борса, Ρ‚ΡŠΡ€Π³ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½. Π’ края Π½Π° статията Π²ΠΈ каня Π΄Π° гласуватС Π·Π° Ρ‚Π΅ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ интСрСсуват Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ.

Π“Ρ€Π°Π΄ΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния. Π’Ρ‚ΠΎΡ€ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅

Π’ΠΎΠ²Π° Π΅ послСдната статия ΠΎΡ‚ ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π°Ρ‚Π° Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ прилоТСния Π² Erlang/Elixir. IN ΠΏΡŠΡ€Π²Π° статия ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ основи Π½Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π’Ρ‚ΠΎΡ€Π° статия ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π° основнитС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° конструиранС Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° систСми.

ДнСс Ρ‰Π΅ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π΅ΠΌ Π²ΡŠΠΏΡ€ΠΎΡΠΈ Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ цяло.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° услугитС

Π’ рСалния ΠΆΠΈΠ²ΠΎΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚Π΅ услуга, чСсто трябва Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ няколко ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° взаимодСйствиС Π² Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€. НапримСр потрСбитСлската услуга, която Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° потрСбитСлски ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, трябва Π΄Π° отговаря Π½Π° заявки req-resp ΠΈ Π΄Π° Π΄ΠΎΠΊΠ»Π°Π΄Π²Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· pub-sub. Π’ΠΎΠ·ΠΈ случай Π΅ доста прост: Π·Π°Π΄ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ изпълнява Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° услугата ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Битуацията става ΠΏΠΎ-слоТна, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΠΌ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° услуга, устойчива Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. НСка си прСдставим, Ρ‡Π΅ изискванията към ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ са сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ:

  1. сСга услугата трябва Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° заявки Π½Π° 5 ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π½ΠΈ възСла,
  2. Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° Ρ„ΠΎΠ½ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°,
  3. ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π΄Π° управляватС ΡΠΏΠΈΡΡŠΡ†ΠΈ с Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ.

ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€: НиС Π½Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π° послСдоватСлното ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ рСпликацията Π½Π° Π΄Π°Π½Π½ΠΈ. Π”Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ, Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ са Ρ€Π΅ΡˆΠ΅Π½ΠΈ ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΈ систСмата Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ слой Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° взаимодСйствиС с Π½Π΅Π³ΠΎ.

Π€ΠΎΡ€ΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ описаниС Π½Π° потрСбитСлската услуга стана ΠΏΠΎ-слоТно. ΠžΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° програмист ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ са ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. Π—Π° Π΄Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΠΌ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ изискванС, трябва Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ балансиранС Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° req-resp.

Π˜Π·ΠΈΡΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ възниква чСсто. ΠŸΡ€ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° потрСбитСлски Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π° мултимСдия ΠΈΠ»ΠΈ синхронизиранС Π½Π° Π΄Π°Π½Π½ΠΈ със социални ΠΌΠ΅Π΄ΠΈΠΈ. ΠΌΡ€Π΅ΠΆΠΈ. Π’Π΅Π·ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ трябва ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΡŠΡ‚ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° сС наблюдава. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ шаблона Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° статия, ΠΈΠ»ΠΈ, Π°ΠΊΠΎ Π½Π΅ отговаря, Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ пСрсонализиран ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ управлява ΠΏΡƒΠ»Π° ΠΎΡ‚ процСсори ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ.

Π’ΠΎΡ‡ΠΊΠ° 3 изисква Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° шаблона pub-sub. И Π·Π° внСдряванС, слСд ΠΊΠ°Ρ‚ΠΎ създадСм Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ pub-sub, трябва Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° стартирамС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€Π° Π½Π° Ρ‚Π°Π·ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° Π² Π½Π°ΡˆΠ°Ρ‚Π° услуга. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ сякаш прСмСствамС Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ отписвания ΠΎΡ‚ слоя Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° дСкомпозицията Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π·Π° Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° изискванията, трябва Π΄Π° стартирамС 5 СкзСмпляра Π½Π° услугата Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ възли ΠΈ Π΄Π° създадСм Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ субСкт - pub-sub ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½ Π·Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚Π°.
Π—Π° Π΄Π° стартиратС 5 ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π°, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° промСнятС ΠΊΠΎΠ΄Π° Π½Π° услугата. ЕдинствСното Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ дСйствиС Π΅ настройката Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° балансиранС Π² ΠΎΠ±ΠΌΠ΅Π½Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ°, Π·Π° която Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-късно.
Има ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° слоТност: pub-sub ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΡŠΡ‚ ΠΈ пСрсонализираният ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ трябва Π΄Π° работят Π² Π΅Π΄Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅. ΠžΡ‚Π½ΠΎΠ²ΠΎ, услугата Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΊΠ°Ρ‚ΠΎ основна, трябва Π΄Π° осигури ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° Π»ΠΈΠ΄Π΅Ρ€.

Π˜Π·Π±ΠΎΡ€ Π½Π° Π»ΠΈΠ΄Π΅Ρ€

Π’ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ систСми ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° Π»ΠΈΠ΄Π΅Ρ€ Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π° Π·Π° Π½Π°Π·Π½Π°Ρ‡Π°Π²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ процСс, ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½ Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° някакъв Ρ‚ΠΎΠ²Π°Ρ€.

Π’ систСми, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са склонни към цСнтрализация, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ унивСрсални ΠΈ Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° консСнсус Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ paxos ΠΈΠ»ΠΈ raft.
Въй ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° са Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎΠΉ Π·Π½Π°Π΅ Π·Π° всички ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Π½Π° услуги - ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚-Π»ΠΈΠ΄Π΅Ρ€ΠΈ. Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ Π»ΠΈΠ΄Π΅Ρ€ Π±Π΅Π· гласуванС.

Π‘Π»Π΅Π΄ стартиранС ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ всички услуги ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ систСмно ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ #'$leader'{exchange = ?EXCHANGE, pid = LeaderPid, servers = Servers}. Ако LeaderPid съвпада с pid тСкущия процСс, Ρ‚ΠΎΠΉ Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° Π»ΠΈΠ΄Π΅Ρ€ ΠΈ списък Servers Π²ΠΊΠ»ΡŽΡ‡Π²Π° всички възли ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ.
Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС появи Π½ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π΅Π½ възСл Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½, всички ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Π½Π° услуги ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ #'$slave_up'{exchange = ?EXCHANGE, pid = SlavePid, options = SlaveOpts} ΠΈ #'$slave_down'{exchange = ?EXCHANGE, pid = SlavePid, options = SlaveOpts} ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ.

По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ всички ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ са наясно с всички ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π΄Π° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Π»ΠΈΠ΄Π΅Ρ€ във всСки Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

ΠŸΠΎΡΡ€Π΅Π΄Π½ΠΈΡ†ΠΈ

Π—Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° слоТни процСси Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ посрСдници.
Π—Π° Π΄Π° Π½Π΅ промСнятС ΠΊΠΎΠ΄Π° Π½Π° услугата ΠΈ Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ рСгистриранС Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ прокси ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΈ услугата, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ цялата Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°.

ΠšΠ»Π°ΡΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° pub-sub оптимизация Π΅ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с бизнСс ядро, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Ρ†Π΅Π½ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°Π·Π°Ρ€Π°, ΠΈ слой Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ - N ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ прСдоставят API Π·Π° ΡƒΠ΅Π± сокСт Π·Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.
Ако Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ, обслуТванСто Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ установява Π²Ρ€ΡŠΠ·ΠΊΠΈ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠžΡ‚ страната Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ прСкратява Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, сС стартира процСс Π·Π° обслуТванС Π½Π° Ρ‚Π°Π·ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠ°.
  • Π’ контСкста Π½Π° процСса Π½Π° обслуТванС сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° оторизация ΠΈ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° Π°Π±ΠΎΠ½ΠΈΡ€Π°Π½Π΅ Π·Π° Ρ‚Π΅ΠΌΠΈ.
  • Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π² ядрото, Ρ‚ΠΎ сС доставя Π΄ΠΎ процСситС, обслуТващи Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅.

Π”Π° си прСдставим, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ 50000 5 Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π° β€žΠ½ΠΎΠ²ΠΈΠ½ΠΈβ€œ. АбонатитС са Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ 50000 ΡΡŠΡ€Π²ΡŠΡ€Π°. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° всяка актуализация, пристигаща Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½, Ρ‰Π΅ бъдС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π°Π½Π° 10000 XNUMX ΠΏΡŠΡ‚ΠΈ: XNUMX XNUMX ΠΏΡŠΡ‚ΠΈ Π½Π° всСки ΡΡŠΡ€Π²ΡŠΡ€, спорСд броя Π½Π° Π°Π±ΠΎΠ½Π°Ρ‚ΠΈΡ‚Π΅ Π½Π° Π½Π΅Π³ΠΎ. НС ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π° схСма, Π½Π°Π»ΠΈ?
Π—Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌ ситуацията, Π½Π΅ΠΊΠ° въвСдСм прокси, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½. Глобалният рСгистратор Π½Π° ΠΈΠΌΠ΅Π½Π° трябва Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡŠΡ€Π½Π΅ Π½Π°ΠΉ-близкия процСс ΠΏΠΎ ΠΈΠΌΠ΅, Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ.

НСка стартирамС Ρ‚ΠΎΠ·ΠΈ прокси Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° слоя Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈ всички наши процСси, обслуТващи API Π½Π° websocket, Ρ‰Π΅ сС Π°Π±ΠΎΠ½ΠΈΡ€Π°Ρ‚ Π·Π° Π½Π΅Π³ΠΎ, Π° Π½Π΅ Π·Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ pub-sub Π² ядрото. ΠŸΡ€ΠΎΠΊΡΠΈΡ‚ΠΎ сС Π°Π±ΠΎΠ½ΠΈΡ€Π° Π·Π° ядрото само Π² случай Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π° входящото ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° всички свои Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ.
Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈ 5 ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ядрото ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ, вмСсто 50000 XNUMX.

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ балансиранС

Req-Resp

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° рСализация Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈΠΌΠ° 7 стратСгии Π·Π° разпространСниС Π½Π° заявки:

  • default. Заявката сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π΄ΠΎ всички ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠΎΡ€ΠΈ.
  • round-robin. ЗаявкитС сС изброяват ΠΈ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎ сС разпрСдСлят ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅.
  • consensus. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ обслуТват услугата, са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π»ΠΈΠ΄Π΅Ρ€ΠΈ ΠΈ Ρ€ΠΎΠ±ΠΈ. ЗаявкитС сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ само Π΄ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°.
  • consensus & round-robin. Π“Ρ€ΡƒΠΏΠ°Ρ‚Π° ΠΈΠΌΠ° Π»ΠΈΠ΄Π΅Ρ€, Π½ΠΎ заявкитС сС разпрСдСлят ΠΌΠ΅ΠΆΠ΄Ρƒ всички Ρ‡Π»Π΅Π½ΠΎΠ²Π΅.
  • sticky. Π₯Сш функцията сС изчислява ΠΈ сС присвоява Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€. Π‘Π»Π΅Π΄Π²Π°Ρ‰ΠΈΡ‚Π΅ заявки с Ρ‚ΠΎΠ·ΠΈ подпис ΠΎΡ‚ΠΈΠ²Π°Ρ‚ към ΡΡŠΡ‰ΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€.
  • sticky-fun. ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½, функцията Π·Π° изчисляванС Π½Π° Ρ…Π΅Ρˆ Π·Π° sticky балансиранС.
  • fun. Подобно Π½Π° sticky-fun, само Π²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π³ΠΎ прСнасочитС, ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅.

БтратСгията Π·Π° разпространСниС сС Π·Π°Π΄Π°Π²Π° ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±ΠΌΠ΅Π½Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ°.

Π’ допълнСниС към балансиранСто, ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π²ΠΈ позволяват Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Ρ‚Π°Π³ΠΎΠ²Π΅ Π² систСмата:

  • Π•Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠ°. Позволява Π²ΠΈ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π· коя Π²Ρ€ΡŠΠ·ΠΊΠ° са дошли ΡΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π°. Използва сС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ процСс Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ сС ΡΠ²ΡŠΡ€Π·Π²Π° към Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° ΠΎΠ±ΠΌΠ΅Π½, Π½ΠΎ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅.
  • Π‘Π΅Ρ€Π²ΠΈΠ·Π΅Π½ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚. Позволява Π²ΠΈ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π² Π³Ρ€ΡƒΠΏΠΈ Π·Π° Π΅Π΄Π½Π° услуга ΠΈ Π΄Π° Ρ€Π°Π·ΡˆΠΈΡ€ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ балансиранС. Π—Π° ΠΌΠΎΠ΄Π΅Π»Π° req-resp ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ. Π˜Π·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ заявка Π΄ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ тя я ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° услугата. Но Π°ΠΊΠΎ трябва Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° логичСски Π³Ρ€ΡƒΠΏΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° раздСлянСто сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ‚Π°Π³ΠΎΠ²Π΅. ΠŸΡ€ΠΈ посочванС Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚, заявката Ρ‰Π΅ бъдС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½Π° Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Ρ€ΡƒΠΏΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ.
  • Π•Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π° заявка. Позволява Π²ΠΈ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅. Въй ΠΊΠ°Ρ‚ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° систСма Π΅ асинхронна, Π·Π° Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° услугата, трябва Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° посочим RequestTag, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ заявка. ΠžΡ‚ Π½Π΅Π³ΠΎ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° коя заявка Π΅ ΠΏΠΎΡΡ‚ΡŠΠΏΠΈΠ»Π° ΠΏΡ€ΠΈ нас.

Пъб-под

Π—Π° pub-sub всичко Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-просто. ИмамС Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° ΠΎΠ±ΠΌΠ΅Π½, Π² която сС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. Π’ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ разпространява ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са сС Π°Π±ΠΎΠ½ΠΈΡ€Π°Π»ΠΈ Π·Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС нуТдаят (ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° Ρ‚Π΅ΠΌΠΈΡ‚Π΅).

ΠœΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ ΠΈ устойчивост Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ

ΠœΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° систСмата ΠΊΠ°Ρ‚ΠΎ цяло зависи ΠΎΡ‚ стСпСнта Π½Π° мащабируСмост Π½Π° слоСвСтС ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° систСмата:

  • УслугитС сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚ Ρ‡Ρ€Π΅Π· добавянС Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ възли към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° с ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° Ρ‚Π°Π·ΠΈ услуга. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π½Π° Сксплоатация ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° балансиранС.
  • Π‘Π°ΠΌΠ°Ρ‚Π° услуга Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· прСмСстванС Π½Π° особСно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ към ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ възли Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· добавянС Π½Π° прокси процСси към особСно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ области Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.
  • ΠœΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° цялата систСма ΠΊΠ°Ρ‚ΠΎ характСристика зависи ΠΎΡ‚ Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚Ρ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΈ способността Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ Π² ΠΎΠ±Ρ‰Π° логичСска Π΅Π΄ΠΈΠ½ΠΈΡ†Π°.

Π£ΡΠΏΠ΅Ρ…ΡŠΡ‚ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ чСсто зависи ΠΎΡ‚ простотата ΠΈ скоростта Π½Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅. Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ΠΌΡƒ вСрсия сС разрастват Π·Π°Π΅Π΄Π½ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π”ΠΎΡ€ΠΈ Π΄Π° Π½ΠΈ липсва ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΎΡ‚ 50-60 машини, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€ΠΈΠ±Π΅Π³Π½Π΅ΠΌ Π΄ΠΎ фСдСрация. Π—Π° съТалСниС Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° фСдСрацията Π΅ извън ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ статия.

Π Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½Π΅

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ балансиранСто Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ, Π²Π΅Ρ‡Π΅ ΠΎΠ±ΡΡŠΠ΄ΠΈΡ…ΠΌΠ΅ излишъка Π½Π° сСрвизнитС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ. Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° ΠΎΠ±Π°Ρ‡Π΅ ΡΡŠΡ‰ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ. Π’ случай Π½Π° срив Π½Π° възСл ΠΈΠ»ΠΈ машина, ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° трябва Π΄Π° сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈ Π·Π° възмоТно Π½Π°ΠΉ-ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Π’ ΠΌΠΎΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ възли, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΅ΠΌΠ°Ρ‚ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² случай Π½Π° ΠΏΠ°Π΄Π°Π½Π΅. Erlang ΠΈΠΌΠ° стандартна рСализация Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π·Π° OTP прилоТСния. РазпрСдСлСният Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π² случай Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π° Ρ‡Ρ€Π΅Π· стартиранС Π½Π° Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ стартиран ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° възСл. ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π΅Π½; слСд ΠΏΠΎΠ²Ρ€Π΅Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС прСмСства към възСла Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Ρ‚Π°Π·ΠΈ функционалност Ρ‚ΡƒΠΊ.

продуктивност

НСка сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ ΠΏΠΎΠ½Π΅ Π³Ρ€ΡƒΠ±ΠΎ Π΄Π° сравним СфСктивността Π½Π° rabbitmq ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ пСрсонализирани ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ.
Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ тСстванС Π½Π° rabbitmq ΠΎΡ‚ Π΅ΠΊΠΈΠΏΠ° Π½Π° openstack.

Π’ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ 6.14.1.2.1.2.2. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ RPC CAST:
Π“Ρ€Π°Π΄ΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния. Π’Ρ‚ΠΎΡ€ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅

Няма Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ настройки Π½Π° ядрото Π½Π° ОБ ΠΈΠ»ΠΈ erlang VM ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ. Условия Π·Π° тСстванС:

  • erl ΠΈΠ·Π±ΠΈΡ€Π°: +A1 +sbtu.
  • Π’Π΅ΡΡ‚ΡŠΡ‚ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ erlang възСл сС изпълнява Π½Π° Π»Π°ΠΏΡ‚ΠΎΠΏ със стар i7 Π² ΠΌΠΎΠ±ΠΈΠ»Π½Π° вСрсия.
  • ΠšΠ»ΡŠΡΡ‚Π΅Ρ€Π½ΠΈΡ‚Π΅ тСстовС сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ с 10G ΠΌΡ€Π΅ΠΆΠ°.
  • ΠšΠΎΠ΄ΡŠΡ‚ сС изпълнява Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. ΠœΡ€Π΅ΠΆΠ° Π² Ρ€Π΅ΠΆΠΈΠΌ NAT.

ВСстови ΠΊΠΎΠ΄:

req_resp_bench(_) ->
  W = perftest:comprehensive(10000,
    fun() ->
      messaging:request(?EXCHANGE, default, ping, self()),
      receive
        #'$msg'{message = pong} -> ok
      after 5000 ->
        throw(timeout)
      end
    end
  ),
  true = lists:any(fun(E) -> E >= 30000 end, W),
  ok.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ 1: Π’Π΅ΡΡ‚ΡŠΡ‚ сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π° Π½Π° Π»Π°ΠΏΡ‚ΠΎΠΏ със стара ΠΌΠΎΠ±ΠΈΠ»Π½Π° вСрсия i7. Π’Π΅ΡΡ‚ΡŠΡ‚, ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° ΠΈ услугата сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π° Π΅Π΄ΠΈΠ½ възСл Π² Π΅Π΄ΠΈΠ½ Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€:

Sequential 10000 cycles in ~0 seconds (26987 cycles/s)
Sequential 20000 cycles in ~1 seconds (26915 cycles/s)
Sequential 100000 cycles in ~4 seconds (26957 cycles/s)
Parallel 2 100000 cycles in ~2 seconds (44240 cycles/s)
Parallel 4 100000 cycles in ~2 seconds (53459 cycles/s)
Parallel 10 100000 cycles in ~2 seconds (52283 cycles/s)
Parallel 100 100000 cycles in ~3 seconds (49317 cycles/s)

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ 2: 3 възСла, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ машини ΠΏΠΎΠ΄ Π΄ΠΎΠΊΠ΅Ρ€ (NAT).

Sequential 10000 cycles in ~1 seconds (8684 cycles/s)
Sequential 20000 cycles in ~2 seconds (8424 cycles/s)
Sequential 100000 cycles in ~12 seconds (8655 cycles/s)
Parallel 2 100000 cycles in ~7 seconds (15160 cycles/s)
Parallel 4 100000 cycles in ~5 seconds (19133 cycles/s)
Parallel 10 100000 cycles in ~4 seconds (24399 cycles/s)
Parallel 100 100000 cycles in ~3 seconds (34517 cycles/s)

Π’ΡŠΠ² всички случаи ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π½Π΅ надвишава 250%

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚

Надявам сС Ρ‚ΠΎΠ·ΠΈ Ρ†ΠΈΠΊΡŠΠ» Π΄Π° Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΡƒΠΌΠ° ΠΈ моят ΠΎΠΏΠΈΡ‚ Ρ‰Π΅ бъдС ΠΎΡ‚ истинска ΠΏΠΎΠ»Π·Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° изслСдоватСлитС Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ систСми, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π² самото Π½Π°Ρ‡Π°Π»ΠΎ Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ Π·Π° своитС бизнСс систСми ΠΈ Π³Π»Π΅Π΄Π°Ρ‚ Erlang/Elixir с интСрСс , Π½ΠΎ ΠΈΠΌΠ°ΠΌ съмнСния Π΄Π°Π»ΠΈ си струва...

Π€ΠΎΡ‚ΠΎ @chuttersnap

Π’ Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват само рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π’ΠΏΠΈΡˆΠΈ сС, Моля Ρ‚Π΅.

Какви Ρ‚Π΅ΠΌΠΈ трябва Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π°Ρ‚Π° VTrade Experiment?

  • ВСория: ΠŸΠ°Π·Π°Ρ€ΠΈ, ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΈΠΌ: DAY, GTD, GTC, IOC, FOK, MOO, MOC, LOO, LOC

  • Книга Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠΈ. ВСория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π° внСдряванС Π½Π° ΠΊΠ½ΠΈΠ³Π° с Π³Ρ€ΡƒΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ

  • Визуализация Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡΡ‚Π°: Π’ΠΈΠΊΠΎΠ²Π΅, Π±Π°Ρ€ΠΎΠ²Π΅, Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠΈ. Как сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΈ ΠΊΠ°ΠΊ сС Π»Π΅ΠΏΠΈ

  • БСкофис. ΠŸΠ»Π°Π½ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° слуТитСлитС ΠΈ разслСдванС Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ

  • API. НСка Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΈ интСрфСйси са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ

  • Π‘ΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° информация: PostgreSQL, Timescale, Tarantool Π² систСми Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ

  • РСактивност Π² систСмитС Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ

  • Π΄Ρ€ΡƒΠ³ΠΈ. Π©Π΅ пиша Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅

6 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ гласуваха. 4 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€