πŸ—οΈπŸ”§ Π“Π»Π°Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ распрСдСлСнных систСм (ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ)

РаспрСдСлСнныС систСмы ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ высоконагруТСнных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²Π° Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΈΡ… систСм ΠΈ эффСктивныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… прСодолСния.

РаспрСдСлСнныС систСмы β€” основа высоконагруТСнных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Они ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сСрвисов, ΠΎΠ½Π»Π°ΠΉΠ½-Π±Π°Π½ΠΊΠΈΠ½Π³Π°, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… систСмах мноТСство ΡƒΠ·Π»ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ совмСстно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ:

  • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ – Π»Π΅Π³ΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, добавляя Π½ΠΎΠ²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹.
  • Π‘Ρ‹Ρ‚ΡŒ отказоустойчивым – ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ сбоях.
  • Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с максимальной ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, распрСдСляя Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами.

Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° распрСдСлСнных систСм связаны с рядом слоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 4 основныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

  • Π‘Π±ΠΎΠΈ Π² сСти – ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ соСдинСниС ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· строя.
  • БлоТности ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ – Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.
  • Π£Π³Ρ€ΠΎΠ·Ρ‹ бСзопасности – Π²Π°ΠΆΠ½ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ.
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ – Π½ΡƒΠΆΠ½ΠΎ автоматичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ эти слоТности ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ВзаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π² распрСдСлeΠ½Π½ΠΎΠΉ систСмС всСгда сопряТСно с рисками (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ сбоями Π² сСти, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ³Ρ€ΠΎΠ·Π°ΠΌΠΈ бСзопасности). Когда нСсколько сСрвСров Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС, Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΈ Π½Π°Π΄eΠΆΠ½ΡƒΡŽ связь.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • ΠŸΠΎΡ‚Π΅Ρ€Ρ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² – сообщСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ адрСсата ΠΈΠ·-Π·Π° сбоСв Π² сСти.
  • ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ порядка доставки – сообщСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ€Π°Π·Π½ΠΎΠ΅ врСмя ΠΈ Π² Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • Π£Π³Ρ€ΠΎΠ·Ρ‹ бСзопасности – Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π² Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ.

Бпособы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

  • ИспользованиС TCP. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ UDP, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP обСспСчиваСт Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Он управляСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ потСрянных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок ΠΈΡ… доставки. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° сообщСния приходят Π½Π΅ ΠΏΠΎ порядку ΠΈΠ»ΠΈ вовсС Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ.
  • Π—Π°Ρ‰ΠΈΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TLS. Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TLS Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ Π»ΠΈΡ†Π°ΠΌΠΈ. TLS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² HTTPS, ΠΎΠ½Π»Π°ΠΉΠ½-Π±Π°Π½ΠΊΠΈΠ½Π³Π΅ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… API.
  • Π‘Π»ΡƒΠΆΠ±Ρ‹ обнаруТСния сСрвисов Ρ‡Π΅Ρ€Π΅Π· DNS. Π’ динамичСских срСдах (ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… прилоТСниях ΠΈ микросСрвисax) Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвисы Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π±Π΅Π· ТСсткого прописывания IP-адрСсов. DNS-сСрвисы (AWS Route 53, Kubernetes Service Discovery ΠΈ Ρ‚.ΠΏ.) автоматичСски ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ запросы ΠΊ доступным ΡƒΠ·Π»Π°ΠΌ.
ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСхстороннСго TCP рукопоТатия

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов Ρ‡Π΅Ρ€Π΅Π· DNS

Π‘Ρ…Π΅ΠΌΠ° обнаруТСния ΠΈ взаимодСйствия с сСрвисами Ρ‡Π΅Ρ€Π΅Π· сСрвисный рССстр выглядит Ρ‚Π°ΠΊ:

  • РСгистрация сСрвиса. БСрвис сначала рСгистрируСтся Π² сСрвисном рССстрС, сообщая ΠΎ своСм сущСствовании, мСстополоТСнии ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… характСристиках.
  • Поиск сСрвиса. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ обращаСтся ΠΊ сСрвисному рССстру, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвис.
  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ мСстополоТСния сСрвиса. БСрвисный рССстр Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ мСстополоТСнии Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ сСрвиса.
  • Π’Ρ‹Π·ΠΎΠ² сСрвиса. ПослС получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ мСстополоТСнии сСрвиса ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ этот сСрвис.
ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов Ρ‡Π΅Ρ€Π΅Π· DNS

