Ignite Service Grid β€” ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

26 фСвраля ΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΌΠΈΡ‚Π°ΠΏ Apache Ignite GreenSource, Π³Π΄Π΅ выступали ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚Π΅Ρ€Ρ‹ open source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Apache Ignite. Π’Π°ΠΆΠ½Ρ‹ΠΌ событиСм Π² ΠΆΠΈΠ·Π½ΠΈ этого сообщСства стала пСрСстройка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ignite Service Grid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ микросСрвисы прямо Π² кластСрС Ignite. Об этом нСпростом процСссС Π½Π° ΠΌΠΈΡ‚Π°ΠΏΠ΅ рассказал ВячСслав Π”Π°Ρ€Π°Π΄ΡƒΡ€, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΈ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚Π΅Ρ€ Apache Ignite.

Ignite Service Grid — ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Apache Ignite Π²ΠΎΠΎΠ±Ρ‰Π΅. Π­Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, которая прСдставляСт собой распрСдСлСнноС Key/Value Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SQL, транзакционности ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ignite позволяСт Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сСрвисы прямо Π² кластСрС Ignite. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ становятся доступны всС инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт Ignite β€” распрСдСлСнныС структуры Π΄Π°Π½Π½Ρ‹Ρ…, Messaging, Streaming, Compute ΠΈ Data Grid. НапримСр, ΠΏΡ€ΠΈ использовании Data Grid ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с администрированиСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ инфраструктуры ΠΏΠΎΠ΄ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ, ΠΊΠ°ΠΊ слСдствиС, Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ· этого Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы.

Ignite Service Grid — ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ API Service Grid, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ сСрвис, просто ΡƒΠΊΠ°Π·Π°Π² Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ схСму дСплоя ΠΈ, соотвСтствСнно, сам сСрвис.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ схСма дСплоя β€” это ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ количСства инстансов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ Π½Π° ΡƒΠ·Π»Π°Ρ… кластСра. Π•ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ схСмы дСплоя. ΠŸΠ΅Ρ€Π²Π°Ρ β€” это Cluster Singleton: Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² кластСрС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ сСрвиса. Вторая β€” Node Singleton: Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ кластСра Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ экзСмпляру сСрвиса.

Ignite Service Grid — ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ количСство инстансов сСрвиса Π²ΠΎ всСм кластСрС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ подходящих ΡƒΠ·Π»ΠΎΠ². ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ сцСнарии Service Grid сам рассчитаСт ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ распрСдСлСниС для развСртывания сСрвисов.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт такая Ρ„ΠΈΡ‡Π° ΠΊΠ°ΠΊ Affinity Service. Affinity β€” это функция, которая опрСдСляСт связь ΠΊΠ»ΡŽΡ‡Π΅ΠΉ с партициями ΠΈ связь ΠΏΠ°Ρ€Ρ‚ΠΈΠΉ с ΡƒΠ·Π»Π°ΠΌΠΈ Π² Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ. По ΠΊΠ»ΡŽΡ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ primary-ΡƒΠ·Π΅Π», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш собствСнный сСрвис с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ кэшСм affinity-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ случаС измСнСния affinity-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ автоматичСский Ρ€Π΅Π΄Π΅ΠΏΠ»ΠΎΠΉ. Π’Π°ΠΊ сСрвис Π±ΡƒΠ΄Π΅Ρ‚ всСгда Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ рядом с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ, соотвСтствСнно, ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΊΡƒΡŽ схСму ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ своСго Ρ€ΠΎΠ΄Π° ΠΊΠΎΠ»Π»ΠΎΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ вычислСниями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ, Π² Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π»Π΅ΡΡ‚ΡŒ Service Grid, расскаТСм ΠΎ Π΅Π³ΠΎ истории развития.

Π§Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅

ΠŸΡ€ΠΎΡˆΠ»Π°Ρ рСализация Service Grid Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ систСмном кэшС Ignite. Под словом «кэш» Π² Ignite подразумСваСтся Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ это Π½Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ кэш Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈ каТдая Π½ΠΎΠ΄Π° содСрТит вСсь Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π½ΡƒΡ‚Ρ€ΠΈ кэш ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС. Π­Ρ‚ΠΎ связано с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰.

Ignite Service Grid — ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

