ΠΠ΄ΡΠ°Π²ΠΎ, Π₯Π°Π±Ρ! ΠΠ°Ρ ΡΠ΅ Π²ΠΈΠΊΠ°ΠΌ ΠΠ°ΠΊΡΠΈΠΌ ΠΠ°ΡΠΈΠ»ΠΈΠ΅Π², ΡΠ°Π±ΠΎΡΠ°ΠΌ ΠΊΠ°ΠΊΠΎ Π°Π½Π°Π»ΠΈΡΠΈΡΠ°Ρ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π²ΠΎ FINCH. ΠΠ΅Π½Π΅Ρ Π±ΠΈ ΡΠ°ΠΊΠ°Π» Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ElasticSearch, ΡΡΠΏΠ΅Π°Π²ΠΌΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ 15 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π±Π°ΡΠ°ΡΠ° Π·Π° 6 ΠΌΠΈΠ½ΡΡΠΈ ΠΈ Π΄Π° Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π΄Π½Π΅Π²Π½ΠΎΡΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. ΠΠ° ΠΆΠ°Π», ΡΠ΅ ΠΌΠΎΡΠ°ΠΌΠ΅ Π±Π΅Π· ΠΈΠΌΠΈΡΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΠΠ, ΡΠ΅ Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π΅ΠΌΠ° Π΄Π° Π½Π°ΡΡΡΠ°Π΄Π° ΠΎΠ΄ ΠΎΠ²Π°. ΠΠ° ΠΎΠ΄ΠΈΠΌΠ΅.
ΠΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ
ΠΠ° Π½Π°ΡΠΈΠΎΡ ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΡΠΎΡΡΠ°Π² ΡΠΎΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΊΠΎΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. ΠΠΏΡΡΠ°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π½Π° Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌΠΎΡ:
ΠΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈ: Π½Π°Π±Π°Π²ΠΊΠΈ, ΠΏΠ»Π°ΡΠ°ΡΠ°, ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈ ΡΠΎ ΡΠ°Π»Π΄Π° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ, Π·Π° ΠΊΠΎΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΠΈ ΡΠ²Π΅Π·ΡΠ²Π°ΠΌΠ΅ ΠΈ ΠΈΠ·Π²Π΅Π·ΡΠ²Π°ΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠΌΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΊΠΎΠ³Π° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΈ Π³ΠΈ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΏΠΎΡΡΠΎΡΠ°Ρ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΏΠ»Π°ΡΠ°ΡΠ° ΠΈ Π±ΠΎΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΡΠ°ΡΠΊΠ° ΠΏΠΎΠ·Π°Π΄ΠΈΠ½Π°
ΠΡΠ²ΠΈΡΠ½ΠΎ, ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ PostgreSQL ΠΊΠ°ΠΊΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ Π·Π° DBMS: ΠΏΡΠΈΡΡΡΡΠ²ΠΎ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈ, ΡΠ°Π·Π²ΠΈΠ΅Π½ ΡΠ°Π·ΠΈΠΊ Π·Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΡΠΈΡΠΎΠΊ ΠΎΠΏΡΠ΅Π³ Π½Π° Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°; Π²ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠ° ΡΠΎ Π΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡΠ²Π°ΡΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π²ΠΌΠ΅ Π°ΠΏΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Postgres: ΠΎΠ΄ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈ. ΠΠΎ, ΡΠ°ΡΡΠ΅ΡΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ, Π° ΡΠΎ ΡΠΎΠ° ΠΈ Π±ΡΠΎΡΠΎΡ Π½Π° Π±Π°ΡΠ°ΡΠ°.
ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, Π³ΠΎΠ΄ΠΈΡΠ½ΠΈΠΎΡ Π±ΡΠΎΡ Π½Π° ΡΠ΅ΡΠΈΠΈ Π²ΠΎ 2017 Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°ΠΌΠΎ Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π±Π΅ΡΠ΅ 131 ΠΌΠΈΠ»ΠΈΠΎΠ½. ΠΠΎ 2018 Π³ΠΎΠ΄ΠΈΠ½Π° - 125 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. ΠΠΎ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ 130 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ. ΠΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΡΡΡΠ΅ 100-200 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, ΠΈ Π²ΠΈΠ΅ ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΡΠ°Π»Π΅Π½ Π±ΡΠΎΡ Π±Π°ΡΠ°ΡΠ°.
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ°ΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ, Postgres ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ; Π½Π΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ - ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈΡΠ° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ°, Π·Π° ΠΊΠΎΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ Π±ΡΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.
Π‘ΡΠ°ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π° ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π°Ρ Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈ ΠΈ ΡΠ΅ Π³ΠΎ ΠΎΡΡΡΡΠ°Π½Π°Ρ ΡΠΎΠ²Π°ΡΠΎΡ ΠΎΠ΄ PostgreSQL. Elasticsearch ΠΈ MongoDB Π±Π΅Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ. ΠΡΠΎΡΠΈΠΎΡ Π·Π°Π³ΡΠ±ΠΈ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠΎΠ΅Π½ΠΈ:
- ΠΠ°Π²Π½Π° Π±ΡΠ·ΠΈΠ½Π° Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ°ΡΡΠ΅ ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅. Π‘ΠΎ Elastic, Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
- ΠΠ΅ΠΌΠ° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΎΡΠ΅Π½ ΡΠ΅ΠΊΡΡ
Π’Π°ΠΊΠ° ΡΠ° ΠΈΠ·Π±ΡΠ°Π²ΠΌΠ΅ ΠΠ»Π°ΡΡΠΈΠΊ Π·Π° ΡΠ΅Π±Π΅ ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠ²ΠΌΠ΅ Π·Π° ΡΡΠ°Π½Π·ΠΈΡΠΈΡΠ°ΡΠ°.
ΠΡΠ΅ΡΡΠ»Π΅ΡΠ΅ ΡΠ΅ Π½Π° ΠΠ»Π°ΡΡΠΈΠΊ
1. ΠΠ° Π·Π°ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ ΡΡΠ°Π½Π·ΠΈΡΠΈΡΠ°ΡΠ° ΡΠΎ ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ½ΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠ°ΡΠΈΠΎΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΠΌΠ° Π²ΠΊΡΠΏΠ½ΠΎ ΠΎΠΊΠΎΠ»Ρ 70 ΠΏΡΠΎΠ΄Π°ΠΆΠ½ΠΈ ΠΌΠ΅ΡΡΠ°, Π° Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π²ΠΈΠ΄ΠΎΠ²ΠΈ Π½Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°:
- ΠΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΡΠ΅ΡΠΎΡ
- ΠΠ΅ΠΎΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π²ΠΎ Π΄Π°Π΄Π΅Π½ ΡΠ°Π΄ΠΈΡΡ ΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΡΠΎΡΠΊΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΠ°ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠΎΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠ½ΠΈ ΠΌΠ΅ΡΡΠ° ΡΠ΅ Π½Π°ΡΠ±Π»ΠΈΡΠΊΡ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ Π΄ΠΎΠΌ.
- ΠΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎ Π΄Π°Π΄Π΅Π½ ΠΊΠ²Π°Π΄ΡΠ°Ρ - ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΎΡΡΡΡΠ²Π° ΠΊΠ²Π°Π΄ΡΠ°Ρ Π½Π° ΠΌΠ°ΠΏΠ°ΡΠ° ΠΈ ΠΌΡ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ ΡΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ°Π΄ΠΈΡΡ.
- ΠΡΠ΅Π±Π°ΡΡΠ²Π°ΡΡΠ΅ ΠΏΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΠ»ΡΡΠΈ. ΠΡΠΎΠ΄Π°ΠΆΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠ° ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°Π°Ρ Π΅Π΄Π½ΠΈ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ ΠΏΠΎ Π°ΡΠΎΡΡΠΈΠΌΠ°Π½
ΠΠ±ΠΎΡΡΠ²Π°ΡΡΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ°, Π²ΠΎ Postgres ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π·Π° ΠΌΠ°ΠΏΠ°ΡΠ° ΠΈ Π·Π° Π²Π΅ΡΡΠΈΡΠ΅, Π° Π²ΠΎ Elastic ΠΏΡΠ°Π²ΠΈΠΌΠ΅ Snapshots ΠΎΠ΄ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. Π€Π°ΠΊΡ Π΅ Π΄Π΅ΠΊΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Postgres Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠΈΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌΠΈ. ΠΠ΅ ΡΠ°ΠΌΠΎ ΡΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΡΠΈΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°Π°Ρ, ΠΏΠ° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠΎΡ Π½Π° Postgres Π±Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ±Π΅Π½ ΠΈ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ.
2. Π‘Π»Π΅Π΄Π½Π° Π½Π° ΡΠ΅Π΄ Π±Π΅ΡΠ΅ Π΄Π΅Π»ΠΎΡ Π·Π° Π²Π΅ΡΡΠΈ. ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΠ΅ΠΊΠΎΡ Π΄Π΅Π½ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ Π²ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅Π΄Π°Ρ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΈΠ·Π΄Π°Π΄Π°Ρ. ΠΠ²Π° Π΅ ΠΎΠ½Π° Π·Π° ΡΡΠΎ Π΅ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ: Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎ ΡΠΎΠ²ΠΏΠ°ΡΠ°ΡΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠΎΡ, Π° Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΠ»ΡΡΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΠ΅ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΈ ΠΏΡΠ΅ΠΊΡ Elastic.
3. ΠΠΎΡΠΎΠ° ΡΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠ²ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈΡΠ΅. ΠΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΡΠΏΠ°Ρ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ Π΄Π° ΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π°Ρ Π²ΠΎ Π½Π°Π³ΡΠ°Π΄Π½ΠΎΡΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅. ΠΠΎ Π²Π°ΠΊΠ²ΠΈΡΠ΅ Π½Π°Π±Π°Π²ΠΊΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΠΈΠΊΠ΅Π½Π΄ΠΈΡΠ΅ ΠΈ ΠΏΡΠ°Π·Π½ΠΈΡΠΈΡΠ΅. ΠΠ° ΡΠΏΠΎΡΠ΅Π΄Π±Π°, Π°ΠΊΠΎ Π²ΠΎ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ Π΄Π΅Π½ΠΎΠ²ΠΈ Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΡΠΏΡΠ²Π°ΡΠ° Π΅ Π½Π΅ΠΊΠ°Π΄Π΅ ΠΎΠΊΠΎΠ»Ρ 1,5-2 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ, ΡΠΎΠ³Π°Ρ Π½Π° ΠΏΡΠ°Π·Π½ΠΈΡΠΈ Π±ΡΠΎΡΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ 53 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ.
ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Ρ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ - ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π΅ ΡΠ°ΠΊΠ°Π°Ρ Π΄Π° ΡΠ΅ΠΊΠ°Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄Π΅Π½Π° Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ. ΠΠ΅ ΠΏΠΎΡΡΠΎΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ ΡΠ°ΠΊΠ²ΠΈ ΡΠΎΠΊΠΎΠ²ΠΈ ΠΏΡΠ΅ΠΊΡ Postgres - ΡΠ΅ΡΡΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°Π²ΠΌΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, Π° Π΄ΠΎΠ΄Π΅ΠΊΠ° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π²ΠΌΠ΅ ΡΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ°, ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠ°Ρ Π΄Π°Π»ΠΈ Π΄ΠΎΠ±ΠΈΠ»Π΅ Π½Π°Π³ΡΠ°Π΄ΠΈ ΠΈΠ»ΠΈ Π½Π΅. ΠΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΈΡΠ°ΡΠ½ΠΎ Π·Π° Π±ΠΈΠ·Π½ΠΈΡ, ΠΏΠ° ΡΠ° ΠΏΡΠ΅ΡΡΠ»ΠΈΠ²ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π²ΠΎ Elasticsearch.
ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡ
Π‘Π΅Π³Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ, ΡΠΏΠΎΡΠ΅Π΄ ΡΠ»Π΅Π΄Π½ΠΈΠ²Π΅ ΡΡΠ»ΠΎΠ²ΠΈ:
- ΠΡΠΎΠ΄Π°ΠΆΠ½ΠΈ ΠΌΠ΅ΡΡΠ°. Π¨ΡΠΎΠΌ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ ΠΈΠ·Π²ΠΎΡ, Π²Π΅Π΄Π½Π°Ρ Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π°ΠΌΠ΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅.
- ΠΠ΅ΡΡΠΈ. Π¨ΡΠΎΠΌ Π±ΠΈΠ»ΠΎ ΠΊΠΎΡΠ° Π²Π΅ΡΡ Π΅ ΡΡΠ΅Π΄Π΅Π½Π° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΡΠ°Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ° Π΄ΠΎ ΠΠ»Π°ΡΡΠΈΠΊ.
Π’ΡΠΊΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΠ»Π°ΡΡΠΈΠΊ. ΠΠΎ Postgres, ΠΊΠΎΠ³Π° ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ Π±Π°ΡΠ°ΡΠ΅, ΡΡΠ΅Π±Π° Π΄Π° ΠΏΠΎΡΠ΅ΠΊΠ°ΡΠ΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΈΡΠΊΡΠ΅Π½ΠΎ Π½Π΅ Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΡΠΏΡΠ°ΡΠΈΡΠ΅ 10 ΠΈΠ»ΡΠ°Π΄ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΠΠ»Π°ΡΡΠΈΠΊ ΠΈ Π²Π΅Π΄Π½Π°Ρ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠΎ ΡΠ°Π±ΠΎΡΠ°, Π±Π΅Π· Π΄Π° ΡΠ΅ΠΊΠ°ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ Π΄ΠΎ ΡΠΈΡΠ΅ Shards. Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, Π½Π΅ΠΊΠΎΠΈ Shard ΠΈΠ»ΠΈ Replica ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ Π²ΠΈΠ΄Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²Π΅Π΄Π½Π°Ρ, Π½ΠΎ ΠΌΠ½ΠΎΠ³Ρ Π½Π°ΡΠΊΠΎΡΠΎ ΡΓ¨ ΡΠ΅ Π±ΠΈΠ΄Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎ.
ΠΠ΅ΡΠΎΠ΄ΠΈ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°
ΠΠΎΡΡΠΎΡΠ°Ρ 2 Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ ΡΠΎ Elastic:
- ΠΡΠ΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ½ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠ΅ΠΊΡ TCP. ΠΠΎΠΌΠ°ΡΠ½ΠΈΠΎΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ ΠΈΠ·ΡΠΌΠΈΡΠ°: ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½, Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π½Π΅Π·Π³ΠΎΠ΄Π½Π°. ΠΠ°ΡΠΎΠ°, Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π½Π΅ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΈ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΡΡΠΈΠΌΠ΅.
- ΠΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ 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, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ ΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠΎ Π΄Π΅ΡΠ΅ΡΠΈΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ.
ΠΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ, Π²ΡΠ²Π½ΠΈΡΠ΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ° ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°Π°Ρ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ°Π·Π½ΠΈΡΠΈ, Π½ΠΎ ΠΎΠ²Π°Π° ΠΏΡΠΎΠΌΠΎΡΠΈΡΠ° Π΅ Π½Π° ΡΠΎΡΠ΅ΠΌΠ° Π΄ΡΡΠ³ΠΎ Π½ΠΈΠ²ΠΎ. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Π΄Π΅Π½ΠΎΡ Π½Π° ΠΏΡΠΎΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΏΡΠΎΠ΄Π°Π΄ΠΎΠ²ΠΌΠ΅ 27 Π΅Π΄ΠΈΠ½ΠΈΡΠΈ ΡΠΎΠ±Π°. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΡΠ°Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠ°Ρ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° Π½Π΅ΠΏΡΠΈΡΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊΠ°Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. ΠΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π΄ΠΎΠ±ΠΈΡΠ° Π½Π°Π³ΡΠ°Π΄ΠΈ Π·Π° ΡΡΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ ΡΡΠ°Π½Π° ΡΠ°ΡΠ½ΠΎ Π΄Π΅ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π·Π°Π±ΡΠ·Π°.
ΠΠ° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° 2019 Π³ΠΎΠ΄ΠΈΠ½Π°, ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π΅ ΠΏΠΎΡΡΠ΅Π±Π΅Π½ ElasticSearch. Π¦Π΅Π»Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π²ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Elastic ΠΈ Π½ΠΈΠ²Π½ΠΎ ΠΈΠ·Π»Π΅Π³ΡΠ²Π°ΡΠ΅ Π΄ΠΎ API Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΠ²ΠΌΠ΅ 15 Π·Π°ΠΏΠΈΡΠΈ Π·Π° 131 ΠΌΠΈΠ½ΡΡΠΈ.
ΠΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠΎΡΠΈΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π»ΡΡΠ΅ ΠΊΠΎΠΈ ΡΠ°ΠΊΠ°Π°Ρ Π΄Π° Π³ΠΎ ΠΊΡΠΏΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΎΡ ΠΈ Π΄Π° ΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π°Ρ Π²ΠΎ Π½Π°Π³ΡΠ°Π΄Π½Π°ΡΠ° ΠΈΠ³ΡΠ°, ΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½Π° ΠΌΠ΅ΡΠΊΠ°. Π‘Π΅Π³Π° ΠΈΡΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΠ΅ΠΊΠΎΠ²Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄ΠΎ Elastic, Π½ΠΎ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π½Π΅ΡΠ΅ΠΌΠ΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΌΠΈΠ½Π°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠ΅ΡΠΈ Π²ΠΎ Postgres ΠΊΠ°ΠΊΠΎ ΡΡΠ°ΡΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ Π·Π°ΡΠ½Π΅ ΠΠ»Π°ΡΡΠΈΡΠ½ΠΈΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ° ΡΠ²ΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°.
ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ/ΠΠ°ΠΊΠ»ΡΡΠΎΡΠΈ
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΡΡΠΎ Π³ΠΈ ΡΠ°ΠΊΠ°Π²ΠΌΠ΅ Π³ΠΈ ΠΏΡΠ΅ΡΡΠ»ΠΈΠ²ΠΌΠ΅ Π½Π° ΠΠ»Π°ΡΡΠΈΠΊ ΠΈ Π·Π°ΡΠ΅Π³Π° ΠΏΠ°ΡΠ·ΠΈΡΠ°Π²ΠΌΠ΅. Π‘Π΅Π³Π° Π³ΡΠ°Π΄ΠΈΠΌΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΠΎ Elastic Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π²ΠΎ Postgres, ΠΊΠΎΠ΅ Π³ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΡΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅.
ΠΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΠΌΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π°ΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΡΠ°Π½ΡΠ²Π° ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎ ΠΈ ΡΠ΅ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π° Π·Π° Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π±ΡΠΎΡ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. ΠΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π·Π°Π΄Π°ΡΠ° Π·Π° Postgres.
ΠΠΊΠΎ Π½ΠΈ ΡΡΠ΅Π±Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΎΡΠ΅Π½ ΡΠ΅ΠΊΡΡ Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌΠΈ Π·Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅, ΡΠΎΠ³Π°Ρ Π²Π΅ΡΠ΅ Π·Π½Π°Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅ Π½Π° Elastic.
βββ
ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° ΡΠΈΡΠ°ΡΠ΅ΡΠΎ. ΠΠΊΠΎ Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΊΠΎΡΠΈΡΡΠΈ ElasticSearch ΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°, Π²Π΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈ. ΠΠ΅ Π±ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠΎ ΠΏΡΠ°Π²Π°Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ :)
ΠΠ·Π²ΠΎΡ: www.habr.com