Вакая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ:

  • ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² ТСстко прописанных адрСсах сСрвисов.
  • БСрвисный рССстр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы Π½Π° доступныС экзСмпляры сСрвисов.
  • ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ мСстополоТСния сСрвиса ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ свою ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.
  • Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² микросСрвисных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… для динамичСского обнаруТСния слуТб.

Π§Ρ‚ΠΎΠ±Ρ‹ связь сСрвисов Π±Ρ‹Π»Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС 3 способа Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² комплСксС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: рассмотрим e-commerce ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π³Π΄Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ микросСрвиса:

  • ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ².
  • ΠžΠΏΠ»Π°Ρ‚Π°.
  • Бкладской ΡƒΡ‡Π΅Ρ‚.

Π’Π°ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½ΡƒΠΆΠ½Ρ‹:

  • TCP – Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС сообщСния Π±Ρ‹Π»ΠΈ доставлСны Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС.
  • TLS – для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π°Ρ‚Π°ΠΊ.
  • DNS – для автоматичСского обнаруТСния сСрвисов.
πŸ’» Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡ сСрвисов

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π² распрСдСлСнной систСмС прСдставляСт ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·-Π·Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

  • Π‘Π±ΠΎΠΈ Π² сСти – Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· строя.
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ глобального Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ – Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ систСмного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для всСх сСрвСров.
  • БостояниС Π³ΠΎΠ½ΠΊΠΈ – Ссли нСсколько ΡƒΠ·Π»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ рСсурс, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСсогласованности Π΄Π°Π½Π½Ρ‹Ρ….

Бпособы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ:

  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сбоСв. Для поддСрТания ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΠ·Π»Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ heartbeat-сообщСния (ΡƒΠ·Π»Ρ‹ пСриодичСски ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ сигналы «я ΠΆΠΈΠ²Β»). Π’ случаС выявлСния сбоя Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π²Ρ‹Π±ΠΎΡ€Π° Π»ΠΈΠ΄Π΅Ρ€Π° (Raft, Ρ€Π΅ΠΆΠ΅ Paxos) обСспСчат Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π° для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ систСмы.
  • ЛогичСскиС ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ часы. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ ΡƒΠ·Π»ΠΎΠ² Π½Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ. НапримСр, логичСскиС часы Лэмпорта ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅, Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ часы ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎ-слСдствСнныС связи ΠΌΠ΅ΠΆΠ΄Ρƒ событиями.
ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ согласования с использованиСм Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… часов
  • Алгоритмы консСнсуса. Если нСсколько ΡƒΠ·Π»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запись Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€ Π»ΠΈΠ΄Π΅Ρ€Π°), ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ упомянутыС Π²Ρ‹ΡˆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ консСнсуса Paxos ΠΈ Raft.
  • РСпликация Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π° всСх ΡƒΠ·Π»Π°Ρ…, примСняСтся рСпликация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записи ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΡƒΠ·Π»ΠΎΠ² (Π² зависимости ΠΎΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅), Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΡƒΠ·Π»Ρ‹-Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ (ΠΊΠΎΠΏΠΈΠΈ) ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.
