Π₯Π΅ΠΉ Π₯Π°Π±Ρ! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ°ΠΊΡΠΈΠΌ ΠΠ°ΡΠΈΠ»ΠΈΠ΅Π², ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΡΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π²ΡΠ² FINCH. ΠΠ½Π΅Ρ Π±ΠΈΡ
ΠΈΡΠΊΠ°Π» Π΄Π° Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ElasticSearch ΡΡΠΏΡΡ
ΠΌΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΠΌ 15 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° 6 ΠΌΠΈΠ½ΡΡΠΈ ΠΈ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ Π±Π΅Π· ΠΈΠΌΠ΅Π½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ NDA, Π½Π°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΡΡΡΠ°Π΄Π° ΠΎΡ ΡΠΎΠ²Π°. ΠΠ° ΡΡΡΠ³Π²Π°ΠΌΠ΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡΡ
Π Π½Π°ΡΠΈΡ Π±Π΅ΠΊΠ΅Π½Π΄ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π±ΡΠ°ΠΉΡΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. ΠΠ±ΡΠ°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ°:
Π ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ: ΠΏΠΎΠΊΡΠΏΠΊΠΈ, ΠΏΠ»Π°ΡΠ°Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π±Π°Π»Π°Π½ΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ Π²ΡΠ½ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠΌΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ»Π°ΡΠ°Π½ΠΈΡ ΠΈ Π±ΠΎΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΡΠ°ΡΠΊΠ° ΠΏΡΠ΅Π΄ΠΈΡΡΠΎΡΠΈΡ
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ PostgreSQL ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π·Π° Π‘Π£ΠΠ: Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠ°Π·Π²ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±ΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΡΠΈΡΠΎΠΊ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ; ΡΡΡΠ΅ΡΠ°Π½ΠΎ Ρ Π΄ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈ Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½ΠΈ Π·Π° Π΄ΠΎΡΡΠ° Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΈΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΌΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ Π² Postgres: ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΠΎ Π½ΠΎΠ²ΠΈΠ½ΠΈ. ΠΠΎ Π±ΡΠΎΡΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡΠ²Π°, Π° Ρ Π½Π΅Π³ΠΎ ΠΈ Π±ΡΠΎΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅.
ΠΠ° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π³ΠΎΠ΄ΠΈΡΠ½ΠΈΡΡ Π±ΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΠΏΡΠ΅Π· 2017 Π³. ΡΠ°ΠΌΠΎ Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏ ΡΠ°ΠΉΡΠ° Π΅ 131 ΠΌΠ»Π½. ΠΡΠ΅Π· 2018 Π³. - 125 ΠΌΠ»Π½. 2019 Π³. ΠΏΠ°ΠΊ 130 ΠΌΠ»Π½. ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΎΡΠ΅ 100-200 ΠΌΠ»Π½. ΠΎΡ ΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°ΠΉΡΠ° ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΈΠ΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ Π·Π°ΡΠ²ΠΊΠΈ.
Π‘ ΡΠ°Π·ΡΠ°ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Postgres ΡΠΏΡΡ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π½ΡΠΌΠ°Ρ ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ - ΠΏΠΎΡΠ²ΠΈΡ Π° ΡΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ ΠΌΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ Π±ΡΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.
Π Π°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΡΡΠ³ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΡ Π½Π°ΡΠΈΡΠ΅ Π½ΡΠΆΠ΄ΠΈ ΠΈ Π΄Π° ΡΠ²Π°Π»ΡΡ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ PostgreSQL. Elasticsearch ΠΈ MongoDB Π±ΡΡ Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΊΠ°ΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π·Π°Π³ΡΠ±ΠΈ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ:
- ΠΠ°Π²Π½Π° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π΄Π°Π½Π½ΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡΠ²Π°. Π‘ Elastic ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π΄Π°Π½Π½ΠΈ.
- ΠΠ΅Π· ΠΏΡΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎ ΡΡΡΡΠ΅Π½Π΅
Π’Π°ΠΊΠ° ΡΠ΅ ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅ Elastic Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ ΠΌΠ΅ Π·Π° ΠΏΡΠ΅Ρ ΠΎΠ΄Π°.
ΠΡΠ΅Ρ ΠΎΠ΄ ΠΊΡΠΌ Π΅Π»Π°ΡΡΠΈΡΠ΅Π½
1. ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ ΠΏΡΠ΅Ρ ΠΎΠ΄Π° ΠΎΡ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΠΎΡΠΊΠΈ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π°. ΠΠ»ΠΈΠ΅Π½ΡΡΡ Π½ΠΈ ΠΈΠΌΠ° ΠΎΠ±ΡΠΎ ΠΎΠΊΠΎΠ»ΠΎ 70 000 ΡΠΎΡΠΊΠΈ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π°, ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΠΈΠ΄Π° ΡΡΡΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΉΡΠ° ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ:
- Π’Π΅ΠΊΡΡΠΎΠ²ΠΎ ΡΡΡΡΠ΅Π½Π΅ ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° Π³ΡΠ°Π΄
- ΠΠ΅ΠΎΠ³ΡΠ°ΡΡΠΊΠΎ ΡΡΡΡΠ΅Π½Π΅ Π² Π΄Π°Π΄Π΅Π½ ΡΠ°Π΄ΠΈΡΡ ΠΎΡ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠΎΡΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈΡΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠΎΠΈ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΡΠ° Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ Π΄ΠΎΠΌΠ° ΠΌΡ.
- Π’ΡΡΡΠ΅Π½Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΊΠ²Π°Π΄ΡΠ°Ρ - ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΠ΅ΡΡΠ°Π΅ ΠΊΠ²Π°Π΄ΡΠ°Ρ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ° ΠΈ ΠΌΡ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠΎΡΠΊΠΈ Π² ΡΠΎΠ·ΠΈ ΡΠ°Π΄ΠΈΡΡ.
- Π’ΡΡΡΠ΅Π½Π΅ ΡΡΠ΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΠ»ΡΡΠΈ. Π’ΠΎΡΠΊΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄ΡΡΠ³ Π² Π°ΡΠΎΡΡΠΈΠΌΠ΅Π½ΡΠ°
ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, ΡΠΎ Π² Postgres ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΠΊΡΠΎ Π·Π° ΠΊΠ°ΡΡΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ Π·Π° Π½ΠΎΠ²ΠΈΠ½ΠΈΡΠ΅, Π° Π² Elastic Snapshots ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Postgres Π½Π΅ ΠΌΠΎΠΆΠ° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ Ρ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ ΠΏΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ. ΠΠ΅ ΡΠ°ΠΌΠΎ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΡΠ΅ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΏΠΎΠΊΡΠΈΠ²Π°Ρ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½Π° Postgres ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ ΠΈ Π½Π΅ ΡΠ°Π·Π±ΡΠ° ΠΊΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.
2. Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΠΏΠΎ ΡΠ΅Π΄ Π±Π΅ΡΠ΅ Π½ΠΎΠ²ΠΈΠ½Π°ΡΡΠΊΠΈΡΡ ΡΠ°Π·Π΄Π΅Π». ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ Π½Π° ΡΠ°ΠΉΡΠ° Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ Π² ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅. ΠΠ° ΡΠΎΠ²Π° Π΅ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ: ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΡΡΠΈΡΠ΅ Π² ΡΠ°ΠΉΡΠ° ΠΏΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΠ»ΡΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΡΡ ΡΡΠ΅Π· Elastic.
3. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°ΠΊΡΠΏΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΎΡ ΡΠ°ΠΉΡΠ° ΠΈ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΡΠ΅Π³Π»Π΅Π½Π΅ Π½Π° Π½Π°Π³ΡΠ°Π΄ΠΈ. Π‘Π»Π΅Π΄ ΡΠ°ΠΊΠΈΠ²Π° ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΡΠ΅Π· ΠΏΠΎΡΠΈΠ²Π½ΠΈΡΠ΅ Π΄Π½ΠΈ ΠΈ ΠΏΡΠ°Π·Π½ΠΈΡΠΈΡΠ΅. ΠΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π°ΠΊΠΎ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ Π΄Π½ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΠΈΡΠ΅ Π΅ Π½ΡΠΊΡΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ 1,5-2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°, ΡΠΎ ΠΏΡΠ΅Π· ΠΏΡΠ°Π·Π½ΠΈΡΠΈΡΠ΅ ΡΠΈΡΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ 53 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°.
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π²ΡΠ² Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΊΡΠ°ΡΠΊΠΈ ΡΡΠΎΠΊΠΎΠ²Π΅ - ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π΅ ΠΎΠ±ΠΈΡΠ°Ρ Π΄Π° ΡΠ°ΠΊΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π½ΠΈ. ΠΡΠΌΠ° ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠΎΠΊΠΎΠ²Π΅ ΡΡΠ΅Π· Postgres - ΡΠ΅ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΌΠ΅ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΡ Π΄Π°Π»ΠΈ ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π°Π³ΡΠ°Π΄ΠΈ ΠΈΠ»ΠΈ Π½Π΅. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΠ½ΠΎ Π·Π° Π±ΠΈΠ·Π½Π΅ΡΠ°, Π·Π°ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π² Elasticsearch.
ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡ
Π‘Π΅Π³Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ, ΡΡΠ³Π»Π°ΡΠ½ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ:
- Π’ΠΎΡΠΊΠΈ Π·Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π°. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ½ΡΠ΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ, Π²Π΅Π΄Π½Π°Π³Π° Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°.
- ΠΠΎΠ²ΠΈΠ½ΠΈ. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ Π½ΡΠΊΠΎΡ Π½ΠΎΠ²ΠΈΠ½Π° Π±ΡΠ΄Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π° Π½Π° ΡΠ°ΠΉΡΠ°, ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π½Π° Elastic.
Π’ΡΠΊ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠΏΠΎΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Elastic. Π Postgres, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅ΡΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ 10 XNUMX Π·Π°ΠΏΠΈΡΠ° Π½Π° Elastic ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Π²Π΅Π΄Π½Π°Π³Π°, Π±Π΅Π· Π΄Π° ΡΠ°ΠΊΠ°ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Shards. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½ΡΠΊΠΎΠΈ Shard ΠΈΠ»ΠΈ Replica ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π²ΠΈΠ΄ΡΡ Π΄Π°Π½Π½ΠΈΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π°, Π½ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎΡΠΎ.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ
ΠΠΌΠ° 2 Π½Π°ΡΠΈΠ½Π° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Ρ Elastic:
- Π§ΡΠ΅Π· ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠ΅Π· TCP. Π ΠΎΠ΄Π½ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΈΠ·ΡΠ΅Π·Π²Π°: Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°, ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ. ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²ΠΈΠΌ.
- Π§ΡΠ΅Π· HTTP ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ JSON Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ°ΠΊΠ° ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Lucene. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π΅ ΡΠ΅ΠΊΡΡΠΎΠ² Π΄Π²ΠΈΠ³Π°ΡΠ΅Π», ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Elastic. Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ΅Π· JSON Π·Π°ΡΠ²ΠΊΠΈ ΠΏΡΠ΅Π· HTTP. Π’ΠΎΠ²Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° HTTP ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° HTTP ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡ Batch ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈΡ API, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π² Π΄Π½ΠΈΡΠ΅ Π½Π° Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΠΏΡΠΎΠΌΠΎΡΠΈΡ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρ)
ΠΡΠΊΠΎΠΈ ΡΠΈΡΠ»Π° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅:
- ΠΠ°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Postgres bounty ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π² 20 Π½ΠΈΡΠΊΠΈ Π±Π΅Π· Π³ΡΡΠΏΠΈΡΠ°Π½Π΅: 460713 Π·Π°ΠΏΠΈΡΠ° Π·Π° 42 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
- ΠΠ»Π°ΡΡΠΈΡΠ΅Π½ + ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π° 10 Π½ΠΈΡΠΊΠΈ + ΠΏΠ°ΠΊΠ΅Ρ Π·Π° 1000 Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°: 596749 Π·Π°ΠΏΠΈΡΠ° Π·Π° 11 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
- ΠΠ»Π°ΡΡΠΈΡΠ΅Π½ + ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π° 10 Π½ΠΈΡΠΊΠΈ + ΠΏΠ°ΡΡΠΈΠ΄Π° Π·Π° 1000 Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°: 23801684 Π²Π»ΠΈΠ·Π°Π½ΠΈΡ Π·Π° 4 ΠΌΠΈΠ½ΡΡΠΈ
Π‘Π΅Π³Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° HTTP Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° JSON ΠΊΠ°ΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ / Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΏΡΠ΅Π· Π²ΡΠ΅ΠΊΠΈ HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΈΠ»ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ.
Π Π½ΡΠΊΠΎΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π²ΡΠΏΡΠΎΡ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Spring WebClient.
Π³ΠΎΠ»ΡΠΌΠ° ΠΏΡΠΎΠΌΠΎΡΠΈΡ
ΠΠ΅Π΄Π½ΡΠΆ Π³ΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π΄ΠΎΠΌΠ°ΠΊΠΈΠ½ Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΏΡΠΎΠΌΠΎΡΠΈΡ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ - ΡΠΎΠ²Π° Π΅ ΡΡΡΠΈΡΡ Highload, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΠΈΠΊΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ ΡΠ° ΠΏΠΎ ΠΏΡΠ°Π·Π½ΠΈΡΠΈΡΠ΅, Π½ΠΎ ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΌΠΎΡΠΈΡ Π΅ Π½Π° ΡΡΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎ Π½ΠΈΠ²ΠΎ. ΠΡΠ΅Π΄Ρ ΠΎΠ΄Π½Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, Π² Π΄Π΅Π½Ρ Π½Π° ΠΏΡΠΎΠΌΠΎΡΠΈΡΡΠ°, ΠΏΡΠΎΠ΄Π°Π΄ΠΎΡ ΠΌΠ΅ 27 580 890 Π΅Π΄ΠΈΠ½ΠΈΡΠΈ ΡΡΠΎΠΊΠΈ. ΠΠ°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ°Ρ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡ Π° Π½Π°Π³ΡΠ°Π΄ΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΠ΅, Π½ΠΎ ΡΡΠ°Π½Π° ΡΡΠ½ΠΎ, ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠΊΠΎΡΠΈ.
Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° 2019 Π³. ΡΠ΅ΡΠΈΡ ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ElasticSearch. Π¦ΡΠ»Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² Elastic ΠΈ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ Π² api Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π±ΡΠ°ΠΉΡ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΡΠ΅Π· ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΡ ΠΌΠ΅ 15 131 783 Π²Π»ΠΈΠ·Π°Π½ΠΈΡ Π·Π° 6 ΠΌΠΈΠ½ΡΡΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° Π·Π°ΠΊΡΠΏΡΡ ΡΡΠΎΠΊΠΈ ΠΈ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΡΠ΅Π³Π»Π΅Π½Π΅ΡΠΎ Π½Π° Π½Π°Π³ΡΠ°Π΄ΠΈ Π² ΠΏΡΠΎΠΌΠΎΡΠΈΠΈ, ΡΠΎΠ²Π° Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΌΡΡΠΊΠ°. Π‘Π΅Π³Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π°ΠΊΡΡΠ°Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Elastic, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΠΌ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠ΅ΡΠΈ Π² Postgres ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ Π·Π°Π΄ΡΡΡΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡΡ Π½Π° Π΅Π»Π°ΡΡΠΈΡΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ / Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΌΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΠ»ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ ΠΌΠ΅, ΠΊΡΠΌ Elastic ΠΈ Π·Π°ΡΠ΅Π³Π° ΡΠΌΠ΅ ΡΠΏΡΠ΅Π»ΠΈ Π½Π° ΡΠΎΠ²Π°. Π‘Π΅Π³Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ Π² Elastic Π²ΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² Postgres, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΅ΠΌΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅.
Π Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΠΌ ΡΡΠ»ΡΠ³ΠΈ, Π°ΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ ΡΡΠ°Π²Π° ΡΠ²ΡΡΠ΄Π΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½Π° ΠΈ ΡΠ΅ ΡΡΡΡΠΈ Π² Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π±ΡΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. Π’ΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π·Π°Π΄Π°ΡΠ° Π·Π° Postgres.
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ Π² ΠΏΡΠ»Π΅Π½ ΡΠ΅ΠΊΡΡ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π·Π° ΡΡΡΡΠ΅Π½Π΅, ΡΠΎΠ³Π°Π²Π° Π²Π΅ΡΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π² Elastic.
βββ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ. ΠΠΊΠΎ Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΡΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ElasticSearch ΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΡΠΎΠ³Π°Π²Π° Π½ΠΈ ΠΊΠ°ΠΆΠ΅ΡΠ΅. Π©Π΅ Π±ΡΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° Π·Π½Π°ΠΌ ΠΊΠ°ΠΊ ΡΠ° Π΄ΡΡΠ³ΠΈΡΠ΅ π
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com