Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ АлСксСй Пьянков, я Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ БпортмастСр. Π’ этом постС я рассказал, ΠΊΠ°ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°Π»Π°ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ сайтом БпортмастСр Π² 2012 Π³ΠΎΠ΄Ρƒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Β«ΠΏΡ€ΠΎΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΒ» ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ Π³Ρ€Π°Π±Π»ΠΈ ΠΌΡ‹ собрали.

БСгодня я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ мыслями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡΡŽΠΆΠ΅Ρ‚ΠΎΠΌ – Π²Ρ‹Π±ΠΎΡ€ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для java-бэкСнда Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ сайта. Π­Ρ‚ΠΎΡ‚ ΡΡŽΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для мСня – хотя история Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ всСго 2 мСсяца, Π½ΠΎ эти 60 Π΄Π½Π΅ΠΉ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΏΠΎ 12-16 часов ΠΈ Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ. Никогда Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π΄ΡƒΠΌΠ°Π» ΠΈ Π½Π΅ прСдставлял, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСкст Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽ Π½Π° 2 части, Ρ‡Ρ‚ΠΎΠ± Π½Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ. Наоборот, пСрвая Ρ‡Π°ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎΠΉ β€” ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сообраТСниями, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Если Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с кСшами β€” с тСхничСской стороны Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, скорСС всСго, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. А Π²ΠΎΡ‚ для Π΄ΠΆΡƒΠ½ΠΈΠΎΡ€Π° нСбольшой Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΡƒΡŽ сторону ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, окаТись ΠΎΠ½ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Ρ€Π°ΡΠΏΡƒΡ‚ΡŒΠ΅.

Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Когда новая вСрсия сайта БпортмастСр Π±Ρ‹Π»Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, Π΄Π°Π½Π½Ρ‹Π΅ поступали способом, мягко говоря, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ. Основой слуТили Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии сайта (Bitrix), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π² ETL, привСсти ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ ΠΈ ΠΎΠ±ΠΎΠ³Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ€ΡŽΡˆΠ΅Ρ‡ΠΊΠ°ΠΌΠΈ Π΅Ρ‰Π΅ ΠΈΠ· дСсятка систСм. Π§Ρ‚ΠΎΠ±Ρ‹ новая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ»ΠΈ описаниС Ρ‚ΠΎΠ²Π°Ρ€Π° оказались Π½Π° сайтС, Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ дня β€” ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΡ‡ΡŒΡŽ, 1 Ρ€Π°Π· Π² сутки.

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π±Ρ‹Π»ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π±ΠΎΡ‚ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… нСдСль Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ нСудобства ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² Π±Ρ‹Π»ΠΈ ΠΌΠ΅Π»ΠΎΡ‡ΡŒΡŽ. Но, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всС ΡƒΡ‚Ρ€ΡΡΠ»ΠΎΡΡŒ, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΎΡΡŒ β€” Ρ‡Π΅Ρ€Π΅Π· нСсколько мСсяцСв, Π² Π½Π°Ρ‡Π°Π»Π΅ 2015 Π³ΠΎΠ΄Π° ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ. Π’ 2015 ΠΈ 2016 всС ΠΈΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΌΡ‹ рСгулярно Ρ€Π΅Π»ΠΈΠ·ΠΈΠΌ, Π°Π΄ΠΌΠΈΠ½ΠΊΠ° ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΡ‹ готовимся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ вскорС нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ довСрят самоС Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈ слоТноС – Ρ‚ΠΎΠ²Π°Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ (полная ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ всСм Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌ). Но Π»Π΅Ρ‚ΠΎΠΌ 2017, ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ запуском Ρ‚ΠΎΠ²Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ окаТСтся Π² ΠΎΡ‡Π΅Π½ΡŒ слоТной ситуации – ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΎ этот эпизод я ΠΈ Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части этой двухсСрийной ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Но Π² этом постС Π½Π°Ρ‡Π½Ρƒ ΠΈΠ·Π΄Π°Π»Π΅ΠΊΠ°, подобью Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мысли – прСдставлСния ΠΎ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ большим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ шагом.

Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π° ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Π—Π°Π΄Π°Ρ‡Π° ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ появляСтся просто Ρ‚Π°ΠΊ. ΠœΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, пишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» вострСбован. Если ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ вострСбован ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ β€” ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ±Ρ‹Π²Π°ΡŽΡ‚. И Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠ±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Π΅Ρ‰Π΅. И Π²ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ становится высоконагруТСнным.

На ΠΏΠ΅Ρ€Π²Ρ‹Ρ… этапах ΠΌΡ‹ Π½Π΅ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΏΡ€ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, быстро Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΈΠ»ΠΎΡ‚ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹. И Ссли Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° растСт – ΠΌΡ‹ ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎ. Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π·Π° Π² Π΄Π²Π°-Ρ‚Ρ€ΠΈ, Π² ΠΏΡΡ‚ΡŒ, пускай Π² 10 Ρ€Π°Π·. Π“Π΄Π΅-Ρ‚ΠΎ здСсь – финансы большС Π½Π΅ позволят. А Π²ΠΎ сколько Ρ€Π°Π· подрастСт количСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ? Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ 2-5-10, Π½ΠΎ Π² случаС успСха β€” это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ 100-1000 ΠΈ Π΄ΠΎ 100 тысяч Ρ€Π°Π·. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ, Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π·Π°Π½ΡΡ‚ΡŒΡΡ придСтся.