РСпликация Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡŽ распрСдСлСнной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ…. Для обСспСчСния синхронизации Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ обнаруТСния сбоСв – Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСма автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ ΠΏΡ€ΠΈ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠ°Ρ….
  • Raft – для согласования дСйствий ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ.
  • Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ часы – для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ упорядочивания событий.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… прСимущСств распрСдСлeΠ½Π½Ρ‹Ρ… систСм являСтся ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, добавляя Π½ΠΎΠ²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹. Однако для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ:

  • ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Π·Π° API-шлюзом. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ³ΠΎ прилоТСния Π½Π° микросСрвисы позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нСзависимо, ΠΏΡ€ΠΈ этом запросы ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ микросСрвису ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ API-шлюз.
  • Балансировщики Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ входящиС запросы ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими сСрвСрами, прСдотвращая ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π’ зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, запросы Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ, ΠΈΠ»ΠΈ Π² соотвСтствии с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ (Π»ΠΈΠ±ΠΎ гСографичСским ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ) сСрвСров. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… балансировки ΠΌΡ‹ писали Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ дСкомпозиция с CQRS (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ сСрвисы). Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для быстрого доступа, запись оптимизируСтся для согласованности Π΄Π°Π½Π½Ρ‹Ρ….
ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ раздСлСния CQRS

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ для ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ Π½Π° Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ происходит Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π° созданиС постов Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ быстрого согласования Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ систСму быстрой, отказоустойчивой ΠΈ эффСктивной ΠΏΡ€ΠΈ высоких Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CQRS: это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π‘Π”, ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ записи Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ систСмС.

Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ

ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ – это ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ послС сбоСв ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ распрСдСлСнных систСмах сбои Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹, поэтому Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² случаС нСобходимости ΠΎΠ½Π° ΠΏΠ»Π°Π²Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»Π° Π½Π΅ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»Π° ΠΈΠ· строя. НапримСр, ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, Π½ΠΎ всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ отказоустойчивости:

  • Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹ – ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ бСсконСчноС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвиса: Ссли сСрвис Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, запрос прСрываСтся.
  • ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ – ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ автоматичСский ΠΏΠΎΠ²Ρ‚ΠΎΡ€ запроса, Ссли ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» сбой. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ систСму, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ.
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ запросов – ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ запросы ΠΊ сСрвису, Ссли ΠΎΠ½ часто Π΄Π°Π΅Ρ‚ сбои. ПослС восстановлСния сСрвис снова Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ запросы.
  • Бброс Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ – Ссли систСма ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π°, Π½ΠΈΠ·ΠΊΠΎΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅ запросы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°) ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ.
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства запросов – позволяСт API ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ X запросов Π² сСкунду. Π—Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ DDoS-Π°Ρ‚Π°ΠΊ.
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·ΠΎΠ½Ρ‹ – ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ нСзависимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΊΠ°ΠΌ ΠΈ отсСкам Π² ΠΏΠΎΠ΄Π»ΠΎΠ΄ΠΊΠ΅). Если ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя, ΠΎΠ½ Π½Π΅ тянСт Π·Π° собой всю систСму.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состояния – постоянный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡƒΠ·Π»ΠΎΠ² ΠΈ автоматичСскоС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… сСрвСров.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: видСостриминговый сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΠΊΠΈΠΉ рост Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π²ΠΎ врСмя ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ события. Π’Π°ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½ΡƒΠΆΠ½Ρ‹:

  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства входящих запросов для прСдотвращСния ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • CDN (сСти доставки ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°) для распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ускорСния доступа ΠΊ Π²ΠΈΠ΄Π΅ΠΎ.
  • БистСма ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния для автоматичСского ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΈΠ· строя сСрвСров.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° распрСдСлСнных систСм – слоТный комплСксный процСсс, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… аспСктов β€” ΠΎΡ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π΄ΠΎ эффСктивной ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ сСрвисов, Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ обСспСчСния отказоустойчивости.

Как ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, каТдая ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: TCP ΠΈ TLS для Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ бСзопасной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, слуТбы обнаруТСния Π½Π° основС DNS для Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ консСнсуса Π²Ρ€ΠΎΠ΄Π΅ Raft для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ, микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ CQRS для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ комплСкс ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² отказоустойчивости – ΠΎΡ‚ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΎΠ² Π΄ΠΎ раздСлСния Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·ΠΎΠ½Ρ‹.

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡ эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ систСмы, способныС Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, сохраняя ΠΏΡ€ΠΈ этом ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

admin
30 июня 2018

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования Π² Python: для ΡΡ‚ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

МногиС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования встроСны Π² Python ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
25 сСнтября 2017

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π΅Π³ΠΎ 11 ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ программирования, ΠΌΡ‹ рассмотрим исходн...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
27 ΠΌΠ°Ρ€Ρ‚Π° 2017

4 Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠ½ΠΈΠ³ ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… проСктирования

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… проСктирования, рассчитанныС ΠΊΠ°ΠΊ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚Π°ΠΊ ...