Π§Ρ‚ΠΎ происходило, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‚Π΅Π» Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ сСрвис?

  • ВсС ΡƒΠ·Π»Ρ‹ Π² кластСрС ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Continuous Query.
  • Нода-ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ΄ read-committed Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π΄Π΅Π»Π°Π»Π° Π² Π±Π°Π·Ρƒ запись, которая содСрТала ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ сСрвиса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сСриализованный инстанс.
  • ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ увСдомлСния ΠΎ Π½ΠΎΠ²ΠΎΠΉ записи ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ рассчитывал распрСдСлСниС исходя ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записывался ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π±Π°Π·Ρƒ.
  • Если ΡƒΠ·Π΅Π» Π²Ρ…ΠΎΠ΄ΠΈΠ» Π² распрСдСлСниС, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π΅Π³ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎ нас Π½Π΅ устраивало

Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ: Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с сСрвисами нСльзя. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ Π±Ρ‹Π»ΠΎ нСсколько.

Если Π²ΠΎ врСмя дСплоя происходила какая-Ρ‚ΠΎ ошибка, Ρ‚ΠΎ ΠΎ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π³Π΄Π΅ всС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. БущСствовал Ρ‚ΠΎΠ»ΡŒΠΊΠΎ асинхронный Π΄Π΅ΠΏΠ»ΠΎΠΉ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ послС возвращСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ управлСния ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° дСплоя Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя для старта сСрвиса β€” ΠΈ Π² это врСмя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½ΠΈΡ‡Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Service Grid дальшС, ΠΏΠΈΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ, ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ всСм Тизнь ΠΏΡ€ΠΎΡ‰Π΅, Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Service Grid ΠΌΡ‹ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ синхронного дСплоя: ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Π΅Ρ€Π½ΡƒΠ»ΠΎΡΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ API, ΠΎΠ½ сразу ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сСрвисами. Π’Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π΄Π°Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Ρƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки дСплоя.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡƒΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ рСбалансировки. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ кэш Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈ балансировки Π½Π΅Ρ‚, Π²ΠΎ врСмя большого Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Π° с мноТСством Π½ΠΎΠ΄ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½ΠΎΠ΄Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΈ ΠΏΡ€ΠΈ большом Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Π΅ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π΅ΡΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.

Когда топология Π±Ρ‹Π»Π° Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρƒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ распрСдСлСниС сСрвисов. Π”Π° ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с транзакциями Π½Π° Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ слоТно-ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ошибкам.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

КакиС ΠΆΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Ρ‹ Π±Π΅Π· ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ? ΠŸΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… стало ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ. НуТно ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π΄Π°ΠΆΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ дСплоя сСрвиса, ΡƒΠ·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΉΡ‚ΠΈ Π² кластСр ΠΈΠ»ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ дСплоя ΡƒΠ·Π΅Π» Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π² кластСр, потрСбуСтся консистСнтно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сСрвисах Π² Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π». И Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ, Π½ΠΎ ΠΈ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… дСплоях.

Π­Ρ‚ΠΎ лишь ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ список:

  • Как Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ статичСски сконфигурированныС сСрвисы ΠΏΡ€ΠΈ стартС ΡƒΠ·Π»Π°?
  • Π’Ρ‹Ρ…ΠΎΠ΄ ΡƒΠ·Π»Π° ΠΈΠ· кластСра – Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли ΡƒΠ·Π΅Π» хостил сСрвисы?
  • Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли смСнился ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€?
  • Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΊ кластСру?
  • Надо Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ запросы Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ / Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΈ ΠΊΠ°ΠΊ?
  • А Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹Π·Π²Π°Π»ΠΈ дСстрой кэша, Π° Ρƒ нас завязаны Π½Π° Π½Π΅Π³ΠΎ Π°Ρ„Ρ„ΠΈΠ½ΠΈΡ‚ΠΈ-сСрвисы?

И это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС.

РСшСниС

Π’ качСствС Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Event Driven с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ процСссов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сообщСний. Π’ Ignite ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠ·Π»Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ собой, β€” communication-spi ΠΈ discovery-spi.

Ignite Service Grid — ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

Communication-spi позволяСт Π½ΠΎΠ΄Π°ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ сообщСния. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для пСрСсылки большого объСма Π΄Π°Π½Π½Ρ‹Ρ…. Discovery-spi позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС всСм ΡƒΠ·Π»Π°ΠΌ Π² кластСрС. Π’ стандартной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ это дСлаСтся ΠΏΠΎ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ Β«ΠΊΠΎΠ»ΡŒΡ†ΠΎΒ». Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ интСграция с Zookeeper, Π² этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ топология Β«Π·Π²Π΅Π·Π΄Π°Β». Π•Ρ‰Π΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: discovery-spi прСдоставляСт Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сообщСниС Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ доставлСно Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС всСм ΡƒΠ·Π»Π°ΠΌ.

