ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Highload со ElasticSearch

Π—Π΄Ρ€Π°Π²ΠΎ, Π₯Π°Π±Ρ€! Јас сС Π²ΠΈΠΊΠ°ΠΌ Максим ВасилиСв, Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ ΠΊΠ°ΠΊΠΎ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π°Ρ€ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ Π²ΠΎ FINCH. ДСнСс Π±ΠΈ сакал Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ, ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ElasticSearch, успСавмС Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ 15 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π±Π°Ρ€Π°ΡšΠ° Π·Π° 6 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ ΠΈ Π΄Π° Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π΄Π½Π΅Π²Π½ΠΎΡ‚ΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° страницата Π½Π° Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. Π—Π° ΠΆΠ°Π», ќС ΠΌΠΎΡ€Π°ΠΌΠ΅ Π±Π΅Π· имиња, бидСјќи ΠΈΠΌΠ°ΠΌΠ΅ НДА, сС Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° содрТината Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° Π½Π΅ΠΌΠ° Π΄Π° настрада ΠΎΠ΄ ΠΎΠ²Π°. Π”Π° ΠΎΠ΄ΠΈΠΌΠ΅.

Како Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚

На Π½Π°ΡˆΠΈΠΎΡ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π΅Π½ состав создавамС услуги ΠΊΠΎΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ функционалност Π½Π° Π²Π΅Π±-страницитС ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½Π°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. ΠžΠΏΡˆΡ‚Π°Ρ‚Π° структура ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Π½Π° Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚:

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Highload со ElasticSearch

Π’ΠΎ процСсот Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ трансакции: Π½Π°Π±Π°Π²ΠΊΠΈ, плаќања, трансакции со салда Π½Π° корисници, Π·Π° ΠΊΠΎΠΈ складирамС ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ, Π° исто Ρ‚Π°ΠΊΠ° Π³ΠΈ ΡƒΠ²Π΅Π·ΡƒΠ²Π°ΠΌΠ΅ ΠΈ ΠΈΠ·Π²Π΅Π·ΡƒΠ²Π°ΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ систСми.

Има ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ процСси ΠΊΠΎΠ³Π° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ ΠΈ Π³ΠΈ прСнСсувамС Π΄ΠΎ корисникот. ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ ΠΈ процСси Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° со плаќања ΠΈ бонус ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.

ΠšΡ€Π°Ρ‚ΠΊΠ° ΠΏΠΎΠ·Π°Π΄ΠΈΠ½Π°

ΠŸΡ€Π²ΠΈΡ‡Π½ΠΎ, користСвмС PostgreSQL ΠΊΠ°ΠΊΠΎ СдинствСно ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. НСговитС прСдности сС стандардни Π·Π° DBMS: присуство Π½Π° трансакции, Ρ€Π°Π·Π²ΠΈΠ΅Π½ јазик Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°; Π²ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ˜Π° со Π΄ΠΎΠ±Ρ€ΠΈ пСрформанси Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡƒΠ²Π°ΡˆΠ΅ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Π“ΠΈ складиравмС апсолутно ситС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ Postgres: ΠΎΠ΄ трансакции Π΄ΠΎ вСсти. Но, Ρ€Π°ΡΡ‚Π΅ΡˆΠ΅ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° корисници, Π° со Ρ‚ΠΎΠ° ΠΈ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π±Π°Ρ€Π°ΡšΠ°.

Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Π³ΠΎΠ΄ΠΈΡˆΠ½ΠΈΠΎΡ‚ Π±Ρ€ΠΎΡ˜ Π½Π° сСсии Π²ΠΎ 2017 Π³ΠΎΠ΄ΠΈΠ½Π° само Π½Π° дСсктоп страницата бСшС 131 ΠΌΠΈΠ»ΠΈΠΎΠ½. Π’ΠΎ 2018 Π³ΠΎΠ΄ΠΈΠ½Π° - 125 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. Π’ΠΎ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ 130 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΡƒΡˆΡ‚Π΅ 100-200 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»Π½Π°Ρ‚Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° страницата ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½Π°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, ΠΈ Π²ΠΈΠ΅ ќС Π΄ΠΎΠ±ΠΈΠ΅ колосалСн Π±Ρ€ΠΎΡ˜ Π±Π°Ρ€Π°ΡšΠ°.

