ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ Patroni β ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ High Availability Π΄Π»Ρ PostgreSQL. ΠΠΎ Patroni β ΡΡΠΎ Π»ΠΈΡΡ template, Π° Π½Π΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (ΡΡΠΎ, Π² ΠΎΠ±ΡΠ΅ΠΌ, ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ). ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, Π½Π°ΡΡΡΠΎΠΈΠ² Patroni Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ Π»Π°Π±Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π°ΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠ°Π·Π²Π°Π»ΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ Π»Π°Π±Π΅.
Π Π°ΡΡΠΊΠ°ΠΆΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ ΡΠ΅Π±Ρ. Π― Π½Π°ΡΠΈΠ½Π°Π» ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ. Π Π°Π±ΠΎΡΠ°Π» Π² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. Π‘ 2014-Π³ΠΎ Π³ΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ Π² Data Egret. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ°Π»ΡΠΈΠ½Π³ΠΎΠΌ Π² ΡΡΠ΅ΡΠ΅ Postgres. Π ΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Postgres, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Postgres, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π·Π½Π°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠ΅ΠΉ.
Π Π² ΠΊΠΎΠ½ΡΠ΅ 2018-Π³ΠΎ Π³ΠΎΠ΄Π° ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎΡΠΈΡ ΠΎΠ½ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Patroni. Π Π½Π°ΠΊΠΎΠΏΠΈΠ»ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΡΡ. ΠΡ ΠΊΠ°ΠΊ-ΡΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ, ΡΡΠ½ΠΈΠ»ΠΈ, ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ²ΠΎΠΈΠΌ best practices. Π Π² ΡΡΠΎΠΌ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ Ρ Π±ΡΠ΄Ρ ΠΎ Π½ΠΈΡ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ.
ΠΠΎΠΌΠΈΠΌΠΎ Postgres Ρ Π»ΡΠ±Π»Ρ Linux. ΠΡΠ±Π»Ρ Π² Π½Π΅ΠΌ ΠΊΠΎΠ²ΡΡΡΡΡΡΡ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ, Π»ΡΠ±Π»Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ΄ΡΠ°. ΠΡΠ±Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π΄ΠΎΠΊΠ΅Ρ, Kubernetes. ΠΠ΅Π½Ρ ΡΡΠΎ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ°ΡΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ²ΡΡΠΊΠΈ. ΠΡΠ±Π»Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°ΠΌΠΈ. Π Π»ΡΠ±Π»Ρ postgresβΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π°Π΄ΠΌΠΈΠ½ΡΡΠ²ΠΎΠΌ, Ρ. Π΅. ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΈΡΡ Π½Π° Go. ΠΠ΅ ΡΠ²Π»ΡΡΡΡ software engineer, ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΏΠΈΡΡ Π½Π° Go. Π ΠΌΠ½Π΅ ΡΡΠΎ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅.
- Π― Π΄ΡΠΌΠ°Ρ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π²Π°Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ Π² Postgres Π½Π΅Ρ HA (High Availability) ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ HA, Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ, Π½Π°ΡΡΡΠΎΠΈΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΡ ΡΡΠΈΠ»ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ.
- ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Patroni β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ HA Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΠΊΡΡΡΠΎ ΠΈ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. ΠΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠ² ΡΡΠΎ Π²ΡΠ΅ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ Π»Π°Π±Π΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Patroni ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ. Π ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
- ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π ΠΏΡΠΎ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ.
- Π Π°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΡΡΡΠΈΠ²Π°Π»ΠΈ β ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π»ΠΈ ΡΡΠΎ Π½Π°ΠΌ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ.
- Π― Π½Π΅ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Patroni, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π³ΡΠ³Π»ΠΈΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡ Π΅ΠΌΠ°Ρ , Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ , Π½Π°ΠΉΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
- ΠΠ΅ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎ ΡΡΠΆΠΎΠΉ ΠΎΠΏΡΡ. ΠΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΡ.
- Π Π½Π΅ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Patroni ΠΈ PostgreSQL. ΠΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ°Π·Π²Π°Π»ΠΈΠ»ΡΡ, Ρ ΠΏΡΠΎ ΡΡΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Ρ.
Π Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ disclaimer ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ Π½Π°Ρ Π΄ΠΎΠΊΠ»Π°Π΄.
ΠΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Ρ Π½Π°Ρ Π² ΠΏΠ΅ΡΠ²ΡΠ΅ 6-7-8 ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ²ΠΎΠΈΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ best practices. Π ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°Ρ ΠΈΡΡΠ΅Π·Π»ΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π°ΡΠ²Π»ΡΠ»ΡΡ Π³Π΄Π΅-ΡΠΎ ΠΏΠΎΠ»Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΡΠ΅ Π±ΡΠ»ΠΎ ΡΠ²Π΅ΠΆΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΈ Ρ ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΠ».
ΠΠΎ Ρ ΠΎΠ΄Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Π° Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π» ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΡΡΠΌΠΎΡΡΠ΅ΠΌΡ, ΡΠΌΠΎΡΡΠ΅Π» Π»ΠΎΠ³ΠΈ. Π ΡΠ°ΡΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΌΠΎΠ³Π»Π° Π·Π°Π±ΡΡΡΡΡ, Π»ΠΈΠ±ΠΎ ΡΠ°ΡΡΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π° Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π·Π±ΠΎΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, Π»ΠΈΠ±ΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡ ΠΌΠ΅Π½Ρ Π·Π° ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·Π²ΠΈΠ½ΠΈΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Patroni?
- ΠΡΠΎ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ HA. Π’Π°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π Ρ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅. Patroni β ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΠ΅Π±ΡΡΠ½Π½Π°Ρ ΠΏΡΠ»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΡΠΈΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ. Π΅. Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΡ ΡΡΠΈΠ»ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΏΡΠΈΠ½ΠΎΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·Ρ.
- ΠΡΠΎ Π°Π³Π΅Π½ΡΡΠΊΠ°Ρ ΡΠ»ΡΠΆΠ±Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΠΎΠΉ, ΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° init-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Postgres. ΠΠ½Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Postgres, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ, ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
- Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π Ρ ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Patroni ΠΏΠΎΡΠ΅Π» ΠΏΠΎ ΠΏΡΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ state Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Etcd, Consul, ZooKeeper, Π»ΠΈΠ±ΠΎ kubernetesβΠΊΠΈΠΉ Etcd, Ρ. Π΅. ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ· ΡΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
- Π ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Patroni β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ². ΠΡΠ»ΠΈ Π²Π·ΡΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Repmgr, ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ ΡΠ°ΠΌ ΠΈΠ΄Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅. Π‘ Repmgr ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ switchover, Π½ΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΠΌ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΡΠΎ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ. Π Patroni ΡΠΆΠ΅ Π΅ΡΡΡ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
- Π Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ, Π½Π°Π»ΠΈΠ²ΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ. Π΄. ΠΠΎ ΡΡΠΎ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Π°, ΠΏΡΠΎ ΡΡΠΎ Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Ρ.
Π Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΡΠΎΠ³ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Patroni β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ Ρ Π½Π°Ρ ΠΎΡΡΠ°Π²Π°Π»ΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Patroni, Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ» Postgres, ΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Patroni ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΌ Patroni, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ DCS, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ state. Π Π²ΡΠ΅ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ?
ΠΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ:
- ΠΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ Postgres. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, ΡΡΠΎ-ΡΠΎ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΡΠΎΡ.
- ΠΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ ΡΠ°ΠΌ Patroni.
- ΠΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ DCS, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ state.
- Π ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ ΡΠ΅ΡΡ.
ΠΡΠ΅ ΡΡΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΡ Ρ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π² Π΄ΠΎΠΊΠ»Π°Π΄Π΅.
Π― Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ, Π½Π΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΊΠ΅ΠΉΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠ΅ΠΉΡ Π±ΡΠ» Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΉ, Π΅Π³ΠΎ Π±ΡΠ»ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡβ¦ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠ΅ΠΉΡ Π±ΡΠ» Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ Π΅Π³ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ.
Π ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΡΠΎ ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²Π·ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π° ΡΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈ Π½Π°ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ DCS. ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, Ρ. Π΅. ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΡΠ°ΠΊ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΈΠ΄Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
Π Π·Π΄Π΅ΡΡ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. Π’. Π΅. Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ Π²ΠΎΡ ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄Π½ΠΎΠΌΠΎΠΌΠ΅Π½ΡΠ½ΡΠΉ, Ρ. Π΅. ΠΎΠ½ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΠ½ΡΡΡΡΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΡΡΠΎΠΌΡ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠ°Π»Π° ΠΈ Π²ΡΠ΅ΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, Ρ. Π΅. ΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. Π ΠΌΡ Π΄Π΅Π»ΠΈΠΌ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π½Π° ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°: Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°. Π’. Π΅. ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΡΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΊΠ°Π»Π΅.
Π ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΌΡ ΠΈΡΠ΅ΠΌ ΠΏΡΠΈΡΠΈΠ½Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΡΡΠΎ ΡΡΠ°Π»ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΡ.
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π»ΠΎΠ³ΠΈ, ΡΠΎ ΡΡΠΎ Π±ΡΠ΄ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π»ΠΎΠ³ΠΈ Patroni. ΠΠ½ Π² Π½ΠΈΡ Π½Π°ΠΌ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠ°Π» ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ, ΠΈ ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΡΠ»Π° Π½Π° ΡΡΠΎΡ ΡΠ·Π΅Π». Π’ΡΡ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΅Π½ΠΎ.
ΠΠ°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, Ρ. Π΅. ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΅Ρ Π°ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ. Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π΄Π΅ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ°ΡΡΠ΅Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ DCS, Ρ. Π΅. Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. Π ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ»Π°Π³Π°Π΅Ρ Ρ ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ. ΠΠΎΡ ΡΡΠ° ΡΡΡΠΎΡΠΊΠ° Β«demoted selfΒ» Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΡ, ΡΠΎ ΠΌΡ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ°.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π»ΠΎΠ³ΠΈ Patroni, ΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠ° Π²ΡΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ°ΠΉΠΌ-Π°ΡΡΠΎΠ², Ρ. Π΅. Π°Π³Π΅Π½Ρ Patroni Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ DCS. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Consul agent, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΡΡΡ 8500.
Π ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Patroni ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ ΠΎΡΡΠ΅. Π Π½Π° ΡΡΠΎΠΌ ΠΆΠ΅ ΡΠ·Π»Π΅ Π±ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Ρ Consul-ΡΠ΅ΡΠ²Π΅ΡΠ°. Π‘ΠΎΠ·Π΄Π°Π² Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Consul. ΠΠ½ΠΈ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΡΡΡ.
Π§Π΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΏΠ°Π»Π°, Π½Π°Ρ Patroni ΡΠΌΠΎΠ³ ΡΠ½ΠΎΠ²Π° ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π°Π³Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡ. Π ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Pgdb-2 ΡΠ½ΠΎΠ²Π° ΡΡΠ°Π» ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. Π’. Π΅. Π±ΡΠ» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ»ΠΈΠΏ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ·Π΅Π» ΡΠ»ΠΎΠΆΠΈΠ» Ρ ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ ΠΌΠ°ΡΡΠ΅ΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ½ΠΎΠ²Π° ΠΈΡ Π½Π° ΡΠ΅Π±Ρ Π²Π·ΡΠ», Ρ. Π΅. Π²ΡΠ΅ Π²Π΅ΡΠ½ΡΠ»ΠΎΡΡ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ.
Π ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΆΠ½ΡΡ ΡΡΠ°Π±ΠΎΡΠΊΡ, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠ΅Π½ΠΈΠ²Π°ΡΡ, ΡΡΠΎ Patroni ΡΠ΄Π΅Π»Π°Π» Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π’. Π΅. ΠΎΠ½ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΡΠ½ΡΠ» Ρ ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ.
Π Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Consul-ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ ΠΈ Π±Π°Π·Ρ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π»ΡΠ±Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°: Π±ΡΠ΄Ρ ΡΠΎ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π΄ΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, ΠΎΠ½Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Consul.
Π ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΆΠΈΡΡ Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Π΄Π»Ρ Consul. Π Patroni ΡΠ°Π±ΠΎΡΠ°Π» ΡΠΆΠ΅ c ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Consul’ΠΎΠΌ, Ρ. Π΅. Π±ΡΠ» ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ Postgres, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ Consul. ΠΡΠΎ Π±Π°Π·ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅ ΡΡΠΈ Π²Π΅ΡΠΈ ΡΠ°Π·Π½ΠΎΡΠΈΡΡ ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ Π½Π΅ ΠΆΠΈΠ»ΠΎ Π²ΠΌΠ΅ΡΡΠ΅.
ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΡΡΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ttl, loop_wait, retry_timeout, Ρ. Π΅. ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π·Π° ΡΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡ ΡΡΠΈ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΈΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΎΡ ΡΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΉΠ΄Π΅ΠΌ Π·Π° Π²ΠΎΡ ΡΡΠΈ Π»ΠΈΠΌΠΈΡΡ ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡΡ.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΠΏΡΠΎΡΡΠ°Ρ. ΠΡ Π²Π·ΡΠ»ΠΈ ΠΈ DCS ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΏΠ΅ΡΠ²ΡΡ. ΠΠ½Π° ΠΏΠΎΡ ΠΎΠΆΠ° ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΡΠ½ΠΎΠ²Π° Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ DCS.
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π»ΠΎΠ³ΠΈ, ΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ. Π Patroni Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ DCS, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ.
Π‘ΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, Π·Π΄Π΅ΡΡ Patroni ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ. ΠΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ pg_rewind, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠΎΡΠ°ΡΡ ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΠΌΠ°ΡΡΠ΅ΡΡ, ΠΈ ΡΠΆΠ΅ Π΄ΠΎΠ³Π½Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ. Π’ΡΡ Patroni ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Π΅ΠΌΡ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΉΡΠΈ ΡΠΎ ΠΌΠ΅ΡΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΡ, Ρ. Π΅. ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π». Π Π² ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ Patroni Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ½ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ ΠΏΠΈΡΠ΅Ρ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠΌΠ°ΡΡΠ²Π°ΡΡ ΡΡΠΈ Π»ΠΎΠ³ΠΈ Π±ΡΡΡΡΠΎ, ΡΠΎ ΠΌΡ ΠΏΠΎ Π»ΠΎΠ³Π°ΠΌ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π»ΠΎΠ³ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈΡΡ, Π·Π½Π°ΡΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π°ΡΠ°Π»ΠΈΡΡ. ΠΡ Π±ΡΡΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π° ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ, ΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
Π Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π²Π»Π°Π΄Π΅Π»Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. Π Π΅ΡΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΡΡ, ΡΠΎ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠΏΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Patroni Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π°Ρ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡ ΠΈΡΠ΅ΠΌ ΡΠΎ ΠΌΠ΅ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ°Π»ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π ΠΏΡΠΎΠΌΠΎΡΠ°Π² Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. Π ΡΠ°Π· Ρ Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ»ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Ρ DCS ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Consul, ΠΌΡ Π·Π°ΠΎΠ΄Π½ΠΎ ΡΠΌΠΎΡΡΠΈΠΌ ΠΈ Π² Π»ΠΎΠ³ΠΈ Consul, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΡΠ°ΠΌ.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠ² Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ Π² Π»ΠΎΠ³Π°Ρ Consul, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΡΠΎΡΠ΅Π΄ΠΈ ΠΏΠΎ Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΡ Π½Π°ΡΠ°Π»ΠΈ ΡΠΎΠΌΠ½Π΅Π²Π°ΡΡΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
Π Π΅ΡΠ»ΠΈ Π΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π»ΠΎΠ³ΠΈ Π΄ΡΡΠ³ΠΈΡ Consul-Π°Π³Π΅Π½ΡΠΎΠ², ΡΠΎ ΡΠ°ΠΌ ΡΠΎΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠΎΠ»Π»Π°ΠΏΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π Π²ΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠΎΠΌΠ½Π΅Π²Π°ΡΡΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. Π ΡΡΠΎ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎΠΌ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π΄ΠΎ ΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π΅ΡΡΡ Π²ΡΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, deadline, RPC falled, Ρ. Π΅. ΡΠ²Π½ΠΎ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΡΠ²Π΅Ρ β ΡΡΠΎ ΡΠΈΠ½ΠΈΡΡ ΡΠ΅ΡΡ. ΠΠΎ ΠΌΠ½Π΅, ΡΡΠΎΡ Π½Π° ΡΡΠΈΠ±ΡΠ½Π΅, Π»Π΅Π³ΠΊΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π·Π°ΡΠ²Π»ΡΡΡ. ΠΠΎ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π° ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΊΠ°Π·ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π±Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠΈΠ½ΠΈΡΡ ΡΠ΅ΡΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΆΠΈΡΡ Π² ΠΠ¦ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΈΠ½ΠΈΡΡ ΡΠ΅ΡΡ, Π²Π»ΠΈΡΡΡ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½Ρ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
ΠΠ°ΡΠΈΠ°Π½ΡΡ Π΅ΡΡΡ:
- Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΠΈΡΠ°Π½, ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡ, Π΄Π°ΠΆΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Consul-ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Ρ. Π΅. ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ². Π ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Consul-Π°Π³Π΅Π½ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ. ΠΠ° ΡΡΠ΅Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΠΎΡΠΌΡ ΠΈ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ.
- ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ raft_multiplier. ΠΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Consul-ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ Π²ΡΡΡΠ°Π²Π»Π΅Π½ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 5. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ staging ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Consul ΡΠ΅ΡΠΈ. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π Π΄Π»Ρ production Π΅Π³ΠΎ ΡΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΡΠΎΠ±Ρ ΡΠ·Π»Ρ ΡΠ°ΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π»ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ.
- ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Consul ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«niceΒ», ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ ΠΠ‘ ΠΏΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡ Π²Π·ΡΠ»ΠΈ ΠΈ Consul-Π°Π³Π΅Π½ΡΠ°ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ nice, Ρ.Π΅. ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°Π²Π°Π»Π° Consul ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΈ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ Π½Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
- ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Consul. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠΎΠ²Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊ Etcd. Π ΠΌΡ Ρ Π½ΠΈΠΌ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΡΠΏΠΎΡΠΈΠΌ, ΡΡΠΎ Π»ΡΡΡΠ΅ Etcd ΠΈΠ»ΠΈ Consul. ΠΠΎ Π² ΠΏΠ»Π°Π½Π΅, ΡΡΠΎ Π»ΡΡΡΠ΅, ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Ρ Π½ΠΈΠΌ ΡΡ ΠΎΠ΄ΠΈΠΌΡΡ Π²ΠΎ ΠΌΠ½Π΅Π½ΠΈΠΈ, ΡΡΠΎ Ρ Consul Π΅ΡΡΡ Π°Π³Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . Π’. Π΅. Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Patroni Ρ Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ Π°Π³Π΅Π½Ρ. Π Π²ΠΎΡ ΡΡΠΎΡ Π°Π³Π΅Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ Ρ Π°Π³Π΅Π½ΡΠΎΠΌ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΡΠΎ Patroni ΡΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Consul-ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ. Π ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π ΠΏΠ»Π°Π½Π΅ Etcd Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π°Π³Π΅Π½ΡΠ° Π½Π΅Ρ. Patroni ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Etcd-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ. Π ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Ρ ΡΠ΅Π±Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Etcd, ΡΠΎ Etcd Π±ΡΠ΄Π΅Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ, ΡΠ΅ΠΌ Consul. ΠΠΎ ΠΌΡ Ρ Π½Π°ΡΠΈΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ±ΡΠ°Π» ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Ρ ΡΠ΅Π±Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ. Π Ρ Π½Π°Ρ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Consul Ρ Π²ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
- Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠ½ΠΊΡ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄Π½ΡΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π±ΠΎΠ»ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, ΡΡΠΎ Π½Π°ΡΠΈ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΠ΄ΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΠΈ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΡΡΡ Patroni Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ.
Π― Π΄ΡΠΌΠ°Ρ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅, ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Patroni, Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, Π»Π°Π³Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ. ΠΠΎ ΡΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π° Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΠ²Π½ΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΠΈ ΡΠ·Π»Π°, Π° Π½Π΅ Π΄Π²Π°.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. Π ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° Ρ Π½Π°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΏΡΠΎΠΏΠ°Π»Π°. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° ΠΏΡΠΎΠΏΠ°Π»Π° ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π΅Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. Π ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΈΠ΄Π΅ΠΌ Π² Π»ΠΎΠ³ΠΈ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π½Π°Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΡΠ°Π»Π° ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΆΠ΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π°Π»ΠΈΠ»Π°ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. ΠΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π»ΠΎΠ³ΠΈ Patroni ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΡΡΠ°Π΄ΠΈΠΈ pg_rewind. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠΎΡΠ°ΡΡ ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΈ ΠΏΠΎ Π½Π΅ΠΌΡ Π΄ΠΎΠ³Π½Π°ΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ°.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΡ Postgres ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. Π ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π΅ Π½Π΅Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
ΠΠ°Π΄ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π΅Π΅ Π½Π΅Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π»ΠΎΠ³ΠΎΠ². ΠΡ ΠΈΠ΄Π΅ΠΌ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π² Π»ΠΎΠ³Π°Ρ . ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Π»ΡΡ pg_rewind ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» checkpoint. Π ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π°. ΠΠΎΠ³Π΄Π° ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΠΌΠ°ΡΡΠ΅ΡΡ ΠΈ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΡΠΈ Π»ΠΎΠ³ΠΈ, ΠΎΠ½ΠΈ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ, ΠΈΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ.
Π― ΡΡΠ°Π²Π½ΠΈΠ²Π°Π» timestamps, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ. Π ΡΠ°ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² 150 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, Ρ. Π΅. Π² 369 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ checkpoint, Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ WAL-ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ. Π Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² 517 ΡΠΏΡΡΡΡ 150 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π·Π°ΠΏΡΡΡΠΈΠ»ΡΡ rewind Π½Π° ΡΡΠ°ΡΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅. Π’. Π΅. Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ 150 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π½Π°ΠΌ Ρ Π²Π°ΡΠΈΠ»ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π½Π΅ ΡΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΈ Π·Π°ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ?
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ»ΠΎΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°ΠΌ ΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ. Π₯ΠΎΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΌΡ ΡΠ»ΠΎΡΡ ΠΎΡΠΊΠ»ΡΡΠ°Π»ΠΈ. ΠΠ°ΠΌ ΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΠ»ΠΎΡΡ Π±ΡΠ΄ΡΡ ΠΊΠΎΠΏΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ WAL-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎΠ½ΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ. ΠΠ½ ΡΠΏΠ°Π΄Π΅Ρ. ΠΡ ΠΏΠΎΠΌΡΡΠ°Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ Π±Π΅Π· ΡΠ»ΠΎΡΠΎΠ². Π ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ Π½Π°ΠΌ ΡΠ»ΠΎΡΡ Π½ΡΠΆΠ½Ρ, ΠΌΡ Π²Π΅ΡΠ½ΡΠ»ΠΈ ΡΠ»ΠΎΡΡ.
ΠΠΎ ΡΡΡ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΡ, ΠΎΠ½ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠ»ΠΎΡΡ ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ»ΠΎΡΠ°ΠΌΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ WAL-ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ. Π ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ wal_keep_segments. ΠΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 8 ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ². ΠΡ ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ Π΄ΠΎ 1 000 ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°. Π ΠΌΡ 16 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΏΠΎΠ΄Π°ΡΠΈΠ»ΠΈ Π½Π° wal_keep_segments. Π’. Π΅. ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Ρ Π½Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π½Π° Π²ΡΠ΅Ρ ΡΠ·Π»Π°Ρ Π΅ΡΡΡ Π·Π°ΠΏΠ°Ρ Π² 16 Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠΎΠ² ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π ΠΏΠ»ΡΡ β ΡΡΠΎ Π΅ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ maintenance Π·Π°Π΄Π°Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ΅ΠΏΠ»ΠΈΠΊ. Π ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΅Π΅ Π²ΡΠΊΠ»ΡΡΠΈΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ. Π ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ, Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΡΠ»ΠΎΡ. Π Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ wal_keep_segments, ΡΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, ΠΆΡΡΠ½Π°Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΏΡΠΎΠΈΠ³ΡΠ°ΡΡΡΡ. ΠΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ, ΠΎΠ½Π° Π·Π°ΠΏΡΠΎΡΠΈΡ ΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π³Π΄Π΅ ΠΎΠ½Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ, Π½ΠΎ Π½Π° ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ. Π ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄Π΅ΡΠΆΠΈΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ Π·Π°ΠΏΠ°Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ².
Π£ Π½Π°Ρ Π΅ΡΡΡ production-Π±Π°Π·Π°. Π’Π°ΠΌ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. ΠΡ Π·Π°ΡΠ»ΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ β Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π° ΠΌΠ΅ΡΡΠ΅, Π»Π°Π³Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π΅Ρ. ΠΡΠΈΠ±ΠΎΠΊ ΠΏΠΎ ΠΆΡΡΠ½Π°Π»Π°ΠΌ ΡΠΎΠΆΠ΅ Π½Π΅Ρ, Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡΠΎΠ΄ΡΠΊΡΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΌΡ ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ Π²ΠΈΠ΄ΠΈΠΌ, Π° Π² Π±Π°Π·Π΅ ΠΌΡ ΠΈΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ. Π Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ pg_rewind ΠΈΡ Π·Π°ΡΠ΅Ρ. ΠΡ ΡΡΠ°Π·Ρ ΡΡΠΎ ΠΏΠΎΠ½ΡΠ»ΠΈ, Π½ΠΎ ΠΏΠΎΡΠ»ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ.
Π Π»ΠΎΠ³Π°Ρ ΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΊΡΠΎ ΡΡΠ°Π» ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΡΠΎ Π±ΡΠ» ΡΡΠ°ΡΡΠΌ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π·Π°Ρ ΠΎΡΠ΅Π» ΡΡΠ°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, Ρ. Π΅. Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π²ΠΎΡ ΡΡΠΈ Π»ΠΎΠ³ΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ ΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΠΎΡΠ΅ΡΡΠ½.
ΠΠ°Ρ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠ»ΡΡ. Π Π² Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊΠ΅ Π±ΡΠ» ΠΏΡΠΎΠΏΠΈΡΠ°Π½ Patroni. ΠΠ°ΠΏΡΡΡΠΈΠ»ΡΡ Patroni. ΠΠ½ ΡΠ»Π΅Π΄ΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΠ» Postgres. Π’ΠΎΡΠ½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Postgres’Π° ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, Patroni Π·Π°ΠΏΡΡΡΠΈΠ» ΠΏΡΠΎΡΠ΅ΡΡ pg_rewind. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠ½ ΡΡΠ΅Ρ ΡΠ°ΡΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΡΠΊΠ°ΡΠ°Π» Π½ΠΎΠ²ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ. ΠΠ΄Π΅ΡΡ Patroni ΠΎΡΡΠ°Π±ΠΎΡΠ°Π» ΡΠΈΠΊΠ°ΡΠ½ΠΎ, Ρ. Π΅. ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ. ΠΠ»Π°ΡΡΠ΅Ρ Ρ Π½Π°Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ. Π£ Π½Π°Ρ Π±ΡΠ»ΠΎ 3 Π½ΠΎΠ΄Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° 3 Π½ΠΎΠ΄Ρ β Π²ΡΠ΅ ΠΊΡΡΡΠΎ.
ΠΡ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ . Π Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ. ΠΡ ΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ» rewind. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ ΡΡΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΈΠΌ Π·Π°ΠΏΠΈΡΡΠΌ Π² ΠΆΡΡΠ½Π°Π»Π΅. ΠΠ°ΠΏΡΡΡΠΈΠ»ΡΡ rewind, ΡΡΠΎ-ΡΠΎ ΡΠ°ΠΌ ΡΠ΄Π΅Π»Π°Π» ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ.
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΡΠΎ Π²ΠΎΡ ΡΡΠ° ΠΎΡΠΌΠ΅ΡΠΊΠ°. Π Π½Π°ΠΌ Π½ΡΠΆΠ½Π° Π²ΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅ΡΠΊΠ°, Ρ. Π΅. ΡΠΎ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΎΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ.
ΠΡ Π±Π΅ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠΉ pg_wal_lsn_diff ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΡΡΠΈ Π΄Π²Π΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ. Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ 17 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ. ΠΠ½ΠΎΠ³ΠΎ ΡΡΠΎ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΌ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ 17 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ β ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ. Π’ΡΡ ΡΠΆΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ Π±ΠΈΠ·Π½Π΅ΡΠ°.
ΠΠΎ ΡΡΠΎ ΠΌΡ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΡ Π΄Π»Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠΈΡΡ β Π²ΡΠ΅Π³Π΄Π° Π»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊ Patroni ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ? Π§Π°ΡΠ΅ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΉΡΠΈ Π½Π° ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΠ½ ΡΠ΅Ρ Π°Π». ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΎΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΌ. Π ΠΏΠΎΠ½ΡΡΡ β ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΈΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π² standalone-ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΡΡΠ°ΡΠΈΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅.
Π ΡΠΎΠ»ΡΠΊΠΎ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²ΠΎΡ ΡΡΠΎΡ ΡΠ·Π΅Π» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π² Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«maximum_lag_on_failoverΒ». ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΌΠ½Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ.
ΠΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? ΠΡΠ»ΠΈ Π½Π°ΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΎΡΡΡΠ°Π΅Ρ Π½Π° 1 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π»Π°Π³Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠΎ ΡΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠ°ΡΡΠΈΡ Π² Π²ΡΠ±ΠΎΡΠ°Ρ . Π Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, Patroni ΡΠΌΠΎΡΡΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΎΡΡΡΠ°ΡΡ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΡΡΠ°ΡΡ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ°Ρ Π·Π°ΡΠΈΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ .
ΠΠΎ ΡΡΡ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π»Π°Π³ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Patroni ΠΈ DCS ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ. ΠΠΎ-ΠΌΠΎΠ΅ΠΌΡ, 30 ΡΠ΅ΠΊΡΠ½Π΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ttl ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π»Π°Π³ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊ Π² DCS ΠΎΠ΄ΠΈΠ½, Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π»Π°Π³ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π»Π°Π³Π° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ, Ρ. Π΅. ΡΡΠ° ΡΡΡΠΊΠ° Π½Π΅ realtime. Π ΠΎΠ½Π° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ. Π Π΄Π΅Π»Π°ΡΡ Π½Π° Π½Π΅ΠΉ Π½Π°Π²ΠΎΡΠΎΡΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π΅ ΡΡΠΎΠΈΡ.
Π ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΡΡΠ΅ΠΊ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π΅ΡΡΡ. Π Π² Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄Π½Π° ΡΠΎΡΠΌΡΠ»Π°, Π° Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΡΡΠ³Π°Ρ ΡΠΎΡΠΌΡΠ»Π°. Π’. Π΅. ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Patroni ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΈ ΡΠΎΡΠΌΡΠ»Ρ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ.
Π Ρ ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π΅ΡΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΡΠ΅Ρ Π°Π» Π²ΠΏΠ΅ΡΠ΅Π΄, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Ρ Π°ΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ Π·Π° ΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π’. Π΅. ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±ΡΠ» Π°Π²ΡΠΎΠ²Π°ΠΊΡΡΠΌ, ΠΎΠ½ Π½Π°ΠΏΠΈΡΠ°Π» Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΡ ΡΠ°Π½ΠΈΠ» ΠΈΡ Π² ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡΡΡ. Π ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Π²ΠΎΡ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π»ΠΎΠ³ΠΈ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ maximum_lag_on_failover ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°. Π Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΡΠΈΠ΅ Π² Π²ΡΠ±ΠΎΡΠ°Ρ . Π ΠΎΠ½Π° ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡ ΡΡΠ°ΡΡΠΈΡ Π² Π³ΠΎΠ½ΠΊΠ΅ Π·Π° Π»ΠΈΠ΄Π΅ΡΠ°. Π ΠΎΠ½Π° ΠΆΠ΄Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ. ΠΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΌΠ΅ΡΠ° ΠΎΡ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ΄Π΅ΡΡ Ρ Π½Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΠΏΠΈΡΠ°Π»Π°, ΡΡΠΎ ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Postgres. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π° ΡΠ°ΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΉΡΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ SSH. Π Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΡΠΎΡ Ρ ΠΎΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ. ΠΠ·-Π·Π° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, Ρ ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ ΡΡΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΊΠ°ΠΊ Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ. Π ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΡ ΡΠΆΠ΅ ΠΈΠ΄Π΅ΠΌ ΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΠ»ΠΈ Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ, Ρ. Π΅. ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ Π·Π½Π°Π»ΠΈ, Π³Π΄Π΅ ΠΊΠΎΠΏΠ°ΡΡ ΠΈ ΡΡΠΎ ΠΈΡΠΊΠ°ΡΡ.
ΠΡ Π·Π°Π»Π΅Π·Π»ΠΈ Π² postgresβΠΎΠ²ΡΠΉ Π»ΠΎΠ³, Π½Π°ΡΠ°Π»ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π»ΡΡΡΡ ΡΠ°ΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ-Π΄Π²Π΅-ΡΡΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Ρ Π½Π°Ρ Π°Π²ΡΠΎΠ²Π°ΠΊΡΡΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΡΡΡΠ°Π½Π½ΠΎ. Π ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅. Π’. Π΅. ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ.
ΠΡ Π·Π°Π³Π»ΡΠ½ΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ dmesg (Π² Π»ΠΎΠ³ ΡΠ΄Π΅ΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ). Π ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Ρ Π½Π°Ρ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄ΠΈΡΠΊΠΎΠ². ΠΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»Π° ΡΠΎΠ±ΠΎΠΉ software Raid. ΠΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ /proc/mdstat ΠΈ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°. Π’. Π΅. ΡΡΡ Raid ΠΈΠ· 8 Π΄ΠΈΡΠΊΠΎΠ², Ρ Π½Π°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ. ΠΡΠ»ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ°Π·Π³Π»ΡΠ΄ΡΠ²Π°ΡΡ ΡΠ»Π°ΠΉΠ΄, ΡΠΎ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ ΡΠ°ΠΌ sde ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. Π£ Π½Π°Ρ, ΡΡΠ»ΠΎΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π²ΡΠΏΠ°Π» Π΄ΠΈΡΠΊ. ΠΡΠΎ ΡΡΡΠΈΠ³Π³Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΠΈΡΠΏΡΡΠ°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Postgres.
Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Patroni Π½Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³ Π±Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Patroni Π½Π΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΈΡΠΊΠ°. Π ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ. ΠΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π΄ΠΈΡΠΊΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ.
Π Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΌΡΡΠ»Ρ β Π° ΠΌΠΎΠ³ Π±Ρ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ ΡΠ΅Π½ΡΠΈΠ½Π³, Π»ΠΈΠ±ΠΎ ΡΠΎΡΡ watchdog? ΠΡ ΠΏΠΎΠ΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ Π²ΡΡΠ΄ Π»ΠΈ Π±Ρ ΠΎΠ½ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Patroni ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ DCS ΠΈ Π½Π΅ Π²ΠΈΠ΄Π΅Π» Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π’. Π΅. Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ DCS ΠΈ Patroni Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Π±ΡΠ»ΠΎ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ, Ρ ΠΎΡΡ ΠΏΠΎ ΡΠ°ΠΊΡΡ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄ΠΈΡΠΊΠΎΠΌ, Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ Π±Π°Π·Ρ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΡΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π» ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ, ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°Π», ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ²ΡΡΡΠ» ΠΈ Π½Π°Π·Π²Π°Π» Π΅Π΅ ΠΊΠ»Π°ΡΡΠ΅Ρ-ΡΠΈΠΌΡΠ»ΡΠ½ΡΠΎΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ Π½Π΅ ΠΌΠΎΠ³ ΡΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, Ρ. Π΅. Patroni Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π», Patroni ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π», ΡΡΠΎ ΡΡΠΎΡ ΡΠ·Π΅Π» ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ Π½Π΅ Π±ΡΠ» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ. Π‘Π΅ΠΉΡΠ°Ρ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ. ΠΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΎΡΡ Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Ρ ΡΠ΅Π³ΠΎ Π²ΡΠ΅ Π½Π°ΡΠ°Π»ΠΎΡΡ? ΠΠ°ΡΠ°Π»ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, Ρ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΡΠΎΡΠΌΠΎΠ·ΠΎΠ². Π£ Π½Π°Ρ Π±ΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π΅, ΠΏΠΎ Π΄Π²Π΅.
ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Ρ. Π΅. ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ²Π°Π»ΠΈΡΡ.
ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π·Π½ΠΎΠΉ ΡΡΠΆΠ΅ΡΡΠΈ.
Π, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π΄ΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²Π°Ρ.
Π ΡΠ°ΠΌΠΎΠ΅ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ β ΡΡΠΎ ΠΏΡΠΈΠ»Π΅ΡΠ΅Π²ΡΠΈΠΉ immediate shutdown request. Π£ Postgres Π΅ΡΡΡ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
- ΠΡΠΎ graceful, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΆΠ΄Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
- ΠΡΡΡ fast, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΠΈΠ΄Π΅ΠΌ Π½Π° Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
- Π immediate. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ immediate Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΡΡ, ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ. Π Π²ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΡΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ RST (TCP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠ²Π°Π½ΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ Π»ΠΎΠ²ΠΈΡΡ).
ΠΡΠΎ ΠΏΠΎΡΠ»Π°Π» ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π»? Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Postgres Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π½Π΅ ΠΏΠΎΡΡΠ»Π°ΡΡ, Ρ. Π΅. ΡΡΠΎ kill-9. ΠΠ½ΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΡΠ°ΠΊΠΎΠ΅ Π½Π΅ ΡΠ»ΡΡ, ΠΎΠ½ΠΈ Π½Π° ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π³ΠΈΡΡΡΡ, Ρ. Π΅. ΡΡΠΎ ΡΠΊΡΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ Postgres. ΠΡΠΎ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π°Π», Ρ Π½Π΅ Π·Π½Π°Ρ.
Π― ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«lastΒ» ΠΈ Ρ ΡΠ²ΠΈΠ΄Π΅Π» ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΡΠΎ ΡΠΎΠΆΠ΅ Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΠ» ΡΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π°ΠΌΠΈ, Π½ΠΎ Ρ ΠΏΠΎΡΡΠ΅ΡΠ½ΡΠ»ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π±ΡΠ» kill -9. Π― Π±Ρ Π² Π»ΠΎΠ³Π°Ρ ΡΠ²ΠΈΠ΄Π΅Π» kill -9, Ρ.ΠΊ. Postgres ΠΏΠΈΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ½ΡΠ» kill -9, Π½ΠΎ Ρ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅Π» ΡΡΠΎΠ³ΠΎ Π² Π»ΠΎΠ³Π°Ρ .
Π Π°Π·Π±ΠΈΡΠ°ΡΡΡ Π΄Π°Π»ΡΡΠ΅, Ρ ΡΠ²ΠΈΠ΄Π΅Π», ΡΡΠΎ Patroni Π½Π΅ ΠΏΠΈΡΠ°Π» Π² Π»ΠΎΠ³ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ β 54 ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π Π΅ΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π° timestamp, ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 54 ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. Patroni ΡΡΡ ΡΠ½ΠΎΠ²Π° ΠΎΡΡΠ°Π±ΠΎΡΠ°Π» ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ. Π£ Π½Π°Ρ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ Π±ΡΠ» Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, ΡΡΠΎ-ΡΠΎ Ρ Π½ΠΈΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ. Π Π½Π°ΡΠ°Π»ΠΈΡΡ Π²ΡΠ±ΠΎΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎΡΡ Ρ ΠΎΡΠΎΡΠΎ. Π£ Π½Π°Ρ pgsql01 ΡΡΠ°Π» Π½ΠΎΠ²ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ.
Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π»Π° ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. Π Π΅ΡΡΡ Π²ΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°. Π ΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ°Π· Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ½Π° ΠΏΡΡΠ°Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΠ°ΠΊ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΎΠ½Π° ΠΏΡΡΠ°Π»Π°ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ recovery.conf, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Postgres ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΠΌΠ°ΡΡΠ΅ΡΡ. ΠΠ½Π° ΠΊΠ°ΠΆΠ΄ΡΠ΅ 10 ΡΠ΅ΠΊΡΠ½Π΄ ΠΏΠΈΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΡΡΠ°Π΅ΡΡΡ, Π½ΠΎ Ρ Π½Π΅Π΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.
Π Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΈΡ ΠΏΠΎΠΏΡΡΠΎΠΊ Π½Π° ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΡΠΈΠ»Π΅ΡΠ°Π΅Ρ immediate-shutdown ΡΠΈΠ³Π½Π°Π». ΠΠ°ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ. Π ΡΠ°ΠΊΠΆΠ΅ recovery ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ°ΡΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ. Π’. Π΅. ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½Π° Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»Π°, Π½ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΠ»Π°ΡΡ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π³ΠΈΠΏΠΎΡΠ΅Π·Π°, ΡΡΠΎ Π² recovery.conf Π±ΡΠ» Π°Π΄ΡΠ΅Ρ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°. Π ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ, ΡΠΎ Π²ΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΡΡΠ°Π»Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΎΠΌΡ ΠΌΠ°ΡΡΠ΅ΡΡ.
ΠΠΎΠ³Π΄Π° Patroni Π·Π°ΠΏΡΡΡΠΈΠ»ΡΡ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅, ΡΠ·Π΅Π» Π·Π°ΠΏΡΡΡΠΈΠ»ΡΡ, Π½ΠΎ Π½Π΅ ΡΠΌΠΎΠ³ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. Π ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΡΡ Π»Π°Π³ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. Π’. Π΅. Π²ΡΠ΅ ΡΡΠΈ ΡΠ·Π»Π° Π±ΡΠ»ΠΈ Π½Π° ΠΌΠ΅ΡΡΠ΅, Π½ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ·Π΅Π» ΠΎΡΡΡΠ°Π²Π°Π».
ΠΡΠΈ ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΠ°Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΆΡΡΠ½Π°Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. Π ΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ°ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ Π² recovery.conf, ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ·Π»Ρ.
Π Π·Π΄Π΅ΡΡ Ρ Π΄ΠΎΠΏΡΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ½Π΅ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠΉΡΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΌ Π² recovery.conf, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΡ Π³ΠΈΠΏΠΎΡΠ΅Π·Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π΅ ΠΊ ΡΠΎΠΌΡ ΠΌΠ°ΡΡΠ΅ΡΡ. ΠΠΎ Ρ ΡΠΎΠ³Π΄Π° ΡΠΎΠ»ΡΠΊΠΎ-ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π»ΡΡ Ρ ΡΡΠΈΠΌ ΠΈ ΠΌΠ½Π΅ ΡΡΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎ, Π»ΠΈΠ±ΠΎ Ρ ΡΠ²ΠΈΠ΄Π΅Π», ΡΡΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΎΡΡΡΠ°Π΅Ρ ΠΈ Π΅Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°Π»ΠΈΠ²Π°ΡΡ, Ρ. Π΅. Ρ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠΏΡΡΡΡ ΡΡΠΊΠ°Π²Π° ΠΎΡΡΠ°Π±ΠΎΡΠ°Π». ΠΡΠΎ Π±ΡΠ» ΠΌΠΎΠΉ ΠΊΠΎΡΡΠΊ.
Π§Π΅ΡΠ΅Π· 30 ΠΌΠΈΠ½ΡΡ ΡΠΆΠ΅ ΠΏΡΠΈΡΠ΅Π» Π°Π΄ΠΌΠΈΠ½, Ρ. Π΅. Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΠ» Patroni Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅. Π― ΡΠΆΠ΅ Π½Π° Π½Π΅ΠΉ ΠΊΡΠ΅ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ», Ρ Π΄ΡΠΌΠ°Π», ΡΡΠΎ Π΅Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°Π»ΠΈΠ²Π°ΡΡ. Π ΠΏΠΎΠ΄ΡΠΌΠ°Π» β ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡ Patroni, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅. ΠΠ°ΠΏΡΡΡΠΈΠ»ΡΡ recovery. Π Π±Π°Π·Π° Π΄Π°ΠΆΠ΅ ΠΎΡΠΊΡΡΠ»Π°ΡΡ, ΠΎΠ½Π° Π±ΡΠ»Π° Π³ΠΎΡΠΎΠ²Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π·Π°ΠΏΡΡΡΠΈΠ»Π°ΡΡ. ΠΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠΈΠ½ΡΡΡ ΠΎΠ½Π° ΠΎΡΠ²Π°Π»ΠΈΠ»Π°ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΡΠΎ Π΅ΠΉ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΆΡΡΠ½Π°Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π― ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡ. Π― ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΠ» Π΅ΡΠ΅ ΡΠ°Π· Patroni, ΠΏΡΠΈΡΠ΅ΠΌ Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π» Postgres, Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π» ΠΈΠΌΠ΅Π½Π½ΠΎ Patroni Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, ΡΡΠΎ ΠΎΠ½ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΡ Π±Π°Π·Ρ.
Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΠΈΠ»Π°ΡΡ, Π½ΠΎ ΠΎΡΠΌΠ΅ΡΠΊΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΡΠ»ΠΈΡΠ°Π»ΠΈΡΡ, ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π½Π΅ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΡΠΊΠ°. Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ½ΠΎΠ²Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ. Π ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΠΆΠ΅ ΡΡΡΡ-ΡΡΡΡ Π΄ΡΡΠ³ΠΎΠ΅. Π ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠ΅.
Π ΡΡΡ ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ β Π° ΡΡΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡ Postgres, Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°Ρ checkpoint, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π²ΠΈΠ½ΡΡΡ ΡΠΎΡΠΊΡ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΡΡΡ-ΡΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄, ΡΡΠΎΠ±Ρ recovery Π½Π°ΡΠ°Π»ΠΎΡΡ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°? ΠΠ»ΡΡ ΡΠ°ΠΌ Π΅ΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°ΠΏΠ°ΡΡ WAL Ρ Π½Π°Ρ.
Π― ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΠ» Patroni, ΡΠ΄Π΅Π»Π°Π» ΠΏΠ°ΡΡ checkpoints Π½Π° ΠΌΠ°ΡΡΠ΅ΡΠ΅, ΠΏΠ°ΡΡ ΡΠ΅ΡΡΠ°ΡΡ-ΠΏΠΎΠΈΠ½ΡΠΎΠ² Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΎΡΠΊΡΡΠ»Π°ΡΡ. Π ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ. Π― Π΄ΠΎΠ»Π³ΠΎ Π΄ΡΠΌΠ°Π», ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π·Π°ΠΏΡΡΡΠΈΠ»Π°ΡΡ. Π ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π°Π»Π°ΡΡ.
Π’Π°ΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΎΠ΄Π½Π° ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΡΡ , Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π»ΠΎΠΌΠ°Ρ Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΡΠΎ ΡΠ°ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅.
ΠΠ°ΠΊΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ Π·Π΄Π΅ΡΡ? Patroni ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ ΠΈ Π±Π΅Π· Π²ΡΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ β ΡΡΠΎ Π½Π΅ 100 % Π³Π°ΡΠ°Π½ΡΠΈΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ. Π Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ»Ρ-ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌ Π±ΡΠ΄ΡΡ ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ, Ρ. Π΅. Π΅ΡΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ, Π½Π΅Ρ Π»Π°Π³Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ.
Π ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ. Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π² Π΄Π²Π° ΡΠ»Π°ΠΉΠ΄Π°. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Π²ΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π² Π΄Π²Π° ΡΠ»Π°ΠΉΠ΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Patroni, Ρ Π²Π°Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³. ΠΡ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π±ΡΠ» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, Π²Ρ Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ. Π ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ.
ΠΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° ΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ, Π½Π΅Ρ Π»Π°Π³Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, Π² Π»ΠΎΠ³Π°Ρ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ, Ρ Patroni, Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ DCS.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ, Patroni β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π Π΅ΡΠ»ΠΈ ΠΌΡ ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ ΡΠ·Π½Π°Π΅ΠΌ, ΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Patroni β ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΠ΅Π±ΡΡΠ½Π°Ρ ΠΏΡΠ»Ρ. ΠΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Postgres, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Patroni ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Postgres, ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅ΡΡ ΡΠΈΠ½ΠΈΡΡ ΡΡΠΊΠ°ΠΌΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ°ΠΊ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠΆΡ ΠΊ Π²ΠΎΠΏΡΠΎΡΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ? Π’Π°ΠΊ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅ΠΊΠ° ELK Π½ΠΈ Ρ ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ, ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π² Π»ΠΎΠ³Π°Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, ΠΎΡΠΊΡΡΠ² 6 ΠΊΠΎΠ½ΡΠΎΠ»Π΅ΠΉ ΠΈ 2 Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. Π ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ β ΡΡΠΎ Π»ΠΎΠ³ΠΈ Patroni Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π°, Π² Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ β ΡΡΠΎ Π»ΠΎΠ³ΠΈ Consul, Π»ΠΈΠ±ΠΎ Postgres ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΡΠΆΠ΅Π»ΠΎ.
ΠΠ°ΠΊΠΈΠ΅ Ρ Π²ΡΡΠ°Π±ΠΎΡΠ°Π» ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ? ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Ρ Π²ΡΠ΅Π³Π΄Π° ΡΠΌΠΎΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. Π Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ Π²ΠΎΠ΄ΠΎΡΠ°Π·Π΄Π΅Π». Π― ΡΠΌΠΎΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ: ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ°.
ΠΠ°Π»Π΅Π΅ Ρ Π² Π»ΠΎΠ³Π°Ρ ΡΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΡ, Ρ. Π΅. Ρ ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ.
Π ΡΡΠΎ Π΄Π°Π΅Ρ ΠΊΠ°ΡΡΠΈΠ½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π° Π½Π΅ Π½Π°ΡΡΡΠΏΠΈΠ»ΠΈ (ΠΈ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°).
Π ΠΊΡΠ΄Π° ΠΌΡ ΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΡΠ½ΠΎ? Π― ΡΠΌΠΎΡΡΡ:
- Π‘Π½Π°ΡΠ°Π»Π° Π² Π»ΠΎΠ³ΠΈ Patroni.
- ΠΠ°Π»Π΅Π΅ ΡΠΌΠΎΡΡΡ Π»ΠΎΠ³ΠΈ Postgres, Π»ΠΈΠ±ΠΎ Π»ΠΎΠ³ΠΈ DCS Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π°ΡΠ»ΠΎΡΡ Π² Π»ΠΎΠ³Π°Ρ Patroni.
- Π Π»ΠΎΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ°.
ΠΠ°ΠΊ Ρ ΠΎΡΠ½ΠΎΡΡΡΡ ΠΊ Patroni? Π Patroni Ρ ΠΎΡΠ½ΠΎΡΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ Π»ΡΡΡΠ΅Π΅, ΡΡΠΎ Π΅ΡΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. Π― Π·Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ². ΠΡΠΎ Stolon, Repmgr, Pg_auto_failover, PAF. 4 ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡ Π²ΡΠ΅. Patroni ΠΌΠ½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ.
ΠΡΠ»ΠΈ ΠΌΠ΅Π½Ρ ΡΠΏΡΠΎΡΡΡ: Β«Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π»ΠΈ Ρ Patroni?Β». Π― ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ Π΄Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Patroni ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ. Π, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Ρ Π½Π°ΡΡΠΈΠ»ΡΡ Π΅Π³ΠΎ Π³ΠΎΡΠΎΠ²ΠΈΡΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ Π±ΡΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Patroni, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΠ·Π²ΡΡΠΈΠ», Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡ
ΠΎΠ΄ΠΈΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ
Π’Π°ΠΌ Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΡΡΡΠ΅Π»ΡΡΡ ΡΠ΅Π±Π΅ Π² Π½ΠΎΠ³Ρ. ΠΡΠ΅Π½Ρ ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π’Ρ ΡΠΈΡΠ°Π΅ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ. ΠΠΎΡΡΠ°Π²ΠΈΠ» ΡΠ΅Π±Π΅ Π³Π°Π»ΠΎΡΠΊΡ.
Π Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Zalando Π·Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΡΠΊΡΡΠΊΠΈΠ½Ρ ΠΈ ΠΠ»Π΅ΠΊΡΠ΅Ρ ΠΠ»ΡΠΊΠΈΠ½Ρ. ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠ»ΡΠΊΠΈΠ½ β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠ°Π²ΡΠΎΡΠΎΠ², ΠΎΠ½ ΡΠΆΠ΅ Π² Zalando Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΡΠΎ Π΄Π²Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ.
Π Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Patroni β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡΠ°Ρ ΡΡΡΠΊΠ°. Π― Π΄ΠΎΠ²ΠΎΠ»Π΅Π½, ΡΡΠΎ ΠΎΠ½Π° Π΅ΡΡΡ, Ρ Π½Π΅ΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. Π Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡ ΠΏΠ°ΡΡΠΈ Π² Patroni. Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Patroni Π±ΡΠ΄Π΅Ρ Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π·ΡΠ΅Π»ΡΠΌ, ΠΊΡΡΡΡΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ. ΠΠ½ ΠΈ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π΅Π½, Π½ΠΎ, Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π΅ΡΠ΅ Π»ΡΡΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠ΅Π±Ρ Patroni, ΡΠΎ Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ. ΠΡΠΎ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ° ΡΡΠΎΠΌ Π²ΡΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ, Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅.
ΠΠΎΠΏΡΠΎΡΡ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄! ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π°Π΄ΠΎ ΡΡΠ΄Π° ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ?
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π½ΠΎΠ²Π°Ρ ΡΡΡΠΊΠ°. ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π½Π΅ΠΉ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π³ΠΎΠ΄. ΠΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Ρ ΠΎΠ²Π°ΡΡΡΡ. ΠΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΉΡΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. ΠΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ Π²Π·ΡΠΎΡΠ»ΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΠ²Π΅ΡΠΈΡ β Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΡΡΡΠΎΠΌ Π·Π°ΡΠ»ΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ, Π΄Π°?
ΠΠ΅ ΡΡΡΠΎΠΌ, ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ·Π½Π°Π΅ΠΌ ΠΎΠ± Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π·Ρ. Π£ Π½Π°Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. ΠΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π·Ρ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ. ΠΠΎ Π²ΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Patroni ΠΏΠΎ REST API, Π΅ΡΡΡ history. ΠΠΎ history ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ» ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³. ΠΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ history, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ ΡΠΎΠ±ΡΡΠΈΠΉ Π±ΡΠ»ΠΎ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΏΡΠΈΠ±Π°Π²ΠΈΠ»ΠΎΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, Π·Π½Π°ΡΠΈΡ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. ΠΠΎΠΆΠ½ΠΎ ΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ. ΠΠΈΠ±ΠΎ Π½Π°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠΊΠ° Π² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»Π°, ΡΡΠΎ Ρ Π½Π°Ρ Π²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π° ΠΌΠ΅ΡΡΠ΅, Π»Π°Π³Π° Π½Π΅Ρ ΠΈ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ°ΡΡΠΊΠ°Π·! ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠ½Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ DCS ΠΊΡΠ΄Π°-ΡΠΎ Π²Π΄Π°Π»Ρ ΠΎΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Postgres, ΡΠΎ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ? ΠΠ°ΠΊΠΈΠ΅ best practices Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΡΡΠΊΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° DCS Π½Π°Π΄ΠΎ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ-ΡΠΎ Ρ Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈ Ρ. Π΄.? ΠΠ°ΠΊ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΆΠΈΠ²Π΅Ρ Π²ΡΡ ΡΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ? Π ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΈ Π²Π΅ΡΠΈ Π΄Π΅Π»Π°ΡΡ?
ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΡΡΠΎΡ. ΠΠΎ ΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΡΡΠΎΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ°Π·Π° ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π‘ΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΡΠΊΠ°Π·Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΠ»Π°Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. Π Π² ΡΠ»ΡΡΠ°Π΅ DCS ΡΡΠΎ ΠΈΠ΄Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π Π°Π΄ΠΌΠΈΠ½ ΡΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΡΠ΅Ρ, ΠΈ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΡΡΡ ΠΈ Π½Π° Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΈΠ½ΠΈΡΡ ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π°Π²Π°ΡΠΈΠΉ. ΠΡΠ»ΠΈ DCS Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ, ΡΠΎ Π΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΠΌ ΠΌΡ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠΎΠ±ΠΎ Π·Π° Π½ΠΈΠΌ Π½Π΅ ΡΠ»Π΅Π΄ΠΈΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅ΠΌ Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΈ ΡΡΠΎ Π·Π°ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΡ.
Π’. Π΅. ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Patroni, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Ρ Ρ ΠΎΡΡΠ°ΠΌΠΈ?
ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ ΡΠ·Π»ΠΎΠ² Π² DCS-ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. ΠΡΠ»ΠΈ ΡΠ·Π»ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΡΡΡΠΎΡ Π²ΡΠ³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ·Π»ΠΎΠ² (ΡΠ΅ΠΏΠ»ΠΈΠΊΡ), ΡΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΊΠ²ΠΎΡΡΠΌ. Π Patroni ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ. Π Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠΈΠ³Π³ΠΈΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·Π»ΠΎΠ², ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π²Π°Π»ΠΈΡΡ ΠΊΠ²ΠΎΡΡΠΌ, ΡΠΎ β Π΄Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Patroni Π½Π° ΠΏΠ°ΡΠ·Ρ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° β patronictl pause, patronictl resume. ΠΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²ΠΈΠΌ Π½Π° ΠΏΠ°ΡΠ·Ρ, ΠΈ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ. ΠΡ Π΄Π΅Π»Π°Π΅ΠΌ maintenance Π½Π° DCS-ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, ΠΏΠΎΡΠΎΠΌ ΡΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΠ°ΡΠ·Ρ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΆΠΈΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅!
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄! ΠΠ°ΠΊ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ΅ΡΡΡΡΡΡ?
ΠΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΏΠΎ ΡΠΈΠ³, Π° ΡΠΈΠΌΠ»ΠΈΠ΄Ρ Π²ΠΎΠ»Π½ΡΡΡΡΡ.
ΠΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΌ Π΅ΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΠΈ?
Π‘ Π³Π°ΡΠ°Π½ΡΠΈΡΠΌΠΈ ΠΎΡΠ΅Π½Ρ ΡΡΠΆΠ΅Π»ΠΎ. ΠΡΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° ΠΡΠΊΡΡΠΊΠΈΠ½Π° Β«ΠΠ°ΠΊ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ RPO ΠΈ RTOΒ», Ρ. Π΅. Π²ΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ. Π― Π΄ΡΠΌΠ°Ρ, Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΠΈ ΡΠ»Π°ΠΉΠ΄Ρ ΠΈ ΠΈΡ ΠΈΠ·ΡΡΠΈΡΡ. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠ½Ρ, ΡΠ°ΠΌ Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ Π²Π΅ΡΠΈ. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ. ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Patroni, Π½ΠΎ ΡΡΠΎ ΠΏΠ°Π»ΠΊΠ° ΠΎ Π΄Π²ΡΡ ΠΊΠΎΠ½ΡΠ°Ρ : ΠΌΡ Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π΅ΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ , Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΡΠ΅ΠΌ Π² ΡΠΊΠΎΡΠΎΡΡΠΈ. ΠΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, Π½ΠΎ ΠΎΠ½Π° ΡΠΎΠΆΠ΅ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ 100%-Π½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ Π΄ΠΎΠΊΠ»Π°Π΄! ΠΡΡΡ Π»ΠΈ ΠΎΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Patroni Π΄Π»Ρ zero level protection? Π’. Π΅. Π² ΠΊΡΠΏΠ΅ Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ standby? ΠΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ. Π Π²ΡΠΎΡΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Repmgr, Π½ΠΎ Π±Π΅Π· Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ. Π ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Patroni ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π§ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ»ΡΡΠΎΠ² ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Repmgr?
ΠΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π±ΡΠ». Π£ Π½Π°Ρ Π½ΠΈΠΊΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΡΠ°ΡΠ½ΠΎ (Π£ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π»ΠΈ β ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄ΡΠΈΠΊΠ°). ΠΠΎ ΠΌΡ Π΄Π»Ρ ΡΠ΅Π±Ρ Π²ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΠΈ ΡΠ·Π»Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΄Π²Π° ΡΠ·Π»Π° ΠΈ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π²ΡΡΠ»ΠΈ ΠΈΠ· ΡΡΡΠΎΡ, ΡΠΎ Patroni ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΡΠΎΡ ΡΠ·Π΅Π» Π² Standalone-ΡΠ΅ΠΆΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅ΡΡΡ ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΎΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ°, ΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Repmgr ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ? Π Patroni Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, Π² Repmgr Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈΠ΄Π΅Ρ ΡΠΆΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ. ΠΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Repmgr daemon Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ ΠΈ ΡΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π°Π²ΡΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ.
Repmgr ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ β ΠΆΠΈΠ²ΡΠ΅ Π»ΠΈ ΡΠ·Π»Ρ Postgres. Repmgr ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ.ΠΊ. ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Repmgr ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π²Π°Π»ΠΈΡΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ°Π²Π½ΠΎ Π½Π΅ ΡΠ»Π΅ΠΆΡ Π·Π° Repmgr, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎ ΠΏΠΎΡΠΈΠΊΡΠΈΠ»ΠΈβ¦ Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅Ρ. Π Π²ΠΎΡ Π²ΡΠ½ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² DCS, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅Ρ Stolon, Patroni, ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ, Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π»Π°ΠΌΠ΅ΡΡΠΊΠΈΠΉ. ΠΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² DCS Π²ΡΠ½Π΅ΡΠ»ΠΈ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ·Π΅Π». ΠΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΠ΅ΡΡ β ΡΡΠΎ Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΎΠ½Π° ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΆΠΈΠ²Π΅Ρ. Π ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ DCS-ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΡΠ°Π» Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½? ΠΡΠΈΡΠΈΠ½Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ Π±ΡΠ΄Ρ, ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΡΡΠ°: ΠΎΡ ΠΊΡΠΈΠ²ΡΡ ΡΡΠΊ ΡΠ΅ΡΠ΅Π²ΠΈΠΊΠΎΠ² Π΄ΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
Π― Π½Π΅ ΠΏΡΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ» ΡΡΠΎ Π²ΡΠ»ΡΡ , Π½ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ DCS Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠΌ, Ρ. Π΅. ΡΡΠΎ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΊΠ²ΠΎΡΡΠΌ ΠΌΠΎΠ³ ΡΠΎΠ±ΡΠ°ΡΡΡΡ. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ DCS ΡΡΠ°Π» Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΡΠ°ΡΡΡΡ ΠΊΠ²ΠΎΡΡΠΌ, Ρ. Π΅. ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΏΠ»ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π· ΡΠ·Π»ΠΎΠ²? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ»Π°ΡΡΠ΅Ρ Patroni ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² read only ΡΠ΅ΠΆΠΈΠΌ. ΠΠ»Π°ΡΡΠ΅Ρ Patroni Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΡΡΠΎ Π΅ΠΌΡ Π΄Π΅Π»Π°ΡΡ. ΠΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΡΠ·Π°ΡΡΡΡ Ρ DCS ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² read only. Π ΠΆΠ΄Π΅Ρ ΠΈΠ»ΠΈ ΡΡΡΠ½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° DCS Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ.
ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, DCS Π΄Π»Ρ Π½Π°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Π²Π°ΠΆΠ½ΡΠΌ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°ΠΌΠ° Π±Π°Π·Π°?
ΠΠ°-Π΄Π°. Π ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ Service Discovery β ΡΡΠΎ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΠ½ Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΄Π°ΠΆΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. Π£ΡΠ»ΠΎΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ Π² ΠΠ¦, Π° Ρ Π½Π°Ρ ΡΡΠ°Π·Ρ Service Discovery Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎ Consul, ΡΠΎ Π½Π° Π½Π΅ΠΌ ΠΈ DNS ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½. ΠΡΠ»ΠΈ ΡΡΠΎ Etcd, ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡΡΡ. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Service Discovery β ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡ. Π ΠΎ Π½Π΅ΠΌ Π΄ΡΠΌΠ°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ .
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com