Рассмотрим ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» дСплоя. ВсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ запросы Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ Ρ€Π°Π·Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΠΏΠΎ discovery-spi. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ:

  • Запрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ всСми ΡƒΠ·Π»Π°ΠΌΠΈ Π² кластСрС. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запроса ΠΏΡ€ΠΈ смСнС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π°. Π’Π°ΠΊΠΆΠ΅ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π·Π° ΠΎΠ΄Π½ΠΎ сообщСниС Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° появятся всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ конфигурация сСрвиса ΠΈ Π΅Π³ΠΎ сСриализованный инстанс.
  • Π‘Ρ‚Ρ€ΠΎΠ³ΠΈΠΉ порядок доставки сообщСний позволяСт Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… запросов.
  • Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄ ΡƒΠ·Π»Π° Π² Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡŽ обрабатываСтся Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎ discovery-spi, Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСрвисами Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса ΡƒΠ·Π»Ρ‹ Π² кластСрС Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‚ Π΅Π³ΠΎ ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π­Ρ‚ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠΌ. Π­Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ discovery-ΠΏΠΎΡ‚ΠΎΠΊ нСдопустимо.

ВсС запросы ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΎΡ€ΠΊΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вытаскиваСт Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ· этой ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅. ПослС этого происходят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рассчитываСт распрСдСлСниС благодаря Π½ΠΎΠ²ΠΎΠΉ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ assignment-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  2. Π£Π·Π»Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ сообщСниС с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ дСплоя ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρƒ.
  3. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ всС сообщСния ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСго процСсса дСплоя, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отправляСтся ΠΏΠΎ discovery-spi всСм ΡƒΠ·Π»Π°ΠΌ Π² кластСрС.
  4. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° процСсс дСплоя Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, послС Ρ‡Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° удаляСтся ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

Ignite Service Grid — ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°
Новый event-driven Π΄ΠΈΠ·Π°ΠΉΠ½: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java

Если Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ развСртывания ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, ΡƒΠ·Π΅Π» сразу ΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ направляСт ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρƒ. ПослС Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ сообщСний ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ±ΠΎ всСх ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π²ΠΎ врСмя дСплоя ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ это сообщСниС ΠΏΠΎ discovery-spi. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ доступна Π½Π° любом ΡƒΠ·Π»Π΅ Π² кластСрС.

По этому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ всС Π²Π°ΠΆΠ½Ρ‹Π΅ события Π² Service Grid. НапримСр, смСна Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ β€” это Ρ‚ΠΎΠΆΠ΅ сообщСниС ΠΏΠΎ discovery-spi. И Π² Ρ†Π΅Π»ΠΎΠΌ, Ссли ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» получился достаточно лСгковСсным ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ. ΠΠ°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π²ΠΎ врСмя дСплоя.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ дальшС

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎ ΠΏΠ»Π°Π½Π°Ρ…. Π›ΡŽΠ±Π°Ρ крупная Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ignite выполняСтся ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Ignite, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ IEP. Π£ Ρ€Π΅Π΄ΠΈΠ·Π°ΠΉΠ½Π° Service Grid Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ IEP β€” IEP β„–17 со стСбным Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π—Π°ΠΌΠ΅Π½Π° масла Π² БСрвис Π“Ρ€ΠΈΠ΄Π΅Β». Но ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ ΠΌΡ‹ помСняли Π½Π΅ масло Π² Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅, Π° Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

Π—Π°Π΄Π°Ρ‡ΠΈ Π² IEP ΠΌΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π½Π° 2 Ρ„Π°Π·Ρ‹. ΠŸΠ΅Ρ€Π²Π°Ρ β€” крупная Ρ„Π°Π·Π°, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° дСплоя. Она ΡƒΠΆΠ΅ Π²Π»ΠΈΡ‚Π° Π² мастСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Service Grid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появится Π² вСрсии 2.8. Вторая Ρ„Π°Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡:

  • Горячий Ρ€Π΅Π΄Π΅ΠΏΠ»ΠΎΠΉ
  • ВСрсионированиС сСрвисов
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ отказоустойчивости
  • Π’ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ подсчСта Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

НапослСдок ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΠΌ Service Grid для построСния отказоустойчивых систСм высокой доступности. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ ΠΊ Π½Π°ΠΌ Π² dev-list ΠΈ user-list ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ. Π’Π°Ρˆ ΠΎΠΏΡ‹Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ΅Π½ для сообщСства, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΡƒΠ΄Π° Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΊΠ°ΠΊ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

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