Како ΡˆΡ‚ΠΎ Ρ€Π°ΡΡ‚Π΅ΡˆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚, Postgres повСќС Π½Π΅ моТСшС Π΄Π° сС справи со ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ; Π½Π΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ - сС појавија Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°, Π·Π° ΠΊΠΎΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° создадСмС Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ Π±Ρ€ΠΎΡ˜ индСкси.

Π‘Ρ„Π°Ρ‚ΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠΎΠΈ ќС Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π°Ρ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ ΠΈ ќС Π³ΠΎ отстранат Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ ΠΎΠ΄ PostgreSQL. Elasticsearch ΠΈ MongoDB Π±Π΅Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ. Π’Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Π·Π°Π³ΡƒΠ±ΠΈ Π½Π° слСднитС ΠΏΠΎΠ΅Π½ΠΈ:

  1. Π‘Π°Π²Π½Π° Π±Ρ€Π·ΠΈΠ½Π° Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€Π°ΡšΠ΅ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ растС ΠΎΠ±Π΅ΠΌΠΎΡ‚ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ индСкситС. Π‘ΠΎ Elastic, Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π΅ зависи ΠΎΠ΄ ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.
  2. НСма ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° цСлосСн тСкст

Π’Π°ΠΊΠ° ја ΠΈΠ·Π±Ρ€Π°Π²ΠΌΠ΅ Еластик Π·Π° сСбС ΠΈ сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠ²ΠΌΠ΅ Π·Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π°.

ΠŸΡ€Π΅Ρ„Ρ€Π»Π΅Ρ‚Π΅ сС Π½Π° Еластик

1. Ја Π·Π°ΠΏΠΎΡ‡Π½Π°Π²ΠΌΠ΅ Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° со услуга Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈ мСста. ΠΠ°ΡˆΠΈΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠΌΠ° Π²ΠΊΡƒΠΏΠ½ΠΎ ΠΎΠΊΠΎΠ»Ρƒ 70 ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈ мСста, Π° Π²ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅ сС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π²ΠΈΠ΄ΠΎΠ²ΠΈ Π½Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π΅Π±-страницата ΠΈ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°:

  • ΠŸΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ тСкст ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚
  • Π“Π΅ΠΎΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ Π΄Π°Π΄Π΅Π½ радиус ΠΎΠ΄ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ корисникот сака Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠΎΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈ мСста сС Π½Π°Ρ˜Π±Π»ΠΈΡΠΊΡƒ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ Π΄ΠΎΠΌ.
  • ΠŸΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎ Π΄Π°Π΄Π΅Π½ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ - корисникот ΠΎΡ†Ρ€Ρ‚ΡƒΠ²Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Π½Π° ΠΌΠ°ΠΏΠ°Ρ‚Π° ΠΈ ΠΌΡƒ сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ ситС Ρ‚ΠΎΡ‡ΠΊΠΈ Π²ΠΎ овој радиус.
  • ΠŸΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠΏΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ. ΠŸΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈΡ‚Π΅ мСста сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ Π΅Π΄Π½ΠΈ ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎ асортиман

Π—Π±ΠΎΡ€ΡƒΠ²Π°Ρ˜ΡœΠΈ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°, Π²ΠΎ Postgres ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡ€ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Π·Π° ΠΌΠ°ΠΏΠ°Ρ‚Π° ΠΈ Π·Π° вСститС, Π° Π²ΠΎ Elastic ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Snapshots ΠΎΠ΄ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π€Π°ΠΊΡ‚ Π΅ Π΄Π΅ΠΊΠ° Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Postgres Π½Π΅ моТСшС Π΄Π° сС справи со ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ситС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡƒΠΌΠΈ. НС само ΡˆΡ‚ΠΎ имашС ΠΌΠ½ΠΎΠ³Ρƒ индСкси, Ρ‚ΠΈΠ΅ исто Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Π° Π΄Π° сС ΠΏΡ€Π΅ΠΊΠ»ΠΎΠΏΡƒΠ²Π°Π°Ρ‚, ΠΏΠ° распорСдувачот Π½Π° Postgres бСшС ΠΈΠ·Π³ΡƒΠ±Π΅Π½ ΠΈ Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡˆΠ΅ кој индСкс Π΄Π° Π³ΠΎ користи.

2. Π‘Π»Π΅Π΄Π½Π° Π½Π° Ρ€Π΅Π΄ бСшС Π΄Π΅Π»ΠΎΡ‚ Π·Π° вСсти. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π½Π° страницата сСкој Π΄Π΅Π½ Π·Π° корисникот Π΄Π° Π½Π΅ сС ΠΈΠ·Π³ΡƒΠ±ΠΈ Π²ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΏΠΎΠ΄Ρ€Π΅Π΄Π°Ρ‚ ΠΏΡ€Π΅Π΄ Π΄Π° сС ΠΈΠ·Π΄Π°Π΄Π°Ρ‚. Ова Π΅ ΠΎΠ½Π° Π·Π° ΡˆΡ‚ΠΎ Π΅ ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ: Π½Π° страницата ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°Ρ‚Π΅ ΠΏΠΎ ΡΠΎΠ²ΠΏΠ°Ρ“Π°ΡšΠ΅ Π½Π° тСкстот, Π° Π²ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ, бидСјќи Ρ‚ΠΈΠ΅ сС Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΈ ΠΏΡ€Π΅ΠΊΡƒ Elastic.

3. ΠŸΠΎΡ‚ΠΎΠ° ја прСмСстивмС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° трансакциитС. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ΠΊΡƒΠΏΠ°Ρ‚ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ Π½Π° страницата ΠΈ Π΄Π° учСствуваат Π²ΠΎ Π½Π°Π³Ρ€Π°Π΄Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΡƒΠ²Π°ΡšΠ΅. По Π²Π°ΠΊΠ²ΠΈΡ‚Π΅ Π½Π°Π±Π°Π²ΠΊΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, особСно Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²ΠΈΠΊΠ΅Π½Π΄ΠΈΡ‚Π΅ ΠΈ ΠΏΡ€Π°Π·Π½ΠΈΡ†ΠΈΡ‚Π΅. Π—Π° спорСдба, Π°ΠΊΠΎ Π²ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ Π΄Π΅Π½ΠΎΠ²ΠΈ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΊΡƒΠΏΡƒΠ²Π°ΡšΠ° Π΅ Π½Π΅ΠΊΠ°Π΄Π΅ ΠΎΠΊΠΎΠ»Ρƒ 1,5-2 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π° ΠΏΡ€Π°Π·Π½ΠΈΡ†ΠΈ Π±Ρ€ΠΎΡ˜ΠΊΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° достигнС 53 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ.

Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ - корисницитС Π½Π΅ сакаат Π΄Π° Ρ‡Π΅ΠΊΠ°Π°Ρ‚ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π΄Π΅Π½Π° Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ. НС постои Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС постигнат Ρ‚Π°ΠΊΠ²ΠΈ Ρ€ΠΎΠΊΠΎΠ²ΠΈ ΠΏΡ€Π΅ΠΊΡƒ Postgres - чСсто Π΄ΠΎΠ±ΠΈΠ²Π°Π²ΠΌΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, Π° Π΄ΠΎΠ΄Π΅ΠΊΠ° Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Π²ΠΌΠ΅ ситС Π±Π°Ρ€Π°ΡšΠ°, корисницитС Π½Π΅ ΠΌΠΎΠΆΠ΅Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°Ρ‚ Π΄Π°Π»ΠΈ Π΄ΠΎΠ±ΠΈΠ»Π΅ Π½Π°Π³Ρ€Π°Π΄ΠΈ ΠΈΠ»ΠΈ Π½Π΅. Ова Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½ΠΎ Π·Π° бизнис, ΠΏΠ° ја ΠΏΡ€Π΅Ρ„Ρ€Π»ΠΈΠ²ΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π²ΠΎ Elasticsearch.

ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚

Π‘Π΅Π³Π° Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ°Ρ‚Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ Π²Ρ€Π· основа Π½Π° настани, спорСд слСднивС услови:

  1. ΠŸΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈ мСста. Π¨Ρ‚ΠΎΠΌ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ ΠΈΠ·Π²ΠΎΡ€, вСднаш Π·Π°ΠΏΠΎΡ‡Π½ΡƒΠ²Π°ΠΌΠ΅ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅.
  2. ВСсти. Π¨Ρ‚ΠΎΠΌ Π±ΠΈΠ»ΠΎ која вСст Π΅ ΡƒΡ€Π΅Π΄Π΅Π½Π° Π½Π° страницата, Ρ‚Π°Π° автоматски сС ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ Еластик.

Π’ΡƒΠΊΠ° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ€Π΅Π΄ΠΈ Π΄Π° сС спомСнат прСдноститС Π½Π° Еластик. Π’ΠΎ Postgres, ΠΊΠΎΠ³Π° ΠΈΡΠΏΡ€Π°ΡœΠ°Ρ‚Π΅ Π±Π°Ρ€Π°ΡšΠ΅, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΠΎΡ‡Π΅ΠΊΠ°Ρ‚Π΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° искрСно Π½Π΅ Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ ситС записи. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° испратитС 10 илјади записи Π½Π° Еластик ΠΈ вСднаш Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ со Ρ€Π°Π±ΠΎΡ‚Π°, Π±Π΅Π· Π΄Π° Ρ‡Π΅ΠΊΠ°Ρ‚Π΅ записитС Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ дистрибуирани Π΄ΠΎ ситС Shards. Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½Π΅ΠΊΠΎΠΈ Shard ΠΈΠ»ΠΈ Replica ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ Π²ΠΈΠ΄Π°Ρ‚ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ вСднаш, Π½ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ наскоро сè ќС Π±ΠΈΠ΄Π΅ достапно.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°

ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ 2 Π½Π°Ρ‡ΠΈΠ½ΠΈ Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‚Π΅ со Elastic:

  1. ΠŸΡ€Π΅ΠΊΡƒ ΠΌΠ°Ρ˜Ρ‡ΠΈΠ½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€Π΅ΠΊΡƒ TCP. Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΎΡ‚ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» постСпСно ΠΈΠ·ΡƒΠΌΠΈΡ€Π°: повСќС Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½, Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° синтакса Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π½Π΅Π·Π³ΠΎΠ΄Π½Π°. Π—Π°Ρ‚ΠΎΠ°, Π½ΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ Π½Π΅ Π³ΠΎ користимС ΠΈ сС ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π°ΠΌΠ΅ цСлосно Π΄Π° Π³ΠΎ Π½Π°ΠΏΡƒΡˆΡ‚ΠΈΠΌΠ΅.
  2. ΠŸΡ€Π΅ΠΊΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ HTTP Π²ΠΎ кој ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ користитС ΠΈ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° JSON ΠΈ синтаксата Π½Π° Lucene. ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΠΎΡ‚ Π΅ тСкстуалниот ΠΌΠΎΡ‚ΠΎΡ€ ΡˆΡ‚ΠΎ Π³ΠΎ користи Elastic. Π’ΠΎ ΠΎΠ²Π°Π° ΠΎΠΏΡ†ΠΈΡ˜Π°, ја Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ моТноста Π·Π° Batch ΠΏΡ€Π΅ΠΊΡƒ JSON Π±Π°Ρ€Π°ΡšΠ° ΠΏΡ€Π΅ΠΊΡƒ HTTP. Ова Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° ΡˆΡ‚ΠΎ сС ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π°ΠΌΠ΅ Π΄Π° ја искористимС.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ HTTP, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° користимС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ асинхрона ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ HTTP. МоТСмС Π΄Π° Π³ΠΈ искористимС прСдноститС Π½Π° Batch ΠΈ асинхроното API, ΠΊΠΎΠ΅ Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π΄Π°Π²Π° високи пСрформанси, ΡˆΡ‚ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π²ΠΎ Π΄Π΅Π½ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠ° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π° (повСќС Π·Π° ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ»Ρƒ)

