Π‘ Elasticsearch ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅. ΠΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈ Β«Π² ΠΎΡΠΎΠ±ΠΎ ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅Β»? ΠΠ° Π΅ΡΡ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ²? ΠΠ°ΠΊΠΎΠΉ ΡΡΠΎΠΈΡ Π΄Π΅Π»Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΈ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ Π½Π°ΡΠΊΠ½ΡΡΡΡΡ?
ΠΡ Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ elasticsearch ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠΏΡΠΎΡ Π»ΠΎΠ³-ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½ΡΠ°, Π° ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π΅Π»ΠΈΠΌΡΡ Ρ Π₯Π°Π±ΡΠΎΠΌ ΠΎΠΏΡΡΠΎΠΌ: ΠΈ ΠΏΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΈ ΠΏΡΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ.
Π― β ΠΡΡΡ ΠΠ°ΠΉΡΠ΅Π², ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ . ΠΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΆΠ΅ Π±ΡΠ» Π°Π΄ΠΌΠΈΠ½ΠΎΠΌ, ΡΠ°Π±ΠΎΡΠ°Π» Ρ Manticore Search, Sphinx search, Elasticsearch. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π΅ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ …search, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π±ΡΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Ρ Π½ΠΈΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠ°ΡΡΠ²ΡΡ Π² ΡΡΠ΄Π΅ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅.
ΠΠΎΠ³Π΄Π° Ρ ΠΏΡΠΈΡΡΠ» Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΈ, ΡΠΎ ΠΎΠΏΡΠΎΠΌΠ΅ΡΡΠΈΠ²ΠΎ ΡΠΊΠ°Π·Π°Π» Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ ΡΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Elasticsearch. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΠ»ΡΡ ΠΈ ΠΏΠΎΠ΄Π΅Π»Π°Π» ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΌΠ½Π΅ ΠΏΠΎΠ΄Π°ΡΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΎΠ³-ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½ΡΠ°, ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΡΡ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΡΠ»ΠΈ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Graylog. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠΆΠ΅ Π±ΡΠ» ΠΎΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π΅Π³ΠΎ Π·Π½Π°Π»ΠΈ, ΠΎΠ½ ΠΈΠΌ Π±ΡΠ» ΠΏΡΠΈΠ²ΡΡΠ΅Π½ ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½.
- ΠΠ±ΡΡΠΌ Π΄Π°Π½Π½ΡΡ : Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ 50-80 ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π»ΠΎΠΌΠ°Π΅ΡΡΡ, ΡΠΎ ΡΡΠ°ΡΠΈΠΊ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 2-3 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° ΡΡΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ
- ΠΠ±ΡΡΠ΄ΠΈΠ² Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΌΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΎΠΉ: Π»ΡΠ΄ΠΈ ΠΈΡΡΡ Π»ΠΎΠ³ΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° Π΄Π½Ρ ΠΈ Π½Π΅ Ρ ΠΎΡΡΡ ΠΆΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π° ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ.
- ΠΠ΄ΠΌΠΈΠ½Ρ Π½Π°ΡΡΠ°ΠΈΠ²Π°Π»ΠΈ Π½Π° ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π»Π°ΡΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΠΎΡ Π½ΠΈΡ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π²Π½ΠΈΠΊΠ°Π½ΠΈΡ Π² ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΡΡΡΠΎΠ΅Π½Π°.
- Π§ΡΠΎΠ±Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΏΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π»Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ β ΡΡΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΆΠ΅Π»Π΅Π·ΠΎ.
- ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ Π΅ΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ°Π΄ΠΈΡΠΈΡ: Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π· Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° (Π²Π½Π΅Π·Π°ΠΏΠ½ΡΠΉ, Π½Π΅Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ).
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π°Π»ΠΎΡΡ Π½Π°ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΊΡΠΎΠ²ΡΡ, ΠΎ ΡΡΠΌ Ρ Π΅ΡΡ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
Π‘ΡΠ΅Π΄Π°
ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π° ΡΠ΅ΡΡΡΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ , ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ Elasticsearch ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΡΡ (ΠΏΠΎ ΡΡΠ΄Ρ Π½Π΅ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΡΠΈΠ½).
Π ΡΡΠΈΡ ΡΠ΅ΡΡΡΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 18 ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π»ΠΎΠ³ΠΎΠ² β ΠΆΠ΅Π»Π΅Π·ΠΊΠΈ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ°ΠΆΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ: Π·Π°ΠΏΡΡΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ:
Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ
ΠΠ±ΡΠΈΠΉ Π²ΠΈΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½Π΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΠΈΠ΄Π΅Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- 3-4 VIP ΡΡΠΎΡΡ Π·Π° Π-ΡΠ΅ΠΊΠΎΡΠ΄ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π° Graylog, ΡΡΠΎ Π°Π΄ΡΠ΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΡΠ»Π°ΡΡΡΡ Π»ΠΎΠ³ΠΈ.
- ΠΊΠ°ΠΆΠ΄ΡΠΉ VIP ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ LVS.
- ΠΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ Π»ΠΎΠ³ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π½Π° Π±Π°ΡΠ°ΡΠ΅Ρ Graylog, ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ΄ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ GELF, ΡΠ°ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ syslog.
- ΠΠ°Π»ΡΡΠ΅ Π²ΡΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π±Π°ΡΡΠ°ΠΌΠΈ ΠΏΠΈΡΠ΅ΡΡΡ Π² Π±Π°ΡΠ°ΡΠ΅Ρ ΠΈΠ· ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΠ² Elasticsearch.
- Π ΠΎΠ½ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π·Π°ΠΏΠΈΡΡ ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ.
Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π° Π½Π΅ΠΉ.
Π Elasticsearch Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² Π½ΠΎΠ΄ β master, coordinator, data node. ΠΡΡΡ Π΅ΡΡ Π΄Π²Π° Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠ° Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ²ΡΠ·ΠΈ ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, Π½ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅.
Master
ΠΠΈΠ½Π³ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π½ΠΎΠ΄Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅Ρ Π΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ΄Π°ΠΌΠΈ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° cluster wide housekeeping.
Coordinator
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ΄Π½Ρ-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ: ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΡΡΠ°ΡΠΈΠΊ. Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ Π½Π° Π·Π°ΠΏΠΈΡΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ ΡΠΏΡΠΎΡΠΈΡ master, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΡΠ΄ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΅ΠΌΡ ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π·Π°ΠΏΡΠΎΡ Π΄Π°Π»ΡΡΠ΅.
Data node
Π₯ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ, ΠΏΡΠΈΠ»Π΅ΡΠ°ΡΡΠΈΠ΅ ΠΈΠ· Π²Π½Π΅, ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ Π½Π° Π½Π΅ΠΉ ΡΠ°ΡΠ΄Π°ΠΌΠΈ.
Graylog
ΠΡΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠΏΠ»Π°Π²Π° Kibana Ρ Logstash Π² ELK-ΡΡΡΠΊΠ΅. Graylog ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΠΈ UI ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π»ΠΎΠ³ΠΎΠ². ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Π² Graylog ΡΠ°Π±ΠΎΡΠ°ΡΡ Kafka ΠΈ Zookeeper, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ Graylog ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Graylog ΡΠΌΠ΅Π΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈ (Kafka) Π½Π° ΡΠ»ΡΡΠ°ΠΉ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Elasticsearch ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π»ΠΎΠ³ΠΈ. ΠΠ°ΠΊ ΠΈ Logstash, Graylog ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΠΈΡΡΡ Π² Elasticsearch.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Graylog Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ service discovery, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½ΠΎΠ΄Ρ Elasticsearch ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π΅Ρ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΡΠ΅Π³Ρ, ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΠΎ ΡΠΊΡΠΈΠ½ΡΠΎΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ°. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
ΠΠ½Π΄Π΅ΠΊΡΡ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» Π΄Π΅ΡΠ°Π»ΡΠ½Π΅Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π° ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΡΡΠΎΠ±Ρ Π²ΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ° ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΉ ΡΠ°Π½Π΅Π΅ ΡΡ Π΅ΠΌΠ΅ ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ: Elasticsearch data nodes.
ΠΠ½Π΄Π΅ΠΊΡ β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· ΡΠ°ΡΠ΄ΠΎΠ² Elasticsearch. Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ°ΡΠ΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈ ΡΠ΅ΠΌ ΠΈΠ½ΡΠΌ, ΠΊΠ°ΠΊ Lucene index. Π ΠΊΠ°ΠΆΠ΄ΡΠΉ Lucene index, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΎΡΡΠΎΠΈΡ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ ΠΏΡΠΈΠΊΠΈΠ΄ΡΠ²Π°Π»ΠΈ, ΡΡΠΎ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΡΠ΅Π½ΠΈΡ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ Β«ΡΠ°Π·ΠΌΠ°Π·Π°ΡΡΒ» ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π°ΠΌ.
ΠΡΠΎ Π²ΡΠ»ΠΈΠ»ΠΎΡΡ Π² ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠ΄ΠΎΠ² Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ (Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ) Ρ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΡΠΎΠ³ΠΎ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π΄Π°ΡΠ°-Π½ΠΎΠ΄. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ replication factor, ΡΠ°Π²Π½ΡΠΉ Π΄Π²ΡΠΌ (ΡΠΎ Π΅ΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°). Π, Π²ΠΎ-Π²ΡΠΎΡΡΡ , Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠ²Π° ΠΊΠ°ΠΊ 30 Π΄Π½Π΅ΠΉ.
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΅ΡΡ ΡΡΠΌΠ½ΠΎ-ΡΠ΅ΡΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ΅Π²ΡΠΉ ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ Π² Π½ΡΠΌ β ΡΡΠΎ primary-ΡΠ°ΡΠ΄, ΠΏΠ΅ΡΠ²ΡΠΉ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. Π Π³ΠΎΠ»ΡΠ±ΠΎΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ β ΡΡΠΎ replica-ΡΠ°ΡΠ΄. ΠΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ .
ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΡΠ΄, ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΡΠ΅ΡΠΈΠΉ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡ. Π, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΡ ΡΠ°ΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΠ¦ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ :
Π ΠΎΡΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², Ρ.Π΅. ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π²Π½ΠΎΠΉ 48 ΡΠ°ΡΠΎΠ² (ΠΏΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°: ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ 48 ΡΠ°ΡΠ°ΠΌ ΠΈΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ).
Π’Π°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠΎΡΠ°ΡΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ:
ΠΠΎΠ³Π΄Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ ΠΏΡΠΈΠ»Π΅ΡΠ°Π΅Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ, ΡΠΎ, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠ° Π²ΡΠ³ΠΎΠ΄Π½Π΅ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΡΠ΄, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Ρ ΠΈΠΏΠ° Π½ΠΎΠ΄Ρ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΡΠΆΠ°ΡΡ βΠ³ΠΎΡΡΡΡΡβ ΡΠ°ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Ρ ΠΈΠΏΠ΅ ΠΈ Π±ΡΡΡΡΠΎ ΠΊ Π½Π΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ. ΠΠΎΠ³Π΄Π° βΠ³ΠΎΡΡΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉβ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΡΠ΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΠΎΠ³Π΄Π° Π½ΠΎΠ΄Π° Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΡΠ΄Π΅, ΠΎΠ½Π° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»-Π²ΠΎ ΡΡΠ΅Π΄ΠΎΠ², ΡΠ°Π²Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π³ΠΈΠΏΠ΅ΡΡΡΠ΅Π΄ΠΈΠ½Π³ΠΎΠ²ΡΡ ΡΠ΄Π΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΡΠ°ΡΠ΄ΠΎΠ², ΡΠΎ ΠΊΠΎΠ»-Π²ΠΎ ΡΡΠ΅Π΄ΠΎΠ² ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ. ΠΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ .
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ latency ΠΏΠΎΠΈΡΠΊΠ°, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SSD. ΠΠ»Ρ Π±ΡΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π»ΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ 56 ΡΠ΄ΡΠ°ΠΌΠΈ. Π¦ΠΈΡΡΠ° Π² 56 Π²ΡΠ±ΡΠ°Π½Π° ΠΊΠ°ΠΊ ΡΡΠ»ΠΎΠ²Π½ΠΎ-Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ Elasticsearch Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ. Π Elasitcsearch ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ thread pool Π½Π°ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΄Π΅Ρ, ΡΡΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΡΠΌΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ Π½ΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ "ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΄Π΅Ρ β Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΎΠ΄".
Π ΠΈΡΠΎΠ³Π΅ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΠ°ΡΠ΄ Π²Π΅ΡΠΈΡ Π³Π΄Π΅-ΡΠΎ 20 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ, ΠΈ Π½Π° 1 ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ 360 ΡΠ°ΡΠ΄ΠΎΠ². Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΡ ΡΠΎΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π· Π² 48 ΡΠ°ΡΠΎΠ², ΡΠΎ Ρ Π½Π°Ρ ΠΈΡ 15 ΡΡΡΠΊ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π΄Π°Π½Π½ΡΠ΅ Π·Π° 2 Π΄Π½Ρ.
Π‘Ρ Π΅ΠΌΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ, ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ ΠΈΠ· Graylog ΠΏΡΠΈΠ»Π΅ΡΠ°Π΅Ρ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π·Π°ΠΏΡΠΎΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ 2-3 ΡΡΡΡΡΠΈ ΡΡΡΠΎΠΊ.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ, ΠΏΠΎΠ»ΡΡΠΈΠ² ΠΎΡ Graylog Π·Π°ΠΏΡΠΎΡ, ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΠ΅Ρ: Β«Π Π·Π°ΠΏΡΠΎΡΠ΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Ρ Π½Π°Ρ Π±ΡΠ» ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ, Π½ΠΎ Π² ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠ΄ ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ β Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎΒ».
Master ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ: Β«ΠΠ°ΠΏΠΈΡΠΈ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ°ΡΠ΄ Π½ΠΎΠΌΠ΅Ρ 71Β», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½Π° Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΡ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ primary-shard Π½ΠΎΠΌΠ΅Ρ 71.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π»ΠΎΠ³ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΡΠ΅ΡΡΡ Π½Π° replica-shard, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΆΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΌ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅.
ΠΠ· Graylog Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΏΡΠΈΠ»Π΅ΡΠ°Π΅Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Elasticsearch ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ round-robin ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ primary-shard ΠΈ replica-shard.
ΠΠΎΠ΄Ρ Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ 180 ΡΡΡΠΊ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ, ΠΈ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΊΠΎΠΏΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π² Π½Π΅Π³ΠΎ ΡΠΆΠ΅ Β«Π²ΡΠΏΠ»ΡΠ½ΡΠ»ΠΈΒ» Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π»ΠΈΠ±ΠΎ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ»Π°, Π»ΠΈΠ±ΠΎ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ, ΠΎΡΠ΄Π°ΡΡ Π²ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
ΠΡΡ ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ 48 ΡΠ°ΡΠ°ΠΌ Π·Π° 300-400ms, ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ leading wildcard.
Β«Π¦Π²Π΅ΡΠΎΡΠΊΠΈΒ» Ρ Elasticsearch: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Java
Π§ΡΠΎΠ±Ρ Π²ΡΡ ΡΡΠΎ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Ρ ΠΎΡΠ΅Π»ΠΈ, ΠΌΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°Π»ΠΈ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ»Π° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π² Elasticsearch ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ ΠΏΡΠ΅Π΄Π½Π°ΡΡΡΠΎΠ΅Π½Π° Java.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅ΡΠ²Π°Ρ
ΠΡ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ Lucene, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠ΅Π½Ρ background job’Ρ, ΠΌΠ΅ΡΠ΄ΠΆΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² Lucene Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ Π² Π»ΠΎΠ³Π°Ρ
Π±ΡΠ»ΠΎ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ OutOfMemoryError-ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠΎ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΠΈ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Ρ
ΠΈΠΏ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½, ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠ°Π΄Π°Π΅Ρ.
ΠΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠ΄ΠΆΠΈ Lucene-ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π²Π½Π΅ Ρ ΠΈΠΏΠ°. Π ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΆΡΡΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΠΏΠΎ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ. Π ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ Π²Π»Π΅Π·Π°Π» ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΈΠΏ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ heap.size Π±ΡΠ»ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π²Π½ΠΎ RAM), Π° ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ off-heap ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ°Π΄Π°Π»ΠΈ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈΡΡ Π² ΡΠ΅ ~500MB, ΡΡΠΎ ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ Π΄ΠΎ Π»ΠΈΠΌΠΈΡΠ°.
Π€ΠΈΠΊΡ Π±ΡΠ» Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ: Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΎΠ±ΡΡΠΌ RAM ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°Π±ΡΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π±ΡΠ»ΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠΎΡΠ°Ρ
ΠΠ½Ρ ΡΠ΅ΡΠ΅Π· 4-5 ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΡ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²Π°Π»ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ Π·Π°Ρ
ΠΎΠ΄ΠΈΡΡ Π² Π½Π΅Π³ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ ΡΠ΅ΡΠ΅Π· 10-20.
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π»ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΡΡΠ° ΡΠ°ΠΌΠ°Ρ off-heap ΠΏΠ°ΠΌΡΡΡ Π² Elasticsearch Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΠΊΠ°ΠΊ. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΎΡΠ΄Π°Π»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΏΠΎΠ»Π½ΡΡΡ direct buffer pools ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΈ ΠΎΠ½Π° ΠΎΡΠΈΡΠ°Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ explicit GC ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Elasticsearch.
Π ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ»Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ Π΄ΠΎΠ»Π³ΠΎ, ΠΈ Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΡΠΏΠ΅Π²Π°Π» ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΡΡ Π½ΠΎΠ΄Ρ ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π²ΡΡΠ΅Π΄ΡΡΡ. ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ
ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π°
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ: ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ»ΠΈ Java Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π²Π½Π΅ Ρ ΠΈΠΏΠ° ΠΏΠΎΠ΄ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡ Π»ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Ρ Π΄ΠΎ 16 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ (-XX:MaxDirectMemorySize=16g), Π΄ΠΎΠ±ΠΈΠ²ΡΠΈΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ explicit GC Π²ΡΠ·ΡΠ²Π°Π»ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΠ΅, Π° ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΠΏΠ΅ΡΠ΅ΡΡΠ°Π² ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄Π΅ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ΅ΡΡΡ
ΠΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Β«Π½ΠΎΠ΄Π°ΠΌΠΈ, ΠΏΠΎΠΊΠΈΠ΄Π°ΡΡΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ Π² ΡΠ°ΠΌΡΠΉ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½ΡΒ» Π½Π° ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ, Π²Ρ ΠΎΡΠΈΠ±Π°Π΅ΡΠ΅ΡΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ, ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡ Π½Π° mmapfs, ΡΡΠΎΠ±Ρ
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΌΡ ΡΠΏΠ΅ΡΠ²Π° ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ niofs, Π° ΠΏΠΎΡΠ»Π΅, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΡΡ
Π²Π΅ΡΡΠΈΠΉ Elastic ΠΎΡΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π½Π° ΡΠ΅ΡΡΡΠ΅, ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ hybridfs, Π³Π΄Π΅ Π΄Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉ ΠΏΡΠΎ ΡΠΈΠΏΡ ΡΡΠΎΡΠ΅Π΄ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ²ΡΡΡΠ°Ρ
ΠΠΎΡΠΎΠΌ Π±ΡΠ»Π° Π΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π»Π΅ΡΠΈΠ»ΠΈ ΡΠ΅ΠΊΠΎΡΠ΄Π½ΠΎ Π΄ΠΎΠ»Π³ΠΎ. ΠΡ Π»ΠΎΠ²ΠΈΠ»ΠΈ Π΅Ρ 2-3 ΠΌΠ΅ΡΡΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΡΠ» Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ΅Π½ Π΅Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½.
ΠΠ½ΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡ ΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ Π² Full GC, ΠΎΠ±ΡΡΠ½ΠΎ Π³Π΄Π΅-ΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π΅Π΄Π°, ΠΈ ΠΎΡΡΡΠ΄Π° ΡΠΆΠ΅ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΠΈΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ GC ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ ΡΠ°ΠΊ: Ρ Π½Π°Ρ Π²ΡΡ ΠΈΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ, Ρ ΠΎΡΠΎΡΠΎ, Ρ ΠΎΡΠΎΡΠΎ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ°Π· β ΠΈ Π²ΡΡ ΡΠ΅Π·ΠΊΠΎ ΠΏΠ»ΠΎΡ ΠΎ.
Π‘ΠΏΠ΅ΡΠ²Π° ΠΌΡ Π΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π·Π»ΠΎΠΉ ΡΠ·Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ±ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΈΠ· ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π»ΠΈ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΡΡΠ°ΡΡΡ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
Π ΠΈΡΠΎΠ³Π΅ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΈ ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ Elasticsearch, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΎΠ΄Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΆΠ΄ΡΡ ΠΎΡΠ²Π΅ΡΠ° Π²ΡΠ΅Ρ Π½ΠΎΠ΄, ΠΎΠ½ ΠΊΠΎΠΏΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΏΡΠΈΡΠ»Π°Π½Π½ΡΠ΅ Ρ ΡΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠΈΠ²ΡΠΈΡ Π½ΠΎΠ΄. ΠΠ»Ρ GC ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΠΏΠ°. Π ΡΠΎΡ GC, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ, Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ»ΡΡ.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π°ΡΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ β ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° JDK13 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° Shenandoah. ΠΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡ Ρ Π½Π°Ρ ΠΏΠ°Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ.
ΠΠ° ΡΡΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Java Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ ΠΈ Π½Π°ΡΠ°Π»ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ.
Β«Π―Π³ΠΎΠ΄ΠΊΠΈΒ» Ρ Elasticsearch: ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ, Π½ΠΎ Π½Π° ΠΏΠΈΠΊΠ°Ρ ΠΊΠΎΠ»-Π²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠ°Π½ΡΠ²ΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ.
ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΡΡΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΌΠΏΡΠΎΠΌ: ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Β«Π²Π·ΡΡΠ²Π°Ρ Β» Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΠΊΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΎΠ³ΠΎΠ², Π² Graylog Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°ΡΡΠΎ ΠΌΠ΅Π»ΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ es_rejected_execution.
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ»ΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ thread_pool.write.queue Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ Elasticsearch ΡΡΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈ Π·Π°ΠΊΠΈΠ½ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ°ΡΠ΄ Π½Π° Π΄ΠΈΡΠΊ, ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ ΡΠΌΠ΅Π΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ 200 Π·Π°ΠΏΡΠΎΡΠΎΠ². Π Π²
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΌΡ ΠΏΠΎΡΠ»ΠΈ ΠΊΡΡΡΠΈΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ°ΠΏΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΊΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ 300 Π·Π°ΠΏΡΠΎΡΠΎΠ², Π° Π±ΠΎΠ»ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π²Π°ΡΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΡΠ»Π΅ΡΠ°Π΅ΠΌ Π² Full GC.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠ°ΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»Π΅ΡΠ°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ Π΅ΡΡ ΠΏΠΎΠ΄ΠΊΡΡΡΠΈΡΡ Graylog Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΠΈΡΠ°Π» Π½Π΅ ΡΠ°ΡΡΠΎ ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠΌΠΈ Π±Π°ΡΡΠ°ΠΌΠΈ, Π° ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌΠΈ Π±Π°ΡΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π· Π² 3 ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π΅ΡΠ»ΠΈ Π±Π°ΡΡ Π²ΡΡ Π΅ΡΡ Π½Π΅ ΠΏΠΎΠ»ΠΎΠ½. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π² Elasticsearch ΠΏΠΈΡΠ΅ΠΌ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½Π΅ ΡΠ΅ΡΠ΅Π· Π΄Π²Π΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π° ΡΠ΅ΡΠ΅Π· ΠΏΡΡΡ (ΡΡΠΎ Π½Π°Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ), Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠ°Π΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΏΠΈΡ Π½ΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠ°ΡΠΊΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΡΡΠΎ-ΡΠΎ Π³Π΄Π΅-ΡΠΎ ΡΠΏΠ°Π»ΠΎ ΠΈ ΡΡΠΎΡΡΠ½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΡΠΏΠ°ΠΌΠ»Π΅Π½Π½ΡΠΉ Elastic, Π° ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ β Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΠΈΠ·-Π·Π° Π·Π°Π±ΠΈΠ²ΡΠΈΡ ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² Π½ΠΎΠ΄Ρ Graylog.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΡΡΠΈ ΡΠ°ΠΌΡΠ΅ Π²Π·ΡΡΠ²Ρ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅, Ρ Π½Π°Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΆΠ°Π»ΠΎΠ±Ρ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ²: Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ ΠΎΡΠ΅Π½Ρ Π½ΡΠΆΠ½Ρ ΡΡΠΈ Π»ΠΎΠ³ΠΈ, ΠΎΠ½ΠΈ Π²ΡΠ΄Π°ΡΡΡΡ ΠΈΠΌ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
Π‘ΡΠ°Π»ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΈ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΏΠΎ ΡΡΡΠΈ, Π½Π° ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ , ΠΈ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΡΠΎΡΠ°Π΄ΠΊΠΈ Π±ΡΠ΄ΡΡ.
ΠΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ Π·Π° ΡΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² ΡΠ΅ΡΡΡΡ Π²Π΅ΡΡΠΈΡΡ Elasticsearch ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠΌΠΈ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π°ΠΌΠΈ Π½Π΅ ΠΏΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ round-robin (ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ Π΄Π΅ΡΠΆΠΈΡ primary-shard, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°Π½ΡΡ, ΡΠ°ΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π±ΡΡΡΡΠΎ), Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ replica-shard, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ use_adaptive_replica_selection: true.
ΠΠ°ΡΡΠΈΠ½Π° ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ query time Π² ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΡΡΠ» Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π»ΠΎΠ³ΠΎΠ² Π½Π° Π·Π°ΠΏΠΈΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠΌ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°.
Π§Π΅Π³ΠΎ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΎΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ΅ΡΠΈ ΡΠ²ΡΠ·ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΠ¦:
- ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π² ΠΎΡΠ²Π°Π»ΠΈΠ²ΡΠ΅ΠΌΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ master, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΡΠ±ΡΠ°Π½ ΠΈ ΠΏΠ΅ΡΠ΅Π΅Π΄Π΅Ρ ΠΊΠ°ΠΊ ΡΠΎΠ»Ρ Π½Π° Π΄ΡΡΠ³ΡΡ Π½ΠΎΠ΄Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΠ¦.
- ΠΠ°ΡΡΠ΅Ρ Π±ΡΡΡΡΠΎ Π²ΡΠΊΠΈΠ½Π΅Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π²ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π½ΠΎΠ΄Ρ.
- ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΎΠ½ ΠΏΠΎΠΉΠΌΠ΅Ρ: Π² ΠΏΠΎΡΠ΅ΡΡΠ²ΡΠ΅ΠΌΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅-ΡΠΎ primary-ΡΠ°ΡΠ΄Ρ, Π±ΡΡΡΡΠΎ Π·Π°ΠΏΡΠΎΠΌΠΎΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ»ΠΈΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠ΅ replica-ΡΠ°ΡΠ΄Ρ Π² ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ , ΠΈ Ρ Π½Π°Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
- Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎΠ³ΠΎ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ»Π°Π²Π½ΠΎ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΡ ΠΈ ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΡΡ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ°ΠΊ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, Ρ ΠΎΡΠ΅Π»ΠΈ ΠΌΡ ΡΠ΅Π³ΠΎ-ΡΠΎ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ:
Π ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ°ΠΊ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ?
Π ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Ρ Π½Π°Ρ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ ΡΡΠ°Π» ΠΌΠ°ΡΡΠ΅Ρ.
ΠΠΎΡΠ΅ΠΌΡ?
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π΅ΡΡΡ TaskBatcher, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π°Π΄Π°Ρ, ΠΈΠ²Π΅Π½ΡΠΎΠ². ΠΡΠ±ΠΎΠΉ Π²ΡΡ ΠΎΠ΄ Π½ΠΎΠ΄Ρ, Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΠ΄Π° ΠΈΠ· replica Π² primary, Π»ΡΠ±Π°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π΄Π΅-ΡΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ°ΡΠ΄Π° β Π²ΡΡ ΡΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΡΠΏΠ΅ΡΠ²Π° Π² TaskBatcher, Π³Π΄Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ.
Π ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ Π² Π²ΡΠΆΠΈΠ²ΡΠΈΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ ΡΡΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΈΠΌ Π΄ΠΎΠ»Π³ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΌΠ°ΡΡΠ΅ΡΡ Β«Ρ Π½Π°Ρ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°ΡΠ΄Ρ ΠΈ ΡΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΡΒ».
ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΆΠΈΠ²ΡΠΈΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ Π·Π°ΡΡΠ»Π°Π»ΠΈ Π²ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΠ΅ΡΡ ΠΈ ΠΏΡΡΠ°Π»ΠΈΡΡ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ½ Π΅Ρ ΠΏΡΠΈΠ½ΡΠ». ΠΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°Π»ΠΈΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π» Π·Π°Π΄Π°ΡΠΈ Π±ΡΡΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ ΡΡΠΏΠ΅Π» ΠΎΡΠ²Π΅ΡΠ°ΡΡ. ΠΠΎΠ΄Ρ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡΡ, Π° ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΆΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΡΠ°Π»ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π½ΠΈΡ , Π° Π±ΡΠ» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ³Π»ΠΎΡΡΠ½ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΡΡΠΈ.
Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ ΡΠΏΠ°ΠΌΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ ΡΡ ΠΎΠ΄ΠΈΠ» Π² full GC. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Ρ Π½Π°Ρ ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΅Π·ΠΆΠ°Π»Π° Π½Π° ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π½ΠΎΠ΄Ρ, Ρ Π½Π΅ΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ°Π·Π²Π°Π»ΠΈΠ²Π°Π»ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.
ΠΡ Π΄Π΅Π»Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 6.4.0, Π³Π΄Π΅ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΠΈΠΊΡΠ΅Π½ΠΎ, Π½Π°ΠΌ Π±ΡΠ»ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 10 Π΄Π°ΡΠ°-Π½ΠΎΠ΄ ΠΈΠ· 360 Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ.
ΠΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠΎΡΠ»Π΅ Π²Π΅ΡΡΠΈΠΈ 6.4.0, Π³Π΄Π΅ ΠΏΠΎΡΠΈΠ½ΠΈΠ»ΠΈ ΡΡΠΎΡ ΡΡΡΡΠΌΠ½ΡΠΉ Π±Π°Π³, Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ ΡΠ±ΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΠΎ Β«ΡΠΌΠ½Π΅Π΅Β» ΠΎΠ½ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠ°Π». Π ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ 2, 3 ΠΈΠ»ΠΈ 10 (Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ) Π΄Π°ΡΠ°-Π½ΠΎΠ΄, ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π½ΠΎΠ΄Π° Π Π²ΡΡΠ»Π°, ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΎΠ΄Π΅ B, Π½ΠΎΠ΄Π΅ C, Π½ΠΎΠ΄Π΅ D.
Π Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΡΡΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΡΠΎΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠ°ΠΉΠΌ-Π°ΡΡΠ° Π½Π° ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΎ ΡΡΠΌ-ΡΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ, ΡΠ°Π²Π½ΡΠ΅ Π³Π΄Π΅-ΡΠΎ 20-30 ΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌ, ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΡΠΎ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ²Π»Π΅Π½Ρ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Β«ΡΠΈΡΡΠΎΠΉ Π½Π°ΡΠΊΠΈΒ» ΡΡΠΎ Π±Π°Π³. ΠΠΎΡΠΎΡΡΠΉ, ΠΊΡΡΠ°ΡΠΈ, Π±ΡΠ» ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΠΈΠΊΡΠ΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π² Π²Π΅ΡΡΠΈΠΈ 7.2.
ΠΡΠΈΡΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠ°Ρ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π° Π²ΡΡ ΠΎΠ΄ΠΈΠ»Π°, ΠΏΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΅Ρ Π²ΡΡ ΠΎΠ΄Π΅ Π²Π°ΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΡ, ΡΡΠΎ Π½Π° Π½Π΅ΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅-ΡΠΎ primary-shard (ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΠΌΠΎΡΡΠΈΡΡ replica-shard Π² Π΄ΡΡΠ³ΠΎΠΌ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ Π² primary, ΠΈ Π² Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ).
ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΆΠ΅ Π²ΡΡ Β«ΠΎΡΠ³ΡΠ΅ΠΌΠ΅Π»ΠΎΒ», Π²ΡΡΠ΅Π΄ΡΠΈΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Ρ Π½Π΅ ΠΌΠ°ΡΠΊΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ stale Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΆΠ΄Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΡΡΠ°ΠΉΠΌΠ°ΡΡΡΡΡΡ Π²ΡΠ΅ ΠΏΠΈΠ½Π³ΠΈ Π΄ΠΎ Π²ΡΡΠ΅Π΄ΡΠΈΡ
Π΄Π°ΡΠ°-Π½ΠΎΠ΄ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΌ-ΡΠΎ, ΡΠ°ΠΌ-ΡΠΎ ΠΈ ΡΠ°ΠΌ-ΡΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ
Π ΠΈΡΠΎΠ³Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Ρ Π½Π°Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 5 ΠΌΠΈΠ½ΡΡ Π² ΡΠ°Ρ ΠΏΠΈΠΊ. ΠΠ»Ρ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π½Π΅ΠΏΠΎΠ²ΠΎΡΠΎΡΠ»ΠΈΠ²ΠΎΠΉ ΠΌΠ°Ρ ΠΈΠ½Ρ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- Π£ Π½Π°Ρ 360 Π΄Π°ΡΠ°-Π½ΠΎΠ΄ Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ Π½Π° 700 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ.
- 60 ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΎΡΡΠΈΠ½Π³Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎ ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π°ΠΌ.
- 40 ΠΌΠ°ΡΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°Ρ ΠΎΡΡΠ°Π»ΠΈΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΈΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΡΠ½ Π²Π΅ΡΡΠΈΠΉ Π΄ΠΎ 6.4.0 β ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°, ΠΌΡ ΠΌΠΎΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΎΡΠ΅ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΠΊΠ²ΠΎΡΡΠΌ ΠΌΠ°ΡΡΠ΅ΡΠΎΠ²
- ΠΡΠ±ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»Π΅ΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Ρ Π½Π°Ρ ΡΠΏΠΈΡΠ°Π»ΠΈΡΡ Π² ΡΠΎ, ΡΡΠΎ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½ΠΎΠ΄Π° Π»ΠΎΠΌΠ°Π»ΠΎΡΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
- ΠΠΎ Π²ΡΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ heap.size, ΡΠ°Π²Π½ΡΠΉ 31 Π³ΠΈΠ³Π°Π±Π°ΠΉΡΡ: Π²ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π½Π° ΡΡΠΆΡΠ»ΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ Ρ leading wildcard Π»ΠΈΠ±ΠΎ ΡΠ±ΠΈΠ²Π°Π» ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½ΠΎΠ΄Ρ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ±ΠΈΠ²Π°Π»ΡΡ circuit breaker Π² ΡΠ°ΠΌΠΎΠΌ Elasticsearch.
- ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΡ ΡΡΠ°ΡΠ°Π»ΠΈΡΡ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠ·ΠΊΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅.
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π΅
Π§ΡΠΎΠ±Ρ Π²ΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΎΡΡ, ΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΠ°ΠΆΠ΄Π°Ρ Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π² Π½Π°ΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π΅ΡΡΡ, ΠΈ Π½Π° Π½Π΅ΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°ΡΠ΄Ρ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π³Π΄Π΅-ΡΠΎ ΡΡΠΎ-ΡΠΎ ΡΡΡΠΈΠΌ, ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ΅ΡΠ΅Π· 2-3 ΡΠ΅ΠΊΡΠ½Π΄Ρ ΡΠ°ΠΏΠΎΡΡΡΠ΅Ρ, ΡΡΠΎ Π² ΡΠ΅Π½ΡΡΠ΅ Π ΠΌΡ ΠΏΠΎΡΡΡΠΈΠ»ΠΈ Π½ΠΎΠ΄Ρ 2, 3, ΠΈ 4 β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² Π΄ΡΡΠ³ΠΈΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ ΠΌΡ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠΈΡΡ ΡΠ΅ Π½ΠΎΠ΄Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΠ°Π»ΠΈΡΡ ΡΠ°ΡΠ΄Ρ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅.
- ΠΠ½Π°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠ΅ΡΠ°, ΠΌΡ ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ pending-Π·Π°Π΄Π°Ρ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½Π° Π·Π°Π²ΠΈΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°, Π΅ΡΠ»ΠΈ Π²ΠΎΠ²ΡΠ΅ΠΌΡ Π½Π΅ ΠΎΡΡΠ°ΠΉΠΌΠ°ΡΡΠΈΡΡΡ, ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΡΡΠ°ΡΡ ΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ Π½Π°Ρ Π½Π΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΠΏΡΠΎΠΌΠΎΡΡΠ΅Π½ replica-ΡΠ°ΡΠ΄Π° Π² primary, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π²ΡΡΠ°Π½Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ.
- Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎ ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ garbage collector, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ Ρ ΡΡΠΈΠΌ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
- Π Π΅Π΄ΠΆΠ΅ΠΊΡΡ ΠΏΠΎ ΡΡΠ΅Π΄Π°ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Β«Π±ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ΅ Π³ΠΎΡΠ»ΠΎΒ».
- ΠΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΠΈΠΏΠ° heap, RAM ΠΈ I/O.
ΠΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Thread Pool Π² Elasticsearch.
Π§ΡΠΎ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π² Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ! ΠΡ ΡΡΠΌΠ΅Π»ΠΈ Π΄Π°ΡΡ Π½Π°ΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π±ΡΡΡΡΠΎ ΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅.
ΠΠ°, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π°ΡΠΈ Ρ ΠΎΡΠ΅Π»ΠΊΠΈ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ»ΠΎΠΆΠΈΡΡ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ°ΡΡΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com