Допустим, нСкоторая Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° (Π½Π°Π·ΠΎΠ²Π΅ΠΌ эту Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π΄ΠΎΠ»Π³ΠΎ, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя выполнСния. Ѐункция – это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ слоТной Π»ΠΎΠ³ΠΈΠΊΠΈ – Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ выполняСтся Π΄ΠΎΠ»Π³ΠΎ. На сколько ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя выполнСния? Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π΅ – ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎ нуля, Π½Π΅ дальшС. А ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя выполнСния Π΄ΠΎ нуля? ΠžΡ‚Π²Π΅Ρ‚: Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ВмСсто этого – сразу Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. А ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚? ΠžΡ‚Π²Π΅Ρ‚: Π»ΠΈΠ±ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ, Π»ΠΈΠ±ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ ΠΏΠΎΠ΄ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ β€” это Π΄ΠΎΠ»Π³ΠΎ. А ΠΏΠΎΠ΄ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ β€” это, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ функция Π²Ρ‹Π΄Π°Π»Π° Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, рСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°ΠΌ Π½Π΅Π²Π°ΠΆΠ½Π°. Достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² зависит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ΠΎΠ³Π΄Π°, Ссли значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ β€” Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Если эти запись-считываниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° проходят быстрСС Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡ€ΠΎΡ„ΠΈΡ‚ ΠΏΠΎ скорости. Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΏΡ€ΠΎΡ„ΠΈΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ ΠΈ 100, ΠΈ 1000, ΠΈ 100 тысяч Ρ€Π°Π· (10^5 – это скорСС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ Π² случаС с порядочно Π»Π°Π³Π°ΡŽΡ‰Π΅ΠΉ Π±Π°Π·ΠΎΠΉ – Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ трСбования ΠΊ систСмС ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊ систСмС ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ β€” быстрая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния ΠΈ Π² Ρ‡ΡƒΡ‚ΡŒ мСньшСй стСпСни – ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ записи. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ систСму Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.

Π Π°Π·Ρ‹Π³Ρ€Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ кСйс.

Допустим, ΠΌΡ‹ обСспСчили ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ½Π΅ΠΌΠ½ΠΎΠ³Ρƒ внСдряСм ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. НСмного прирастаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, растСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° – Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ добавляСм кСшСй, ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌ Ρ‚ΠΎ Ρ‚ΡƒΡ‚, Ρ‚ΠΎ Ρ‚Π°ΠΌ. Π’Π°ΠΊ продолТаСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΈ Π²ΠΎΡ‚ тяТСловСсныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΆΠ΅ практичСски Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ β€” вся основная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° лоТится Π½Π° кСш. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π·Π° это врСмя выросло Π² N Ρ€Π°Π·.

И Ссли Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ запас ΠΏΠΎ ΠΆΠ΅Π»Π΅Π·Ρƒ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ 2-5 Ρ€Π°Π·, Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ кСша ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π· Π² 10 ΠΈΠ»ΠΈ, Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ случаС Ρ€Π°Π· Π² 100, мСстами, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π² 1000. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΆΠ΅Π»Π΅Π·Π΅ – ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π² 100 Ρ€Π°Π· большС запросов. Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, заслуТили пряник!

Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π² ΠΎΠ΄ΠΈΠ½ прСкрасный ΠΌΠΎΠΌΠ΅Π½Ρ‚, случайно, систСма Π΄Π°Π»Π° сбой ΠΈ кСш Ρ€ΡƒΡ…Π½ΡƒΠ». НичСго особСнного – вСдь кСш Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ «высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния ΠΈ записи, ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π΅Π²Π°ΠΆΠ½ΠΎΒ».

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ стартовой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ запас ΠΏΠΎ ΠΆΠ΅Π»Π΅Π·Ρƒ Ρƒ нас Π±Ρ‹Π» 2-5 Ρ€Π°Π·, Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π·Π° это врСмя подросла Π² 10-100 Ρ€Π°Π·. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ кСша ΠΌΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ для тяТСлых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ поэтому всС Π»Π΅Ρ‚Π°Π»ΠΎ. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π±Π΅Π· кСша – Π²ΠΎ сколько Ρ€Π°Π· Ρƒ нас систСма просядСт? Π§Ρ‚ΠΎ Ρƒ нас ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚? БистСма ляТСт.

Π”Π°ΠΆΠ΅ Ссли Ρƒ нас кСш Π½Π΅ Ρ€ΡƒΡ…Π½ΡƒΠ», Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ очистился Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя – Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π΅Π²Π°Ρ‚ΡŒ, ΠΈ это Π·Π°ΠΉΠΌΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. И Π½Π° это врСмя – основная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ляТСт Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π’Ρ‹Π²ΠΎΠ΄: высоконагруТСнныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² ΠΏΡ€ΠΎΠ΄Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ высокой скорости чтСния ΠΈ записи, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сохранности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ устойчивости ΠΊ сбоям.

ΠœΡƒΠΊΠΈ Π²Ρ‹Π±ΠΎΡ€Π°

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ с Π°Π΄ΠΌΠΈΠ½ΠΊΠΎΠΉ – Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΡˆΠ΅Π» Ρ‚Π°ΠΊ: сначала поставили Hazelcast, Ρ‚.ΠΊ. ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этим ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ ΠΏΠΎ ΠΎΠΏΡ‹Ρ‚Ρƒ основного сайта. Но, здСсь Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ оказался Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌ – ΠΏΠΎΠ΄ наш ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Hazelcast Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ просто ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° ΠΆΡƒΡ‚ΠΊΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. А ΠΏΠΎΠ΄ сроками Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ΄ ΠΌΡ‹ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΠΆΠ΅ подписались.

Π‘ΠΏΠΎΠΉΠ»Π΅Ρ€: ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ слоТились ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пропустили Ρ‚Π°ΠΊΡƒΡŽ ΠΏΠ»ΡŽΡ…Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡΡ‚Ρ€ΡƒΡŽ ΠΈ Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½Π½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ – я расскаТу Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части β€” ΠΈ ΠΊΠ°ΠΊ оказались, ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹Π±Ρ€Π°Π»ΠΈΡΡŒ. Но сСйчас β€” скаТу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π» ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΉ стрСсс, ΠΈ Β«Π΄ΡƒΠΌΠ°Ρ‚ΡŒ – ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π΅ думаСтся, трясСм Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒΒ». «ВрясСм Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒΒ» β€” это Ρ‚ΠΎΠΆΠ΅ спойлСр, ΠΏΡ€ΠΎ это Ρ‡ΡƒΡ‚ΡŒ дальшС.

Π§Ρ‚ΠΎ ΠΌΡ‹ сдСлали:

  1. БоставляСм список ΠΈΠ· всСх систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подсказываСт google ΠΈ StackOverflow. Π§ΡƒΡ‚ΡŒ большС 30
  2. ПишСм тСсты с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠΉ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Для этого записали Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проходят Ρ‡Π΅Ρ€Π΅Π· систСму Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ β€” эдакий сниффСр для Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π² сСти, Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы. Π’ тСсты запускали Ρ€ΠΎΠ²Π½ΠΎ эти Π΄Π°Π½Π½Ρ‹Π΅
  3. ВсСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ систСму ΠΈΠ· списка, настраиваСт, прогоняСт тСсты. НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ тСст, Π½Π΅ тянСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ – выбрасываСм, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.
  4. На 17-ΠΉ систСмС стало понятно, Ρ‡Ρ‚ΠΎ всС Π±Π΅Π·Π½Π°Π΄Π΅ΠΆΠ½ΠΎ. Π₯Π²Π°Ρ‚ΠΈΡ‚ «трясти Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒΒ», ΠΏΠΎΡ€Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ.

Но это Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ систСму, которая Β«ΠΏΡ€ΠΎΠ»Π΅Π·Π΅Ρ‚ ΠΏΠΎ скорости» Π² Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… тСстах. А Ссли Ρ‚Π°ΠΊΠΈΡ… тСстов Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ΠΈ хочСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ побыстрСС?

Π‘ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (слоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠ΄Π΄Π»+ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΆΠΈΠ²Π΅Ρ‚ Π² Π²Π°ΠΊΡƒΡƒΠΌΠ΅, ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ» ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ β€” поэтому, дальнСйшиС рассуТдСния это, скорСС Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΠΊΠ°/философия/ΠΏΡ€ΠΎ Π΄ΠΆΡƒΠ½ΠΈΠΎΡ€Π°).

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ²ΡˆΠΈΡΡŒ с трСбованиями, Π½Π°Ρ‡Π½Π΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Π—Π°Ρ‡Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСд: ΠΌΡ‹ ΠΏΠΎΠΉΠ΄Π΅ΠΌ ΠΈ возьмСм Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΡƒΠ³Π»ΠΈΡ‚ΡŒ, Ρ‚ΠΎ плюс-минус ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π²Ρ‹ Π½Π°Ρ‚ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ Π½Π° Redis, ΠΎΠ½ Π²Π΅Π·Π΄Π΅ Π½Π° слуху. ΠŸΠΎΡ‚ΠΎΠΌ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ EhCache ΠΊΠ°ΠΊ самая давняя ΠΈ провСрСнная систСма. Π”Π°Π»ΡŒΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ написано ΠΏΡ€ΠΎ Tarantool β€” ΠΎΡ‚Π΅Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ аспСкт Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. И Ρ‚Π°ΠΊΠΆΠ΅ Ignite, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ сСйчас Π½Π° подъСмС популярности ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π‘Π±Π΅Ρ€Π’Π΅Ρ…Π°. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π΅Ρ‰Π΅ Hazelcast, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² enterprise-ΠΌΠΈΡ€Π΅ ΠΎΠ½ часто ΠΌΠ΅Π»ΡŒΠΊΠ°Π΅Ρ‚ Π² срСдС ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ.

Π­Ρ‚ΠΈΠΌ список Π½Π΅ исчСрпываСтся, систСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ дСсятки. А ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠΌ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ 5 систСм Π½Π° «конкурс красоты» ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ ΠΎΡ‚Π±ΠΎΡ€. ΠšΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΌ?

Redis

Π§ΠΈΡ‚Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡˆΡƒΡ‚ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС.
Redis β€” opensource-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ in-memory Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сохранСния on-disk, Π°Π²Ρ‚ΠΎΡ€Π°Π·Π±ΠΈΠ²ΠΊΡƒ Π½Π° ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ, Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ восстановлСниС послС сСтСвых Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ².

Π’Ρ€ΠΎΠ΄Π΅ Π±Ρ‹, всС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ€Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ β€” всС Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚. Но посмотрим просто Ρ€Π°Π΄ΠΈ интСрСса Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ².

EhCache

EhCache β€” Β«Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ кСш для JavaΒ»(ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π»ΠΎΠ·ΡƒΠ½Π³Π° с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта). Π’ΠΎΠΆΠ΅ opensource. И Ρ‚ΡƒΡ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Redis Π½Π΅ ΠΏΠΎΠ΄ java, Π° ΠΎΠ±Ρ‰ΠΈΠΉ, ΠΈ для взаимодСйствия с Π½ΠΈΠΌ Π½ΡƒΠΆΠ½Π° ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°. А EhCache Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡƒΠ΄ΠΎΠ±Π½Π΅Π΅. Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ±Π΅Ρ‰Π°Π΅Ρ‚ систСма? ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Ну ΠΈ Π΅Ρ‰Π΅ ΠΎΠ½Π° самая распространСнная. И ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Redis Π·Π°Π±Ρ‹Ρ‚, я Π³ΠΎΡ‚ΠΎΠ² Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ EhCache.

Но чувство ΠΏΠ°Ρ‚Ρ€ΠΈΠΎΡ‚ΠΈΠ·ΠΌΠ° мСня Ρ‚ΠΎΠ»ΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Π΅ΠΌ Ρ…ΠΎΡ€ΠΎΡˆ Tarantool.

Tarantool

Tarantool β€” встрСчаСт ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Β«ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈΒ». ΠžΡ‡Π΅Π½ΡŒ слоТно Π·Π²ΡƒΡ‡ΠΈΡ‚, поэтому Ρ‡ΠΈΡ‚Π°Π΅ΠΌ страницу ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π³Ρ€ΠΎΠΌΠΊΠΎΠ΅ заявлСниС: Β«ΠšΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ 100% Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти». Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ вопросы β€” вСдь Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС, Ρ‡Π΅ΠΌ памяти. Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ здСсь подразумСваСтся, Ρ‡Ρ‚ΠΎ для записи Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск ΠΈΠ· памяти Tarantool Π½Π΅ прогоняСт ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. ВмСсто этого – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ особСнности систСмы, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ просто мэпится Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму с вСсьма Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ показатСлями I/O. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, сдСлали ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ классно.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° внСдрСния: Mail.ru корпоративная ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒ, Авито, Π‘ΠΈΠ»Π°ΠΉΠ½, ΠœΠ΅Π³Π°Ρ„ΠΎΠ½, ΠΠ»ΡŒΡ„Π°-Π‘Π°Π½ΠΊ, Газпром…

Если ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ сомнСния ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Tarantool, Ρ‚ΠΎ кСйс внСдрСния Π² Mastercard мСня Π΄ΠΎΠ±ΠΈΠ²Π°Π΅Ρ‚. Π‘Π΅Ρ€Ρƒ Tarantool.

Но всС-таки…

Ignite

… Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Ignite, заявлСн ΠΊΠ°ΠΊ Β«in-memory Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ платформа… in-memory скорости Π½Π° ΠΏΠ΅Ρ‚Π°Π±Π°ΠΉΡ‚Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…Β». Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ плюсов: распрСдСлСнный in-memory кСш, самоС быстроС key-value Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ кСш, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, высокая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, строгая Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, оказываСтся, самый быстрый – это Ignite.

ВнСдрСния: Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ, American Airlines, Yahoo! Japan. А ΠΏΠΎΡ‚ΠΎΠΌ я Π΅Ρ‰Π΅ ΡƒΠ·Π½Π°ΡŽ, Ρ‡Ρ‚ΠΎ Ignite Π½Π΅ просто Π² Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊΠ΅ Π²Π½Π΅Π΄Ρ€Π΅Π½, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π‘Π±Π΅Ρ€Π’Π΅Ρ…Π° своих людСй отправляСт Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ самого Ignite, Π΄ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄ΠΊΡƒΠΏΠ°Π΅Ρ‚ ΠΈ я Π³ΠΎΡ‚ΠΎΠ² Π²Π·ΡΡ‚ΡŒ Ignite.

Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСпонятно Π·Π°Ρ‡Π΅ΠΌ, я ΡΠΌΠΎΡ‚Ρ€ΡŽ Π½Π° пятый ΠΏΡƒΠ½ΠΊΡ‚.

Hazelcast

Π—Π°Ρ…ΠΎΠΆΡƒ Π½Π° сайт Hazelcast, Ρ‡ΠΈΡ‚Π°ΡŽ. И оказываСтся, самоС быстроС-Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для распрСдСлСнного ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ β€” это Hazelcast. Он Π½Π° порядки быстрСС всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ½ β€” Π»ΠΈΠ΄Π΅Ρ€ Π² области in-memory data grid. На Ρ„ΠΎΠ½Π΅ этого Π²Π·ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” сСбя Π½Π΅ ΡƒΠ²Π°ΠΆΠ°Ρ‚ΡŒ. А Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ кластСра Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

ВсС, я Π³ΠΎΡ‚ΠΎΠ² Π²Π·ΡΡ‚ΡŒ Hazelcast.

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

Но Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‚ΠΎ всС ΠΏΡΡ‚ΡŒ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Ρ‚Π°ΠΊ расписаны, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… – самый Π»ΡƒΡ‡ΡˆΠΈΠΉ. Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ? МоТСм ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… самый популярный, ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ сравнСния, ΠΈ головная боль ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚.

Находим Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Π·ΠΎΡ€, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ наши 5 систСм.

Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Π—Π΄Π΅ΡΡŒ ΠΎΠ½ΠΈ отсортированы: Π½Π°Π²Π΅Ρ€Ρ…Ρƒ Redis, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ мСстС β€” Hazelcast, Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Tarantool ΠΈ Ignite, EhCache ΠΊΠ°ΠΊ Π±Ρ‹Π», Ρ‚Π°ΠΊ ΠΈ остаСтся.

Но посмотрим Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ расчСта: ссылки Π½Π° вСбсайты, ΠΎΠ±Ρ‰ΠΈΠΉ интСрСс ΠΊ систСмС, job offers β€” Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ! Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ мСня ΡƒΠΏΠ°Π΄Π΅Ρ‚ систСма, я скаТу: «НСт, ΠΎΠ½Π° ΠΆΠ΅ надСТная! Π’ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ работС…». Π’Π°ΠΊΠΎΠ΅ простоС сравнСниС Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚.

ВсС эти систСмы β€” Π½Π΅ просто систСмы для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π£ Π½ΠΈΡ… Π΅Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, Π² Ρ‚ΠΎΠΌ числС – ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π° Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚: ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Π΅Ρ‚ Π½Π° сСрвСр, Ρ‚Π°ΠΌ выполняСтся, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ возвращаСтся. И ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ систСму для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ… Π½Π΅ Ρ‚Π°ΠΊ-Ρ‚ΠΎ часто ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π½Π΅ сдаСмся, Π½Π°ΠΉΠ΄Π΅ΠΌ прямоС сравнСниС систСм. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π΄Π²Π° Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° β€” Redis ΠΈ Hazelcast. Нас интСрСсуСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΏΠΎ этому ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ ΠΈΡ… ΠΈ сравним.

Hz vs Redis

Находим Ρ‚Π°ΠΊΠΎΠ΅ сравнСниС:
Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Π‘ΠΈΠ½ΠΈΠΉ β€” это Redis, красный Hazelcast. Hazelcast Π²Π΅Π·Π΄Π΅ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚, ΠΈ этому Π΄Π°Π½ΠΎ обоснованиС: ΠΎΠ½ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ, высоко ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со своСй ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠ΅ΠΉ, поэтому Π½Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. А Redis β€” ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ, ΠΎΡ‚ соврСмСнных многоядСрных CPU ΠΎΠ½ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π½Π΅ Π±Π΅Ρ€Π΅Ρ‚. Π£ Hazelcast асинхронноС I/O, Ρƒ Redis-Jedis β€” Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ socket’ы. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Hazelcast ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Π° Redis ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° тСкст, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ нСэффСктивный.

На всякий случай обратимся ΠΊ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΌΡƒ источнику сравнСния. Π§Ρ‚ΠΎ ΠΎΠ½ Π½Π°ΠΌ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚?

Redis vs Hz

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ сравнСниС:
Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Π—Π΄Π΅ΡΡŒ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, красный β€” это Redis. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Redis ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Ρƒ Hazelcast. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ сравнСнии Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π» Hazelcast, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” Redis. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ объяснили, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ сравнСнии Π²Ρ‹ΠΈΠ³Ρ€Π°Π» Hazelcast.

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Ρ‹Π» фактичСски подтасован: Redis взяли Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ΅, Π° Hazelcast Π·Π°Ρ‚ΠΎΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ тСстовый случай. Π’ΠΎΠ³Π΄Π° получаСтся: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΠΈΠΊΠΎΠΌΡƒ нСльзя Π²Π΅Ρ€ΠΈΡ‚ΡŒ, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ всС-Ρ‚Π°ΠΊΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ систСму, Π½Π°ΠΌ Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Π­Ρ‚ΠΈ настройки Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя дСсятки, ΠΏΠΎΡ‡Ρ‚ΠΈ сотни ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ВрясСм Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒ

И вСсь процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ сСйчас ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»ΠΈ, я ΠΌΠΎΠ³Ρƒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΎΠΉ «ВрясСм Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒΒ». Π’ΠΎ Π΅ΡΡ‚ΡŒ, сСйчас ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, сСйчас Π³Π»Π°Π²Π½ΠΎΠ΅ β€” ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ stackoverflow. И Ρƒ мСня Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΅ΡΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, профСссионал, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² критичСскиС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

Π§Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚? Он Π²ΠΈΠ΄ΠΈΡ‚ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΡˆΡ‚ΡƒΠΊΠΎΠ²ΠΈΠ½Ρƒ, Π²ΠΈΠ΄ΠΈΡ‚ stack trace, Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ слова(ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ β€” это Π΅Π³ΠΎ экспСртиза Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅), ΠΈΡ‰Π΅Ρ‚ Π² Π³ΡƒΠ³Π»Π΅, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ stackoverflow срСди ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². НС читая, Π½Π΅ Π²Π΄ΡƒΠΌΡ‹Π²Π°ΡΡΡŒ, срСди ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° вопрос β€” ΠΎΠ½ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΈ Ρ‚ΠΎΒ» (Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚ β€” это Π΅Π³ΠΎ Ρ‚Π°Π»Π°Π½Ρ‚, Ρ‚ΠΊ Π½Π΅ всСгда это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собрал большС Π»Π°ΠΉΠΊΠΎΠ²), примСняСт, смотрит: Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ помСнялось, Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Если Π½Π΅ помСнялось β€” ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ. И повторяСм запуск-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ-поиск. И Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ способом ΠΎΠ½ добиваСтся Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Он Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ, ΠΎΠ½ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ сдСлал, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ. Но! Π­Ρ‚Π° Π·Π°Ρ€Π°Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. И Β«ΠΏΠΎΠΆΠ°Ρ€ ΠΏΠΎΡ‚ΡƒΡˆΠ΅Π½Β». Π’ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ разбираСмся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлали. Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ β€” это Π½Π° порядок Π»Π΅Π³Ρ‡Π΅. И Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ экономит врСмя.

Π’ΠΎΡ‚ этот способ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Когда-Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ популярно ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ парусник Π² Π±ΡƒΡ‚Ρ‹Π»ΠΊΠ΅. ΠŸΡ€ΠΈ этом парусник большой ΠΈ Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΉ, Π° Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎ Ρƒ Π±ΡƒΡ‚Ρ‹Π»ΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ·Π΅Π½ΡŒΠΊΠΎΠ΅, Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΡ€ΠΎΠΏΠΈΡ…Π½ΡƒΡ‚ΡŒ нСльзя. Как Π΅Π³ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ?

Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΡ‡Π΅Π½ΡŒ быстрый ΠΈ ΠΎΡ‡Π΅Π½ΡŒ эффСктивный.

ΠšΠΎΡ€Π°Π±Π»ΡŒ состоит ΠΈΠ· ΠΊΡƒΡ‡ΠΈ ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ: ΠΏΠ°Π»ΠΎΡ‡Π΅ΠΊ, Π²Π΅Ρ€Π΅Π²ΠΎΡ‡Π΅ΠΊ, парусов, клСя. ВсС это ΠΊΠ»Π°Π΄Π΅ΠΌ Π² Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒ.
Π‘Π΅Ρ€Π΅ΠΌ Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒ двумя Ρ€ΡƒΠΊΠ°ΠΌΠΈ, ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ трясти. ΠœΡ‹ Π΅Π΅ трясСм-трясСм. И ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ – получаСтся полная фигня, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Но ΠΈΠ½ΠΎΠ³Π΄Π°. Иногда получаСтся ΠΊΠΎΡ€Π°Π±Π»ΡŒ! Π’ΠΎΡ‡Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΊΠΎΡ€Π°Π±Π»ΡŒ.

ΠœΡ‹ это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ: Β«Π‘Π΅Ρ€Π΅Π³Π°, видишь!?Β». И Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ·Π΄Π°Π»Π΅ΠΊΠ° – ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΊΠΎΡ€Π°Π±Π»ΡŒ. Но дальшС это ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСльзя.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ способ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ рСбята Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ Ρ…Π°ΠΊΠ΅Ρ€Ρ‹.

Π”Π°Π» Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΠ°Ρ€Π½ΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΎΠ½ всС сдСлал ΠΈ ΡƒΡˆΠ΅Π». И ΡΠΌΠΎΡ‚Ρ€ΠΈΡˆΡŒ – Π²Ρ€ΠΎΠ΄Π΅ сдСлано. А Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ β€” Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ΅ начинаСтся ΠΈΠ·-Π·Π° нСго… Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ успСл Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚Π±Π΅ΠΆΠ°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ рСбята, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΡ‚Ρ‹Π»ΠΊΠΈ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Ρ‚Π°ΠΊ: Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ½Ρ‹ΡˆΠΊΠΎ – стСкло изгибаСтся. И Π½Π΅ совсСм понятно, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΎΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π’ΠΎΠ³Π΄Π° Β«Ρ…Π°ΠΊΠ΅Ρ€Ρ‹Β» ΡΠΏΠΈΠ»ΠΈΠ²Π°ΡŽΡ‚ это Π΄ΠΎΠ½Ρ‹ΡˆΠΊΠΎ, Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΡƒΠ΄Π° ΠΊΠΎΡ€Π°Π±Π»ΡŒ, Π΄ΠΎΠ½Ρ‹ΡˆΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΊΠ»Π΅ΠΈΠ²Π°ΡŽΡ‚ Π·Π°Π½ΠΎΠ²ΠΎ, ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π°Π΄ΠΎ.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния постановки Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Но Π²ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΡ€Π°Π±Π»Π΅ΠΉ: для Ρ‡Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ этот ΠΊΠΎΡ€Π°Π±Π»ΡŒ, ΠΊΠΎΠΌΡƒ ΠΎΠ½ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½? Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ½ Π½ΠΈΠΊΠ°ΠΊΡƒΡŽ Π½Π΅ нСсСт. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΡ€Π°Π±Π»ΠΈ β€” это ΠΏΠΎΠ΄Π°Ρ€ΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ высокопоставлСнным людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ставят Π΅Π³ΠΎ Π½Π° ΠΏΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π½Π°Π΄ собой, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ символ, ΠΊΠ°ΠΊ Π·Π½Π°ΠΊ. И Π²ΠΎΡ‚ Ссли Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, руководитСля ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ бизнСса ΠΈΠ»ΠΈ высокопоставлСнного Ρ‡ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°, ΠΊΠ°ΠΊ Ρ„Π»Π°Π³ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ такая Ρ…Π°Π»Ρ‚ΡƒΡ€Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ спилСно Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎ? Π›ΡƒΡ‡ΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΎΠ½ ΠΎΠ± этом Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚. Π’Π°ΠΊ, Π° ΠΊΠ°ΠΊ ΠΆΠ΅ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ эти ΠΊΠΎΡ€Π°Π±Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ?

ЕдинствСнноС мСсто, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ нСльзя ΠΏΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ, это корпус. И корпус корабля ΠΊΠ°ΠΊ Ρ€Π°Π· Π² Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚. Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΡ€Π°Π±Π»ΡŒ собираСтся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π±ΡƒΡ‚Ρ‹Π»ΠΊΠΈ. Но это Π½Π΅ просто ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΡ€Π°Π±Π»ΡŒ, это настоящСС ΡŽΠ²Π΅Π»ΠΈΡ€Π½ΠΎΠ΅ рСмСсло. Π’ составныС части Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Ρ‹Ρ‡Π°ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡ… ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ. НапримСр, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ паруса, Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ заносятся Π²Π½ΡƒΡ‚Ρ€ΡŒ, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΈΠ½Ρ†Π΅Ρ‚Π° ΠΎΡ‡Π΅Π½ΡŒ ΡŽΠ²Π΅Π»ΠΈΡ€Π½ΠΎ, Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΈΡ… ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‚. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ искусства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ с чистой ΡΠΎΠ²Π΅ΡΡ‚ΡŒΡŽ ΠΈ Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ.

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π·Π°Π΄Π°Ρ‡Π΅ Π²Ρ‹Π±ΠΎΡ€Π° нашСго сСрвСра ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ этот способ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ? Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· всСх систСм, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” Π½Π΅ трясти Π±ΡƒΡ‚Ρ‹Π»ΠΊΡƒ, Π½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, Π° ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π² Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ систСмы.

Π“Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ bottle-neck

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

Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Если систСма распрСдСлСнная, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ нСсколько сСрвСров (6). Допустим, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ (ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅, Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ). Если сСрвСры Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ…, Π·Π½Π°Ρ‡ΠΈΡ‚, Π½Π° Π½ΠΈΡ… всСх крутится Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти ΡƒΠ·Π»Ρ‹ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ кластСр ΠΈ Π² случаС Ρ€Π°Π·Ρ€Ρ‹Π²Π° – соСдинялись, ΡƒΠ·Π½Π°Π²Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Π•Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ΄-Π»ΠΎΠ³ΠΈΠΊΠ° (2), которая собствСнно ΠΏΡ€ΠΎ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ этим ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ API Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ (1) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этой ΠΆΠ΅ JVM, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎ сСти. Π›ΠΎΠ³ΠΈΠΊΠ°, рСализованная Π²Π½ΡƒΡ‚Ρ€ΠΈ – это Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² кСшС ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Ρ‹ΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ. Для хранСния кСша ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ (3), Π½ΠΎ Ссли потрСбуСтся, Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ Π½Π° дискС ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ (4).

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Π² ΠΊΠ°ΠΊΠΈΡ… частях Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°. БобствСнно, Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π±ΡƒΠ΄ΡƒΡ‚ каТдая стрСлочка ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π». Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтским ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ api, Ссли это сСтСвоС взаимодСйствиС, просСданиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… самого api β€” ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ€Π°Π²ΡˆΠΈΡΡŒ со слоТной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΏΠ΅Ρ€Π΅Ρ‚ΡŒΡΡ Π² CPU. И Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ± Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π΅ гоняла ΠΏΠ°ΠΌΡΡ‚ΡŒ лишний Ρ€Π°Π·. И остаСтся взаимодСйствиС с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой – Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ это ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ / Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ / ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Π”Π°Π»ΡŒΡˆΠ΅ взаимодСйствиС с кластСром. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π² этой ΠΆΠ΅ систСмС, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Π½Π΅ΠΌΡƒ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ сСриализации Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ кластСром.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, с ΠΎΠ΄Π½ΠΎΠΉ стороны – ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Β«ΠΊΠ°ΠΊΠΈΠ΅ ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡΒ» Π² кСш-систСмС ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запросов ΠΎΡ‚ нашСго ΠΊΠΎΠ΄Π°, ΠΈ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны – ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΊΠΈΠ½ΡƒΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈ сколько запросов наш ΠΊΠΎΠ΄ ΠΊ этой систСмС сгСнСрируСт. Π­Ρ‚ΠΎΠ³ΠΎ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π·Π²Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ – ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ систСму ΠΏΠΎΠ΄ наш Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования.

Hazelcast

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ списку. НапримСр, Hazelcast.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ/Π²Π·ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Hazelcast, клиСнтский ΠΊΠΎΠ΄ обращаСтся (1) ΠΊ api. Hz позволяСт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр ΠΊΠ°ΠΊ embedded, ΠΈ Π² этом случаС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ api – это Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ JVM, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ бСсплатно.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π² (2), Hz опираСтся Π½Π° Ρ…Π΅Ρˆ ΠΎΡ‚ Π±Π°ΠΉΡ‚-массива сСриализованного ΠΊΠ»ΡŽΡ‡Π° – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, сСриализация ΠΊΠ»ΡŽΡ‡Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π² любом случаС. Π­Ρ‚ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΉ overhead для Hz.
Eviction-стратСгии Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ для особых случаСв – ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ свои. Π—Π° эту Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (4) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ. ВзаимодСйствиС (5) для embedded ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π² кластСрС (6) – Π΄Π°, ΠΎΠ½ Π΅ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ отказоустойчивости Ρ†Π΅Π½ΠΎΠΉ скорости. Π‘Π½ΠΈΠ·ΠΈΡ‚ΡŒ Ρ†Π΅Π½Ρƒ позволяСт Hz-Ρ„ΠΈΡ‡Π° Near-cache – Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½ΠΎΠ΄ кластСра Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ‚Π°ΠΊΠΈΡ… условиях ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости?

НапримСр, Ρ‡Ρ‚ΠΎΠ± ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ сСриализации ΠΊΠ»ΡŽΡ‡Π° Π² (2) – ΠΏΠΎΠ²Π΅Ρ€Ρ… Hazelcast ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ кСш, для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ горячих Π΄Π°Π½Π½Ρ‹Ρ…. Π’ БпортмастСр для этой Ρ†Π΅Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Caffeine.

Для ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ (6), Π² Hz ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° хранСния: IMap ΠΈ ReplicatedMap.
Как ΠΌΡ‹ Π² БпортмастСрС Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ систСму ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

Π‘Ρ‚ΠΎΠΈΡ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Hazelcast ΠΏΠΎΠΏΠ°Π» Π² стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ БпортмастСр.

Π’ 2012 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ самым ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠΈΠ»ΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ сайта, ΠΈΠΌΠ΅Π½Π½ΠΎ Hazelcast оказался ΠΏΠ΅Ρ€Π²ΠΎΠΉ ссылкой, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π΄Π°Π» поисковик. Знакомство завязалось «с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π°Β» β€” нас ΠΏΠΎΠ΄ΠΊΡƒΠΏΠΈΠ»ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всСго Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π° часа, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈ Hz Π² систСму β€” ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π». И Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π”ΠΎ ΠΊΠΎΠ½Ρ†Π° дня дописали сколько-Ρ‚ΠΎ тСстов, ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Π»ΠΈΡΡŒ. И этого запаса бодрости Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎΠ± ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ Ρ‚Π΅ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Hz ΠΏΠΎΠ΄ΠΊΠΈΠ΄Ρ‹Π²Π°Π» со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. БСйчас Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ БпортмастСр Π½Π΅Ρ‚ ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠ² для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ Hazelcast ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ.

Но Ρ‚Π°ΠΊΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ «пСрвая ссылка Π² поисковикС» ΠΈ «быстро собрали HelloWorldΒ» β€” это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ» Π²Ρ‹Π±ΠΎΡ€. НастоящиС испытания для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ систСмы Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ΄, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° этот этап стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ любой систСмы, Π² Ρ‚ΠΎΠΌ числС ΠΈ кСша. БобствСнно, Π² нашСм случаС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Hazelcast случайно, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ оказалось, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

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

Для всСх этих Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, Hazelcast, бСзусловно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.

To be continued

Но Hazelcast β€” это Π½Π΅ панацСя. Π’ 2017 Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Hazelcast для кСша Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅, просто ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Π΄ΠΎΠ±Ρ€ΠΎΠ΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. Π­Ρ‚ΠΎ сыграло ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΎΡ‡Π΅Π½ΡŒ Π·Π»ΠΎΠΉ ΡˆΡƒΡ‚ΠΊΠ΅, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ оказались Π² слоТной ситуации ΠΈ «гСроичСски» Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈΡΡŒ ΠΈΠ· Π½Π΅Π΅ 60 Π΄Π½Π΅ΠΉ. Но ΠΎΠ± этом, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части.

А пока… Happy New Code!

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