НСкои Π±Ρ€ΠΎΡ˜ΠΊΠΈ Π·Π° спорСдба:

  • Π—Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°ΡšΠ΅ Π½Π° корисници ΠΊΠΎΠΈ Π΄ΠΎΠ±ΠΈΠ»Π΅ Π½Π°Π³Ρ€Π°Π΄ΠΈ Π²ΠΎ Postgres Π²ΠΎ 20 нишки Π±Π΅Π· Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ°: 460713 записи Π·Π° 42 сСкунди
  • ЕластичСн + Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° 10 нишки + ΡΠ΅Ρ€ΠΈΡ˜Π° Π·Π° 1000 Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ: 596749 записи Π·Π° 11 сСкунди
  • ЕластичСн + Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° 10 нишки + ΡΠ΅Ρ€ΠΈΡ˜Π° Π·Π° 1000 Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ: 23801684 записи Π·Π° 4 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ

Π‘Π΅Π³Π° напишавмС ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ Π½Π° Π±Π°Ρ€Π°ΡšΠ° Π·Π° HTTP кој Π³ΠΎ Π³Ρ€Π°Π΄ΠΈ JSON ΠΊΠ°ΠΊΠΎ Batch/non-Batch ΠΈ Π³ΠΎ ΠΈΡΠΏΡ€Π°ΡœΠ° ΠΏΡ€Π΅ΠΊΡƒ кој Π±ΠΈΠ»ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ HTTP, Π±Π΅Π· ΠΎΠ³Π»Π΅Π΄ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π° ΠΈΡΠΏΡ€Π°ΡœΠ°Ρ‚Π΅ Π±Π°Ρ€Π°ΡšΠ° синхроно ΠΈΠ»ΠΈ асинхроно.

Π’ΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ сè ΡƒΡˆΡ‚Π΅ Π³ΠΎ користимС ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈΠΎΡ‚ транспортСн ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½ΠΎ ΠΎΠ²Π° Π΅ само ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ Π½Π° ΠΈΡ‚Π½ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ€Π°ΡšΠ΅. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ сопствСн ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ Π²Ρ€Π· основа Π½Π° Spring WebClient, сС користи Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Highload со ElasticSearch

Π“ΠΎΠ»Π΅ΠΌΠ° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π°

Π•Π΄Π½Π°Ρˆ годишно, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ домаќин Π½Π° Π³ΠΎΠ»Π΅ΠΌΠ° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π° Π·Π° корисницитС - ΠΎΠ²Π° Π΅ истиот Highload, бидСјќи Π²ΠΎ ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ со дСсСтици ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ корисници истоврСмСно.

Π’ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΎ, Π²Ρ€Π²Π½ΠΈΡ‚Π΅ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ° сС случуваат Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€Π°Π·Π½ΠΈΡ†ΠΈ, Π½ΠΎ ΠΎΠ²Π°Π° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π° Π΅ Π½Π° сосСма Π΄Ρ€ΡƒΠ³ΠΎ Π½ΠΈΠ²ΠΎ. ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Π΄Π΅Π½ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄Π°Π΄ΠΎΠ²ΠΌΠ΅ 27 Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ Ρ€ΠΎΠ±Π°. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π΅ΡˆΠ΅ повСќС ΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° час, ΡˆΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° Π½Π΅ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½ΠΎΡΡ‚ΠΈ кај корисницитС. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ†ΠΈΡ‚Π΅ добија Π½Π°Π³Ρ€Π°Π΄ΠΈ Π·Π° учСство, Π½ΠΎ стана јасно Π΄Π΅ΠΊΠ° процСсот Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π·Π°Π±Ρ€Π·Π°.

На ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° 2019 Π³ΠΎΠ΄ΠΈΠ½Π°, Ρ€Π΅ΡˆΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ ElasticSearch. Π¦Π΅Π»Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ Elastic ΠΈ Π½ΠΈΠ²Π½ΠΎ ΠΈΠ·Π»Π΅Π³ΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎ API Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½Π°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ Π²Π΅Π±-страница. Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ°, слСдната Π³ΠΎΠ΄ΠΈΠ½Π° Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π°Ρ‚Π° ΡˆΡ‚ΠΎ ја ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠ²ΠΌΠ΅ 15 записи Π·Π° 131 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ.

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π²ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ Π»ΡƒΡ“Π΅ ΠΊΠΎΠΈ сакаат Π΄Π° Π³ΠΎ ΠΊΡƒΠΏΠ°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΎΡ‚ ΠΈ Π΄Π° учСствуваат Π²ΠΎ Π½Π°Π³Ρ€Π°Π΄Π½Π°Ρ‚Π° ΠΈΠ³Ρ€Π°, ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΌΠ΅Ρ€ΠΊΠ°. Π‘Π΅Π³Π° ΠΈΡΠΏΡ€Π°ΡœΠ°ΠΌΠ΅ Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π΄ΠΎ Elastic, Π½ΠΎ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Π³ΠΈ прСнСсСмС Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° ΠΈΠ·ΠΌΠΈΠ½Π°Ρ‚ΠΈΡ‚Π΅ мСсСци Π²ΠΎ Postgres ΠΊΠ°ΠΊΠΎ Ρ‚Ρ€Π°Ρ˜Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅. Π—Π° Π΄Π° Π½Π΅ сС Π·Π°Ρ‚Π½Π΅ Еластичниот индСкс, кој исто Ρ‚Π°ΠΊΠ° ΠΈΠΌΠ° свои ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°.

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ/Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ

Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² ситС услуги ΡˆΡ‚ΠΎ Π³ΠΈ сакавмС Π³ΠΈ ΠΏΡ€Π΅Ρ„Ρ€Π»ΠΈΠ²ΠΌΠ΅ Π½Π° Еластик ΠΈ засСга ΠΏΠ°ΡƒΠ·ΠΈΡ€Π°Π²ΠΌΠ΅. Π‘Π΅Π³Π° Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ индСкс Π²ΠΎ Elastic Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° Π³Π»Π°Π²Π½ΠΎΡ‚ΠΎ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ Postgres, ΠΊΠΎΠ΅ Π³ΠΎ ΠΏΡ€Π΅Π·Π΅ΠΌΠ° корисничкото ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅.

Π’ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° прСнСсувамС услуги Π°ΠΊΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ станува ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎ ΠΈ сС ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π° Π·Π° Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π±Ρ€ΠΎΡ˜ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. Ова вСќС Π½Π΅ Π΅ Π·Π°Π΄Π°Ρ‡Π° Π·Π° Postgres.

Ако Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° цСлосСн тСкст Π²ΠΎ функционалноста ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡƒΠΌΠΈ Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅, Ρ‚ΠΎΠ³Π°Ρˆ вСќС Π·Π½Π°Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΡ€Π΅Π²Π΅Π΄Π΅ Π½Π° Elastic.

⌘⌘⌘

Π’ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌΠ΅ Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅Ρ‚ΠΎ. Ако Π²Π°ΡˆΠ°Ρ‚Π° компанија исто Ρ‚Π°ΠΊΠ° користи ElasticSearch ΠΈ ΠΈΠΌΠ° свои случаи Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°, Π²Π΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½ΠΈ. ЌС Π±ΠΈΠ΄Π΅ интСрСсно Π΄Π° сС Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π°Π²Π°Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ :)

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€