Π ΡΠ²ΠΎΡ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΠ½Π΄ΡΠ΅ΠΉ ΠΠΎΡΠΎΠ΄ΠΈΠ½ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊ ΡΠ° Π²Π·Π΅Π»ΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΎΠΏΠΈΡΠ° ΠΎΡ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° PgBouncer ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ»Π΅ΡΠ° Π·Π° Π²ΡΡΠ·ΠΊΠ°
Video:
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ½Π΄ΡΡ.
Π Yandex ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΌ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. Π Π΄Π½Π΅Ρ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ΅ΠΌΠ° Π·Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠ»Π΅ΡΠ° Π·Π° Π²ΡΡΠ·ΠΊΠΈ.
ΠΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΎΠ±Π°Π΄ΠΈΡΠ΅ Π½Π° ΠΏΡΠ»Π°Ρ Π½Π° Π²ΡΡΠ·ΠΊΠΈ Π½Π° ΡΡΡΠΊΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΌΠΈ ΠΊΠ°ΠΆΠ΅ΡΠ΅. ΠΠ°ΠΈΡΡΠΈΠ½Π° ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π½Π°ΠΌΠ΅ΡΡ Π΄ΠΎΠ±ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠΌΠΈΠ½, ΠΊΠΎΠΉΡΠΎ Π΄Π° ΡΠ΅ ΡΡΠ²ΡΡΠ΄ΠΈ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°.
Π’Π΅ΠΌΠ°ΡΠ° Π΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠ»Π΅ΡΡΡ Π·Π° Π²ΡΡΠ·ΠΊΠΈ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ ΠΈ Π΄ΠΎΡΠΈ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎ. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΈΠΌΠ° Π½ΡΠΊΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅, Π½ΠΎ Π² Postgres Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½. Π ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ (Π½Π° HighLoad++ 2019) ΠΈΠΌΠ° Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° ΠΠΈΠΊΠΎΠ»Π°ΠΉ Π‘Π°ΠΌΠΎΡ Π²Π°Π»ΠΎΠ² Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π² Postgres. Π Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, ΡΡΠΊ ΡΠ° Π΄ΠΎΡΠ»ΠΈ Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈ ΡΠΎΠ²Π° ΡΠ° Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ ΠΏΠΎ-ΡΠ΅Π΄ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅. Π Π½Π° Π½ΡΠΊΠΎΠΈ ΠΌΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π½ΠΎ Π² ΡΠΌΠΈΡΡΠ», ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π½Π΅ ΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ.
Yandex ΠΈΠΌΠ° Postgres. ΠΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΡΠ³ΠΈ Π½Π° Yandex ΠΆΠΈΠ²Π΅ΡΡ Π² Yandex.Cloud. Π ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΏΠΎΠ½Π΅ ΠΌΠΈΠ»ΠΈΠΎΠ½ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π² Postgres.
Π Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π΄ΠΎΡΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ - ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΡΡΠ²ΠΈΡΠ΅Π½ Π²ΡΠ·Π΅Π» Π½Π° Π²ΡΠ·Π΅Π»Π°, ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΠ΅ Π΄Π²Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ (ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°), Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅, ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ°.
ΠΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ΅Π½ Π²ΡΠ·Π΅Π» Π΅ Postgres, Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ²Π΅Π½ Postgres ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΈ ΠΏΡΠ»Π΅Ρ Π·Π° Π²ΡΡΠ·ΠΊΠ°. Connection pooler ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠ³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΈ ΡΠ΅Π».
ΠΠ°ΠΊΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° ΠΏΡΠ»Π΅ΡΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅?
Postgres ΠΏΡΠΈΠ΅ΠΌΠ° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π΅Π΄Π½Π° Π²ΡΡΠ·ΠΊΠ° Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ, Π΅Π΄ΠΈΠ½ Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° Postgres. Π Π² ΡΠΎΠ·ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ΅ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΡΡΠ° ΡΠΊΡΠΏΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΊΠΎΠ΄ΡΡ Π½Π° Postgres ΠΈΠΌΠ° ΠΌΠ°ΡΠΈΠ², Π½Π°ΡΠ΅ΡΠ΅Π½ procArray. Π‘ΡΠ΄ΡΡΠΆΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ. Π ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° procArray ΠΈΠΌΠ°Ρ Π»ΠΈΠ½Π΅ΠΉΠ½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ; ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π²ΡΡΡ Ρ ΡΠ΅Π»ΠΈΡ ΠΌΠ°ΡΠΈΠ² ΠΎΡ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΡΠ·ΠΊΠΈ. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° Π±ΡΡΠ· ΡΠΈΠΊΡΠ», Π½ΠΎ Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΡΠ·ΠΊΠΈ Π½Π΅ΡΠ°ΡΠ° ΡΡΠ°Π²Π°Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠΊΡΠΏΠΈ. Π ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ΡΠ°ΡΠ° ΡΡΠ°Π½Π°Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠΊΡΠΏΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠ»Π°ΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΠΎΠΊΠ° ΡΠ΅Π½Π° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΡΠ·ΠΊΠΈ.
ΠΠΌΠ° 3 Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
- ΠΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
- ΠΡ ΡΡΡΠ°Π½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
- Π ΠΌΠ΅ΠΆΠ΄Ρ, ΡΠΎΠ΅ΡΡ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ.
ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΡ ΠΏΡΠ»Π΅Ρ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠ°ΡΠΈΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π»ΠΈ ΠΎΡ PostgreSQL Professional ΠΏΡΠ°Π²ΡΡ ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ. ΠΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈ. Π Π²ΡΡΡΠ½ΠΎΡΡ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°. Π’ΠΎΠ²Π° ΡΠ° ΠΏΡΠ» ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΏΡΠΎΠΊΡΠΈ ΠΏΡΠ».
ΠΡΠ»ΡΡ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½. Π ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π²ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π½Π°ΡΠΈΠ½: ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠΉΡΠ΅ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ Π² ΠΊΠΎΠ΄ ΠΊΠ°ΡΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π΅ΡΠ΅ΡΠΊΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ, ΠΊΠΎΠΉΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°, Π΅, ΡΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄Π°, ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΎ Π²Π½Π΅Π΄ΡΠΈΡΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ.
Π’ΠΎΠ³Π°Π²Π° ΠΎΡΡΠ·Π½Π°Π²Π°ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π·ΠΎΠ½ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ, Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π½ΡΡΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ. Π ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΈΡΠ»Π°. ΠΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΡΠ° ΠΎΠΊΠΎΠ»ΠΎ 10 000 Π²ΡΡΠ·ΠΊΠΈ. Π’ΠΎΠ²Π° Π΅ ΡΡΠ±ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ.
ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠΎΠΊΡΠΈ ΠΏΡΠ»Π΅ΡΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° Π΄Π²Π° ΠΏΡΠ»Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ°Π²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°. Π’Π΅ Π½Π΅ ΡΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠ»ΡΡΠΈ. Π’Π΅ ΡΠ° ΠΏΡΠ»Π΅ΡΠΈ + ΠΎΡΠ΅ Π³ΠΎΡΠΈΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. Π’ΠΎΠ²Π°
ΠΠΎ, Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π½Π΅ Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΡΠ°Π·ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. Π ΡΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΏΡΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΈ, Ρ.Π΅. Π΅Π΄ΠΈΠ½ Π²Ρ ΠΎΠ΄ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ, Π΅Π΄ΠΈΠ½ ΠΈΠ·Ρ ΠΎΠ΄ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π·Π° Π½Π°ΡΠΈΡΠ΅ ΡΠ΅Π»ΠΈ, Π·Π°ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PgBouncer, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Ρ.Π΅. ΡΡΡΠ²ΡΡΠ½ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΡΠ΅ ΡΡΠΏΠΎΡΡΠ°Π²ΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΌΠΎ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°.
Π ΠΏΡΠΈ Π½Π°ΡΠ΅ΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΡΠΎΠ²Π° Π΅ Π²ΡΡΠ½ΠΎ. ΠΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°ΡΠ΅ ΡΠ΅ΡΠΈΡ, Π·Π°ΡΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π²ΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈ Π²ΡΡΠ·ΠΊΠΈ ΡΠ° Π»ΠΎΠΊΠ°Π»Π½ΠΈ. ΠΡΠ΅ΠΊΠΈ Π΄ΠΎΠΉΠ΄Π΅ Ρ loopback ΠΈ Π½ΡΠΊΠ°ΠΊ ΡΠΈ ΡΡΠ°Π²Π° ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈ ΡΠ΅ΡΠΈΡΡΠ°.
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ application_name_add_host. Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠΈΠ½ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Bouncer Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ IP Π°Π΄ΡΠ΅Ρ ΠΊΡΠΌ ΠΈΠΌΠ΅ Π½Π°_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎ application_name ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π²ΡΡΠ·ΠΊΠ°.
ΠΠ° ΡΠ°Π·ΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΆΡΠ»ΡΠ°ΡΠ° Π»ΠΈΠ½ΠΈΡ Π΅ ΡΠ΅Π°Π»Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Π° ΡΠΈΠ½ΡΡΠ° Π»ΠΈΠ½ΠΈΡ Π΅ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π»Π΅ΡΡΡ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π ΡΠ°Π·ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠ° Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° application_name, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, Π½ΠΎ Π½Π΅ Π΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π² Bouncer Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠ», Ρ.Π΅. Π±ΡΠΎΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΊΡΠΌ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΠΎΠ΄ΠΈ ΡΠΎΠ²Π°? ΠΠΌΠ°ΡΠ΅ Π·Π°ΡΠ΅Π΄Π΅Π½Π° ΡΡΠ»ΡΠ³Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++ ΠΈ Π½ΡΠΊΡΠ΄Π΅ Π½Π°Π±Π»ΠΈΠ·ΠΎ ΠΌΠ°Π»ΠΊΠ° ΡΡΠ»ΡΠ³Π° Π½Π° Π²ΡΠ·Π΅Π», ΠΊΠΎΡΡΠΎ Π½Π΅ ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎ Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π½Π΅ΠΉΠ½ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΠ»ΡΠ΄ΡΠ²Π°. ΠΡΠ²Π°ΡΡ 20 000 Π²ΡΡΠ·ΠΊΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ ΡΠ΅ ΡΠ°ΠΊΠ°. ΠΠΎΡΠΈ ΠΊΠΎΠ΄ΡΡ Π²ΠΈ Π΅ Π½ΠΎΡΠΌΠ°Π»Π΅Π½.
ΠΠΈΠ΅, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½Π°ΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΠΌΠ°Π»ΡΠΊ ΠΏΠ°Ρ Π·Π° Bouncer, ΠΊΠΎΠΉΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈ ΡΠ°Π·ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, Ρ.Π΅. ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π΄ΠΎ ΠΏΡΠ»Π°.
ΠΠΈ Π±ΠΈΠ»ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Postgres, Ρ.Π΅. Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΡΠΎΠ»ΠΈΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Ρ Π±ΡΠΎΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅.
ΠΠΎ ΡΠΎΠ³Π°Π²Π° Π³ΡΠ±ΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π·Π°ΡΠΎ Π½ΡΠΌΠ°ΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ°. PgBouncer Π½Π΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅, Π²ΠΈΠ½Π°Π³ΠΈ Π²ΡΡΡΠ° ΡΡΡΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅: ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΏΠ°ΡΠΎΠ»Π°ΡΠ° Π²ΠΈ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π΅ Π·Π°Π³ΡΠ±ΠΈΠ»Π°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄. ΠΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΠ·Π° Π½ΡΠΌΠ°. ΠΠΊΠΎ Π΅Π΄Π½Π° ΡΠ΅ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½Π°, Π²ΠΈΠ΅ Π½ΡΠΌΠ° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ Π·Π°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½Π°.
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ Π³Π»Π΅Π΄Π°ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π²ΠΈΠΆΠ΄Π°ΡΠ΅, ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ.
ΠΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΎΡΠ³ΠΎΡΠ΅ ΠΈ Π²ΠΈΠΆΡΠ΅, ΡΠ΅ Bouncer Π΅ Π΅Π΄Π½ΠΎΠ½ΠΈΡΠΊΠΎΠ². Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ²ΡΠ°ΡΠ½Π° ΡΠΎΡΠΊΠ° Π² ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΡΠ»ΡΠΆΠ±Π°ΡΠ°. Π Π°Π·Π±ΠΈΡΠ°ΡΠ΅, ΡΠ΅ ΡΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠ»ΠΈ Π΄Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ΅ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ»Π°.
Π‘ΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ PgBouncers.
Bouncer Π΅ ΠΌΠ°Π»ΠΊΠΎ Π·Π°ΠΊΡΡΠΏΠ΅Π½.
Π ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π° ΡΠ°ΠΊΠ°, ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Bouncers Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°ΡΠΈ ΡΡΠ΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° TCP ΠΏΠΎΡΡΠ°. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ TCP Π²ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΡΡΠ³ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ.
Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π΅Π΄ΠΈΠ½ Bouncer, Π½ΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Bouncer.
Π Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ 3 Bouncers ΠΈΠ·ΡΠΆΠ΄Π° ΡΡΡΡΠ΅Π²ΠΈΠ½Π°ΡΠ° ΡΠΈ Π½Π° 100%. ΠΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΠΎΡΡΠ° ΠΈΠ·Π±ΠΈΠ²Π°ΡΠΈ. ΠΠ°ΡΠΎ?
ΠΠ°ΡΠΎΡΠΎ ΠΈΠΌΠ°ΡΠ΅ TLS. ΠΠΌΠ°ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π° Π²ΡΡΠ·ΠΊΠ°. Π Π°ΠΊΠΎ ΡΡΠ°Π²Π½ΠΈΡΠ΅ Postgres Ρ ΠΈ Π±Π΅Π· TLS, ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅, ΡΠ΅ Π±ΡΠΎΡΡ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Ρ ΠΏΠΎΡΡΠΈ Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΡΠΊΠ° Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ TLS ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅ΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΡΠ΅ΡΡΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
Π Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄ΠΎΡΡΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° Π²ΡΠ»Π½Π° ΠΎΡ Π²Ρ ΠΎΠ΄ΡΡΠΈ Π²ΡΡΠ·ΠΊΠΈ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΡ ΠΏΡΡΠ²ΠΈΡΠ΅Π½ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ Π·ΠΎΠ½ΠΈΡΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ, Π²ΡΠ»Π½Π°ΡΠ° ΠΎΡ Π²Ρ ΠΎΠ΄ΡΡΠΈ Π²ΡΡΠ·ΠΊΠΈ Π΅ Π΄ΠΎΡΡΠ° ΡΠΈΠΏΠΈΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ. Π’ΠΎΠ΅ΡΡ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΠ°ΡΠΈΡΡ ΠΏΡΡΠ²ΠΈΡΠ΅Π½ Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°Π»ΠΈΡΠ΅Π½, ΡΠ΅Π»ΠΈΡΡ ΡΠΎΠ²Π°Ρ Π±Π΅ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ ΡΠ΅Π½ΡΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ. ΠΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ Π΄ΠΎΠΉΠ΄Π°Ρ Π΄Π° ΠΏΠΎΠ·Π΄ΡΠ°Π²ΡΡ TLS Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ TLS ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ Π²Π΅ΡΠ΅ Π΄Π° Π½Π΅ ΠΊΠ°Π·Π²Π°Ρ Π·Π΄ΡΠ°Π²Π΅ΠΉ Π½Π° Bouncer, Π½ΠΎ ΡΠ΅ ΡΡΠΈΡΠΊΠ°Ρ Π³ΡΡΠ»ΠΎΡΠΎ ΠΌΡ. ΠΠΎΡΠ°Π΄ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅, Π²ΡΠ»Π½Π°ΡΠ° ΠΎΡ Π²Ρ ΠΎΠ΄ΡΡΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ Π½Π΅Π·Π°ΡΠΈΡ Π²Π°ΡΠ°. ΠΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π±Π΅Π· Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΎΡΠ΄ΡΡΠΏΠ²Π°Π½Π΅, ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΈΠ΄Π²Π°Ρ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π² ΠΊΠΎΡ Π΅ΡΠ΅Π½ΡΠ½Π° Π²ΡΠ»Π½Π°.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° 16 PgBouncers, ΠΊΠΎΠΈΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ 16 ΡΠ΄ΡΠ° Π½Π° 100%.
Π‘ΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΊΠ°ΡΠΊΠ°Π΄Π°ΡΠ° PgBouncer. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°ΡΠ° Π½Π° Π½Π°ΡΠΈΡ ΡΠΎΠ²Π°Ρ Ρ Bouncer. ΠΠ°ΡΠΈΡΠ΅ Π²ΡΠ½ΡΠ½ΠΈ ΠΎΡΠ±ΠΈΠ²Π°ΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° TCP ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅, Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΎΡΠ±ΠΈΠ²Π°ΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΠ΅Π°Π»Π½ΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Ρ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ½ΡΠ½ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ.
Π ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ»Π°Π²Π΅Π½ ΡΠ΅ΡΡΠ°ΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ 18 Bouncers Π΅Π΄ΠΈΠ½ ΠΏΠΎ Π΅Π΄ΠΈΠ½. ΠΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π½ΠΎ. Π‘ΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΈΡΠ΅, DevOps ΠΈ Ρ ΠΎΡΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΠΎΠ·ΠΈ ΡΡΡΠ²ΡΡ, Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ ΡΠΎΠ²Π° ΡΠΏΠΎΡΠ°Π·ΡΠΌΠ΅Π½ΠΈΠ΅.
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π°ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Bouncer Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ PgBouncers Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΡ Π±Π΅ΡΠ΅ Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π° ΠΏΡΠ΅Π΄ΠΈ ΠΌΠ΅ΡΠ΅Ρ. ΠΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈΠΌΠ°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Ρ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ»ΠΈ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. Π Postgres ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠ° Π·Π°ΡΠ²ΠΊΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ½Π°ΡΠ° Π½Π° Π΄ΡΡΠ³Π° Π²ΡΡΠ·ΠΊΠ° Π±Π΅Π· Π½Π΅Π½ΡΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅. ΠΠΎ Π½ΡΠΊΠΎΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° TCP, Ρ.Π΅. ΠΏΡΠ΅ΠΊΡΡΠ²Π°Ρ ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ°. ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Bouncer? Π’ΠΎΠΉ Π½ΡΠΌΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΠΎ. Π’ΠΎΠΉ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°. ΠΠΊΠΎ ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ Π²ΡΡΠ·ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΠ·Π΄Π°Π»ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΌΠ°Π»ΠΊΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΡΡΠΎΡΠΎ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΎΡ Bouncer Π½ΡΠΌΠ° Π΄Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ; Π²ΠΈΠ΅ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΎ ΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ Π² upstream Π½Π° Bouncer.
Π ΡΠ°ΠΊΠ° ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, ΡΠ΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΡΠ» Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½, Π·Π°ΠΊΡΡΠΏΠ΅Π½, Π² ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π±ΡΡΠ·ΠΎ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΈ ΠΈ ΠΊΠΎΠΉΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ².
ΠΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎΡΡΡΠ° ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° Π·Π°Π΄Π°ΡΠ°. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ Π΄ΠΎΠ±ΡΠ΅ Ρ Π²ΡΠ»Π½Π°ΡΠ° ΠΎΡ Π²Ρ ΠΎΠ΄ΡΡΠΈ TLS Π²ΡΡΠ·ΠΊΠΈ.
ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΎΡΠ΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° Machinarium, ΠΊΠΎΡΡΠΎ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π° ΠΎΠΏΠΈΡΠ²Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΈΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ° ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ ΠΊΠΎΠ΄. ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° libpq, ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½ΡΠΊΠΎΠΈ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΠΈ Π²ΡΡΠ½Π°Ρ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ°Ρ: βΠΠ±Π°Π΄ΠΈ ΠΌΠΈ ΡΠ΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠΌΠ°ΠΌ IO Π·Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ IO ΠΈΠ·ΡΠ΅Π·Π½Π΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. Π ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π° ΡΡ Π΅ΠΌΠ°. ΠΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° ΠΎΡ Π΄ΡΡΠΆΠ°Π²Π½Π° ΠΌΠ°ΡΠΈΠ½Π°. ΠΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΠ°ΡΠΎ βΠΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΡ Π·Π°Π³Π»Π°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Ρ ΡΠ°Π·ΠΌΠ΅Ρ N, ΡΠ΅Π³Π° ΡΠ°ΠΊΠ°ΠΌ N Π±Π°ΠΉΡΠ°β, βΠΠΊΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡ SYNC ΠΏΠ°ΠΊΠ΅Ρ, ΡΠ΅Π³Π° ΡΠ°ΠΊΠ°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°.β Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π΅Π½, ΠΊΠΎΠ½ΡΡΠ°ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄, ΡΡΠΊΠ°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΡΡ Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ Π³ΠΎ ΡΠ°ΠΊΠ°, ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΡΡΠΆΠ°Π²Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΡΡ ΠΎΠΏΠΈΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΏΡΡ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄. ΠΡΠΎΡΡΠΎ Π² ΡΠΎΠ·ΠΈ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΌΡΠΊΠ½Π΅ΡΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΡΡΠ΅Π· ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΏΡΠ΅Π΄Π°Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³Π° ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° (Π·Π΅Π»Π΅Π½Π° Π½ΠΈΡΠΊΠ°). Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π½Π°ΠΉ-ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡ ΠΏΡΡ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° Π² Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΊΡΠΌ Π½Π΅Π³ΠΎ.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ°, ΠΊΠΎΡΡΠΎ TCP ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ ΠΊΡΡΠ³ΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π° TPC Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ.
Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΡΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° Π²ΡΡΠ·ΠΊΠ° Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. Π ΡΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΊΠ΅ΡΠ°.
Π Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π»Π΅ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡ ΠΌΠ΅ ΡΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π² Π΅Π΄ΠΈΠ½ Π³ΠΎΠ»ΡΠΌ ΠΏΠ°ΠΊΠ΅Ρ, Π·Π° Π΄Π° ΠΎΠ±Π»Π΅ΠΊΡΠΈΠΌ TCP ΡΡΠ΅ΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡ ΠΌΠ΅ Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ Π² ΡΠΌΠΈΡΡΠ», ΡΠ΅ Odyssey, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° CANCEL ΠΈ ROLLBACK Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ°, Ρ.Π΅. Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΡΠ°ΠΊΠ° Π·Π°ΡΠ²ΠΊΠ°, Odyssey ΡΠ΅ ΠΊΠ°ΠΆΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΠΈΡΠΊΠ°Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡ Π°Π±ΠΈ ΡΠ΅Π½Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ.
Π Π²ΠΈΠ½Π°Π³ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΡΡΡ ΡΡΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ. Π’ΠΎΠ²Π° ΠΈΠ·Π±ΡΠ³Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠ΅ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° application_name_add_host. ΠΠΊΠΎ ΡΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ³Π°Π²Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π½ΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°.
ΠΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π½Π° Yandex.Cloud. Π Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ PostgreSQL ΠΈ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΏΡΠ» Π·Π° Π²ΡΡΠ·ΠΊΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π°Π²ΡΠ½, Ρ.Π΅. ΠΎΡΡΠ°Π²Π΅ΡΠ΅ Π½ΠΈ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅, Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ. Bouncer Π½ΡΠΌΠ° Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π°Π²ΡΠ½.
Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π°Π²ΡΠ½. Π ΠΎΠ±Π»Π°ΠΊΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠ²Π° Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ³Π°Π²Π° ΠΊΠ»ΡΡΡΠ΅ΡΡΡ ΡΠ΅ Π²ΠΈ Π΄Π°Π΄Π΅ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ. ΠΠΎ Π²ΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅Π· ΠΏΡΠ»Π° Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ Π² Odyssey, ΡΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Odyssey ΠΈΠΌΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Ρ PgBouncer. ΠΠΌΠ°ΠΌΠ΅ ΡΡΡΠ°ΡΠ° ΠΊΠΎΠ½Π·ΠΎΠ»Π°, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠΊΠΎ Π½Π΅ΡΠΎ Π»ΠΈΠΏΡΠ²Π°, ΠΈΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² GitHub ΠΈ Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ° PgBouncer.
Π, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΈΠ΅ ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°, ΠΎΡΡΠ΅ΡΠ΅Π½Π° ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π©Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π°ΡΠΎ Π½Π΅ ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π° Π½Π΅ ΡΠ°ΠΌΠΎ, ΡΠ΅ Π½Π΅ ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² Π½Π΅Ρ.
Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° Π² ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ 100% ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ PgBouncer. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ Π΄ΡΡΠΆΠΈΠΌ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ ΠΊΠ°ΡΠΎ Bouncer, ΡΠ°ΠΌΠΎ Π·Π° ΠΏΠΎ-ΡΠΈΠ³ΡΡΠ½ΠΎ.
Π΄ΠΈΠ·Π°ΠΉΠ½
ΠΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° Odyssey.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ βΠΠ°ΡΠ·Π° / ΠΡΠ·ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅β. Π’Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Postgres, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π½Π° ΠΏΠ°ΡΠ·Π° Π² ΠΏΡΠ»Π° Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅, Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ pg_upgrade ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π²ΡΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅. Π ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°, ΡΡΠΊΠ°Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π·Π°Π±Π°Π²Ρ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½ΠΈ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ Ρ ΠΎΡΠ° ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°. ΠΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π·Π°ΠΌΡΡΠ·Π½Π°Π»Π°, Π½ΠΎ ΡΠΊΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π±ΡΠ΄Π΅. (ΠΠ΅ΡΠ΅ Π·Π°ΠΌΡΠ°Π·Π΅Π½ΠΎ)
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π΅Π΄Π½Π° ΠΎΡ Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² PgBouncer Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° SCRAM Authentication, ΠΊΠΎΡΡΠΎ ΡΡΡΠΎ Π½ΠΈ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ ΡΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π² Yandex.Cloud. Π Π΄Π²Π΅ΡΠ΅ ΠΈΠΌΠ°Ρ ΡΠ»ΠΎΠΆΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ ΡΠ° Π²Π°ΠΆΠ½ΠΈ.
ΠΠ°ΡΠΎΠ²Π° Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° Odyssey, Π² ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ΄ ΡΠ΅Π³Π°.
ΠΠΌΠ°ΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½Π°ΡΠ° Π±Π°Π·Π° Π½Π° Odyssey, ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Kiwi Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Postgres. Π’ΠΎΠ΅ΡΡ ΡΠΎΠ΄Π½ΠΈΡΡ ΠΏΡΠΎΡΠΎ 3 Π½Π° Postgres Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄Π½ΠΈΡΠ΅ ΠΈ Π·Π°Π΄Π½ΠΈΡΠ΅ ΡΠ°ΡΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΎΠ±ΠΌΠ΅Π½ΡΡ. Π’Π΅ ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Kiwi.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Machinarium Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΡΠΊΠΈ. ΠΠ°Π»ΡΠΊ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΎΡ ΡΠΎΠ·ΠΈ Machinarium Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ. ΠΠΎ Π½Π΅ ΡΠ΅ ΡΡΠ΅Π²ΠΎΠΆΠ΅ΡΠ΅, ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ 15 ΡΠ΅Π΄Π°.
ΠΠ΄ΠΈΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΡΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. Π’Π°Π·ΠΈ ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ TCP Π²ΡΡΠ·ΠΊΠΈ ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅.
Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π½ΠΈΡΠΊΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° crone Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π² ΠΏΡΠ»Π°.
Odyssey ΡΠ΅ ΡΠ΅ΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ Postgres. ΠΡΠΎΡΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ install-check ΠΏΡΠ΅Π· Bouncer ΠΈ ΠΏΡΠ΅Π· Odyssey, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½ΡΠ»Π΅Π² div. ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠ°, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π² Bouncer ΠΈ Π² Odyssey.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅. Π Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Odyssey.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π°ΡΠ°ΡΠ° ΠΊΠ°ΡΠΊΠ°Π΄Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ: Postgres + Odyssey, PgBouncer + Odyssey, Odyssey + Odyssey, Π·Π° Π΄Π° ΡΠΌΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ Π°ΠΊΠΎ Odyssey Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Π» Π² Π½ΡΠΊΠΎΡ ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅ Π½Π° ΠΊΠ°ΡΠΊΠ°Π΄Π°ΡΠ°, ΡΠΎΠΉ ΡΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΡΠΎ ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅.
Π³ΡΠ΅Π±Π»ΠΎ
ΠΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Odyssey Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. Π Π½ΡΠΌΠ° Π΄Π° Π΅ ΡΠ΅ΡΡΠ½ΠΎ, Π°ΠΊΠΎ ΠΊΠ°ΠΆΠ°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ΅, ΡΠΎΠ²Π° Π΅, Π΄Π°, Π½ΠΎ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅, ΡΠΎΠ³Π°Π²Π° Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π»ΠΈ ΠΎΡ PostgreSQL Professional Π΄ΠΎΠΉΠ΄ΠΎΡ Π° ΠΈ ΠΊΠ°Π·Π°Ρ Π°, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠ°ΠΈΡΡΠΈΠ½Π° Π±ΡΡ Π°, ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ ΠΌΠ΅ Π³ΠΈ. ΠΠΎ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠΊΡΠΈΡ ΠΌΠ΅, ΡΠ΅ ΠΏΡΠ»Π΅ΡΡΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈ ΠΈΠΌΠ° Π²Ρ ΠΎΠ΄ΡΡΠΈ TLS Π²ΡΡΠ·ΠΊΠΈ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠΈ TLS Π²ΡΡΠ·ΠΊΠΈ. Π Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ.
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅ Π½Π° Bouncer ΠΈ Odyssey ΡΡΡΠ²ΡΡΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠΈΡΠ°Ρ ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡ pcache, Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠΈΡΠ°Ρ ΠΎΡ pcache, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΡ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌ Odyssey Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π·Π° Π½Π°Ρ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΌΡ ΠΎΡΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΏΡΠΎΡΠΈΠ²Π»ΡΠ²Π°. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, Π½ΠΎ ΡΠ»Π΅Π΄ 20 000 Π²Ρ ΠΎΠ΄ΡΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ ΠΏΡΠΎΡΠ²ΠΈ.
Pluggable Authentication Method Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° Lunux. Π PgBouncer ΡΠΎΠ²Π° Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΠΎ ΡΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½, ΡΠ΅ ΠΈΠΌΠ° ΠΎΡΠ΄Π΅Π»Π½Π° Π½ΠΈΡΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΄Π° ΡΠ°ΠΊΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ PAM ΠΈ ΠΈΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° Π½ΠΈΡΠΊΠ° PgBouncer, ΠΊΠΎΡΡΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²ΡΡΠ·ΠΊΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΠΎΠΌΠΎΠ»ΠΈ Π΄Π° ΠΆΠΈΠ²Π΅ΡΡ Π² PAM Π½ΠΈΡΠΊΠ°ΡΠ°.
ΠΠΈΠ΅ Π½Π΅ Π²Π½Π΅Π΄ΡΠΈΡ ΠΌΠ΅ ΡΠΎΠ²Π° ΠΏΠΎΡΠ°Π΄ΠΈ Π΅Π΄Π½Π° ΠΏΡΠΎΡΡΠ° ΠΏΡΠΈΡΠΈΠ½Π°. ΠΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠΈ. ΠΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠΎΠ²Π°?
Π’ΠΎΠ²Π° Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ PAM ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π½Π΅-PAM ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅, ΡΠΎΠ³Π°Π²Π° Π³ΠΎΠ»ΡΠΌΠ° Π²ΡΠ»Π½Π° ΠΎΡ PAM ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π·Π°Π±Π°Π²ΠΈ Π½Π΅-PAM ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅. Π’ΠΎΠ²Π° Π΅ Π΅Π΄Π½ΠΎ ΠΎΡ Π½Π΅ΡΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠΌΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»ΠΈ. ΠΠΎ Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°.
ΠΡΡΠ³ ΡΠ΅ΠΉΠΊ Π±Π΅ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΈΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈ Π²ΡΡΠ·ΠΊΠΈ. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡ ΠΊΡΠΌ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠ», ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ TLS ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅ΡΠΎ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΡ Π΅ΡΠ΅Π½ΡΠ½Π° Π²ΡΠ»Π½Π° ΠΎΡ 20 000 ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΡΠ·ΠΊΠΈ, Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ΅ΡΠΈ. Π ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° libpq ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° ΠΎΡΡΠΈΡΠ° ΡΠ°ΠΉΠΌΠ°ΡΡΠΈ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π΅ 3 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²Π»ΡΠ·Π°Ρ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²Π»ΡΠ·Π°Ρ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠΊΡΠΈΡΠΎ ΠΎΡ Π½Π΅Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π΅Π½ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ ΠΎΠΏΠΈΡ.
Π‘ΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, ΡΠ΅ ΡΠΌΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π»ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° ΠΎΡ PgBouncer ΡΡΠΊ Ρ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠΌΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ»ΠΈ Π±ΡΠΎΡ Π½Π° TCP Π²ΡΡΠ·ΠΊΠΈΡΠ΅, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅.
ΠΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ Π²ΡΡΠ·ΠΊΠΈ, Π½ΠΎ ΡΠ΅ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π½ΡΠΌΠ°Ρ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅, Π½ΠΈΠ΅ Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π½Π° ΠΎΠΏΠ°ΡΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° Π½Π΅ Π³ΡΠ±ΡΡ ΡΠ΅ΡΡΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. Π’ΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π»ΠΈ Π²ΡΡΠ·ΠΊΠΈ. ΠΠΎ ΠΏΠΎΠ½Π΅ Π½ΡΠΊΠΎΠΉ ΡΠ΅ Π²Π»Π΅Π·Π΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π΅ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠΎ.
ΠΡΡΠ½Π° ΠΊΠ°ΡΡΠ°
ΠΠ°ΠΊΠ²ΠΎ Π±ΠΈΡ ΡΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π² Odyssey? ΠΠ°ΠΊΠ²ΠΎ ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΠ°Π·Π²ΠΈΠ΅ΠΌ ΡΠ°ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°?
ΠΡΠΌ Π°Π²Π³ΡΡΡ 2019 Π³.
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΡΠ° Π½Π° Odyssey ΠΏΡΠ΅Π· Π°Π²Π³ΡΡΡ:
- ΠΡΠΊΠ°Ρ ΠΌΠ΅ SCRAM ΠΈ PAM ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅.
- ΠΡΠΊΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΈΠΌ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ.
- ΠΠΈΡ ΠΈΡΠΊΠ°Π» ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
- Π Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠ°ΡΠ·Π° Π½Π° ΡΡΡΠ²ΡΡΠ°.
ΠΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΎΡ ΡΠ°Π·ΠΈ ΠΏΡΡΠ½Π° ΠΊΠ°ΡΡΠ° Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° ΠΈ ΡΠΎ Π½Π΅ ΠΎΡ Π½Π°Ρ. Π ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΠ΅. Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡΡΠ°Π²Π° ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡΠ΅.
ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π² Postgres, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ 10, Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ session_attrs ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±ΡΠΎΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π°ΡΠΎ ΠΎΡΠΈΠ²Π°ΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ: ΡΠ°ΠΌΠΎ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½Π΅. Π ΡΠ°ΠΌΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ ΠΏΡΡΠ²ΠΈΡ Ρ ΠΎΡΡ Π² ΡΠΏΠΈΡΡΠΊΠ°, ΠΊΠΎΠΉΡΠΎ ΠΌΡ Ρ Π°ΡΠ΅ΡΠ²Π° Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° session_attrs.
ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Ρ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅, ΡΠ΅ ΡΠΎΠΉ Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° Π·Π°Π±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΈΠ·ΠΎΡΡΠ°Π½Π°Π»Π° Π·Π° Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π²Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°. ΠΠ° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ ΠΏΡΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° Odyssey Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½Π°.
Odyssey ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΠ΅ΡΠ°Π²Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΄Π° ΠΏΠΈΡΠ° Π·Π° ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ. Π Π°ΠΊΠΎ Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π» Π³ΡΠ°Π½ΠΈΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ Π²ΡΡΠ·ΠΊΠΈ ΠΈ, Π΅Π²Π΅Π½ΡΡΠ°Π»Π½ΠΎ, ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π΄ΡΡΠ³ Ρ ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π±ΡΡΠ·ΠΎ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈ Π·Π°Π±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΈ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ, Π·Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ ΡΡΡ Π·Π°ΡΠ²ΠΊΠ°.
Π’ΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π΄Π°Π΄Π΅ Π²ΡΠ΅ΠΌΠ΅Π²Π° ΡΠ°ΠΌΠΊΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, Π·Π°ΡΠΎΡΠΎ Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠΎ, Π½Π°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, Π½Π΅ 2,5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ»Π΅Π³ΠΈΡΠ΅ ΠΎΡ PgBouncer. Π’ΠΎΠ²Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° Π²ΠΈΠ΄Ρ Π² Odyssey.
ΠΠΎ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎ ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° proto3. Π ΡΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ°, ΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ·Π³ΠΎΡΠ²Π΅Π½ΠΎ ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ΄Π²Π° Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ Π²ΠΈΠ΄. Π Π±ΠΈΡ ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠΈΠΌ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΠ΅ ΠΏΡΠΈ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΡΠ²ΡΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π΅ ΠΏΠΎΠΈΡΠΊΠ°Π» Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ. Π Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π°, Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π²ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΠΎ ΡΡΠΊ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°, Π·Π°ΡΠΎΡΠΎ Π½ΡΠΊΠΎΠΉ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π΅ ΡΡΠ·Π΄Π°Π» ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΠ·Π΄Π°Π»ΠΈ ΡΠ°Π·ΠΈ ΡΡΡΠ²ΡΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°, Ρ.Π΅. ΠΊΠΎΠΉ Π΅ ΡΡΠ·Π΄Π°Π» ΡΠ°ΠΊΡΠ² ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΠ½Π΄ΡΠ΅Ρ Π€ΡΠΎΠΉΠ½Π΄ ΠΊΠ°Π·Π°, ΡΠ΅ Π°ΠΊΠΎ ΠΏΡΠΈ Π²Π°Ρ Π΄ΠΎΠΉΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π΅ ΡΡΠ·Π΄Π°Π» ΡΠ°ΠΊΠΎΠ²Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎ ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² Π΄ΡΡΠ³Π° ΡΡΡΠ²ΡΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°, ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π³ΠΎ Π·Π° Π½Π΅Π³ΠΎ. ΠΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π·Π°ΡΠ²ΠΊΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½ΠΎ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΈΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π±ΠΈ Π±ΠΈΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ ΠΌΡ ΡΠ΅ Π΄Π°Π΄Π΅ ΠΏΡΠΎΡΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ° ΡΠ°ΠΊΠ°Π²Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π·Π°ΡΠ²ΠΊΠ°.
Π ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ. ΠΠ΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ PgBouncer. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΡΡΠ½Π΅ΠΌ ΡΡΠ΅Π΄Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°. ΠΠΎ ΡΡΠ΅Π΄Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ ΡΡΠ΅Π΄Π½Π°ΡΠ° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° Π² Π±ΠΎΠ»Π½ΠΈΡΠ°ΡΠ°: Π½ΡΠΊΠΎΠΈ ΡΠ° ΡΡΡΠ΄Π΅Π½ΠΈ, Π΄ΡΡΠ³ΠΈ ΡΠ° ΡΠΎΠΏΠ»ΠΈ - ΡΡΠ΅Π΄Π½ΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ° Π·Π΄ΡΠ°Π²ΠΈ. ΠΠ΅ Π΅ Π²ΡΡΠ½ΠΎ.
Π’ΡΡΠ±Π²Π° Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΠ΅Π½ΡΠΈΠ»ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΠΈΠΌΠ° Π±Π°Π²Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π³ΡΠ±ΡΡ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ-ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ.
ΠΠ°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ ΠΈΡΠΊΠ°ΠΌ Π²Π΅ΡΡΠΈΡ 1.0 (ΠΠ΅ΡΡΠΈΡ 1.1 Π²Π΅ΡΠ΅ Π΅ ΠΏΡΡΠ½Π°ΡΠ°). Π€Π°ΠΊΡ Π΅, ΡΠ΅ Odyssey Π²Π΅ΡΠ΅ Π΅ Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 1.0rc, Ρ.Π΅. ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅. Π Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π±ΡΠΎΠΈΡ , Π±ΡΡ Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΈ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π²Π΅ΡΡΠΈΡ 1.0 Π·Π° Π½Π°Ρ? ΠΡΡΠΊΠ°ΠΌΠ΅ Odyssey Π² Π½Π°ΡΠΈΡΠ΅ Π±Π°Π·ΠΈ. Π’ΠΎΠΉ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π² Π½Π°ΡΠΈΡΠ΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΎΡΠΊΠ° ΠΎΡ 1 000 000 Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π²Π΅ΡΡΠΈΡΡΠ° Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ ΠΈ ΡΠΎΠ²Π° Π΅ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ 1.0.
ΠΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΡΠΈ Π² ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΏΠΎΠΈΡΠΊΠ°Ρ Π° Π²Π΅ΡΡΠΈΡ 1.0 Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠ°ΡΠ·Π° ΠΈ SCRAM. ΠΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΡΠ½Π΅ΠΌ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½ΠΈΡΠΎ SCRAM, Π½ΠΈΡΠΎ ΠΏΠ°ΡΠ·Π°ΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΡΠ±ΠΈΡΠΈ. ΠΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½ Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ.
ΠΡΠ°ΠΊΠ²Π°ΠΌ Π²Π°ΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΡΡΡ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠΌΠ°Ρ Ρ Bouncer. ΠΠ΅ΠΊΠ° Π³ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ. ΠΠΎΠΆΠ΅ Π±ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅.
Π’ΠΎΠ²Π° Π΅ ΠΊΡΠ°ΡΡ Π½Π° ΠΌΠΎΡΡΠ° ΡΠ°ΡΡ, Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° Π²ΠΈ ΠΈΠ·ΡΠ»ΡΡΠ°ΠΌ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ!
ΠΡΠΏΡΠΎΡΠΈ
ΠΠΊΠΎ Π·Π°Π΄Π°ΠΌ ΠΌΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π»ΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ΅Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π² ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Odyssey?
ΠΠ΄ΠΈΡΠ΅ΠΉ ΠΈΠ»ΠΈ Π±ΠΈΡΡ?
Π ΠΠ΄ΠΈΡΠ΅ΠΉ. Π Bouncer ΡΠ΅ Ρ Π²ΡΡΠ»Ρ.
Π©Π΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ.
Π Π°ΠΊΠΎ ΠΈΡΡΠΈΠ½ΡΠΊΠ°ΡΠ° ΠΌΠΈ Π²ΡΡΠ·ΠΊΠ° ΠΏΡΠ΅ΡΠΊΠΎΡΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ Π²ΡΡΠ·ΠΊΠΈ, ΡΠ΅ Π±ΡΠ΄Π΅ Π»ΠΈ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½Π°?
ΠΠΈΠ΅ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π½Π°Π±ΠΎΡ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ Π² ΡΠΏΠΈΡΡΠΊΠ°. ΠΠ΅ ΠΌΠΎΠ³Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° Π΄Π°Π»ΠΈ application_name Π΅ Π² ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ. ΠΠΈΡΠ»Ρ, ΡΠ΅ Π³ΠΎ Π²ΠΈΠ΄ΡΡ ΡΠ°ΠΌ. Π©Π΅ Π·Π°Π΄Π°Π΄Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. Π‘ Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΎ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ, ΠΠ½Π΄ΡΠ΅ΠΉ, Π·Π° ΡΠ΅ΠΏΠΎΡΡΠ°ΠΆΠ°! ΠΠΎΠ±ΡΡ ΡΠ΅ΠΏΠΎΡΡΠ°ΠΆ! Π Π°Π΄Π²Π°ΠΌ ΡΠ΅, ΡΠ΅ Odyssey ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π²ΡΠ΅ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ Ρ Π²ΡΡΠΊΠ° ΠΌΠΈΠ½ΡΡΠ°. ΠΡΠΊΠ°ΠΌ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌ ΡΠ°ΠΊΠ°. ΠΠ΅ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ»ΠΈΡ ΠΌΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π²ΡΡΠ·ΠΊΠ° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Odyssey Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Ρ.Π΅. Π³Π»Π°Π²Π΅Π½ ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½, ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΡΠ»Π΅Π΄ ΠΎΡΠΊΠ°Π·.
ΠΠ°, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎΠΌΠ½Ρ ΡΠ°Π·ΠΈ Π΄ΠΈΡΠΊΡΡΠΈΡ. Π‘Π΅Π³Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΠΎ Π½ΡΠΌΠ° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ . ΠΡ Π½Π°ΡΠ° ΡΡΡΠ°Π½Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΡΡΠ²ΡΡΠ°, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΠΆΠΈΠ² ΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΠ΅ Π΅ Π½Π°ΡΡΡΠΏΠΈΠ» ΠΎΡΠΊΠ°Π·, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ° pg_recovery. ΠΠΌΠ°ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ°, ΡΠ΅ Π½Π΅ ΡΠΌΠ΅ Π΄ΠΎΡΠ»ΠΈ ΠΏΡΠΈ Π³ΠΎΡΠΏΠΎΠ΄Π°ΡΡ. Π Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΊΠ°ΠΊ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ? Π’ΠΎΠ΅ΡΡ ΠΈΠ΄Π΅ΡΡΠ° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°, ΠΎΠ±ΡΡΠΆΠ΄Π° ΡΠ΅. ΠΠΈΡΠ΅ΡΠ΅ ΠΎΡΠ΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π·Π½Π°ΡΡ C, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ.
ΠΡΠΏΡΠΎΡΡΡ Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΡΡΡΠΎ Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°, Π·Π°ΡΠΎΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ°Π½ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΡΡΠΊ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ, Ρ.Π΅. ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ Π΄ΠΎΠ±ΡΠ΅.
ΠΡΠΏΡΠΎΡΡΡ Π΅ ΠΈ Π·Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. ΠΠΊΠ°Π·Π²Π° ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°ΠΉΡΡΠΎΡ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. Π Π΅ ΡΡΠ½ΠΎ, ΡΠ΅ ΠΏΠΎ-ΡΡΠ΄ΠΊΠΎ Ρ ΠΎΠ΄ΡΡ ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΡΠΈ ΠΌΠ°ΠΉΡΡΠΎΡΠ° Π·Π° Π²ΡΡΠ·ΠΊΠΈ, Π·Π°ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ ΡΠ°Π·Π»ΠΈΠΊΠΈ. ΠΠ°Π·Π°Ρ ΡΠ΅, ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Π² Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡΠ°ΠΊΠ°Π²Π°, ΡΠ΅ Π΄Π° Π½Π΅ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈ Π±ΠΈΠ·Π½Π΅ΡΠ° Π²ΠΈ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ ΡΠ°ΠΌ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ°Π½Π°. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π°ΠΊΠΎ Π½Π΅ ΡΡΠ΅ Ρ ΠΎΠ΄ΠΈΠ»ΠΈ ΡΠ°ΠΌ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Π»ΠΈ Π΄Π° Ρ ΠΎΠ΄ΠΈΡΠ΅, ΡΠΎΠ³Π°Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π²Π΅Π΄Π½Π°Π³Π°. Π’ΠΎΠ΅ΡΡ, Π°ΠΊΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΡΠΈΠ²Π°ΠΌΠ΅ ΠΏΡΠΈ Π³Π»Π°Π²Π½ΠΈΡ, ΡΠΎΠ³Π°Π²Π° ΠΊΠ΅ΡΡΡ ΡΠ°ΠΌ ΡΠ΅ Π·Π°Π³ΡΡΠ²Π°, Π½ΠΎ Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ° ΠΊΠ΅ΡΡΡ ΠΈΠ·ΠΎΡΡΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ.
ΠΠ°, ΡΠΎΠ²Π° Π΅ Π²ΡΡΠ½ΠΎ. Pcache Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅, ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡΡ ΠΊΠ΅Ρ Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅, ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ°Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° Π½ΠΈΡΠΎ.
Π ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°Ρ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π½ΠΎΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΠ°ΠΌ, ΡΠΎΠ³Π°Π²Π° Π΄ΠΎΠΊΠ°ΡΠΎ ΡΡΡΠ³Π½Π΅, Π²ΡΠΈΡΠΊΠΎ Π² Π½Π΅Π³ΠΎ Π΅ Π·Π»Π΅, Ρ.Π΅. ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΡΠΈ ΠΊΠ΅ΡΠ°.
Π‘Ρ Π²Π°Π½Π°Ρ ΠΈΠ΄Π΅ΡΡΠ°. ΠΡΠ°Π²ΠΈΠ»Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΠΈ Π±ΠΈΠ» ΠΏΡΡΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΡ ΠΌΠ°Π»ΡΠΊ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π±ΠΈ Π·Π°ΡΠΎΠΏΠ»ΠΈΠ»ΠΎ ΠΊΠ΅ΡΠ°. ΠΡΡΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π° ΠΈΠ·ΠΎΡΡΠ°Π²Π°ΠΌΠ΅ ΠΎΡ ΠΊΠ°ΠΏΠΈΡΠ°Π½Π° Ρ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π ΡΠΎΠ²Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° Π² Π΅Π΄Π½Π° Π²ΡΠ»Π½Π°, Π° ΠΏΠ»Π°Π²Π½ΠΎ Π·Π° Π½ΡΠΊΠΎΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ.
ΠΠ°, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π³Π»ΠΎΡΠΎ.
Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΠ° ΠΈΠ΄Π΅Ρ. ΠΠΎ ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ ΡΠΎΠ²Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅. ΠΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΠΌ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΌΠΈΡΠ»ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° Π²ΠΊΠ»ΡΡΠΈΠΌ. Π’ΠΎΠ²Π° Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΏΠ»Π°Π²Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅.
Nginx ΠΈΠΌΠ° ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΡ slowly start
Π² ΠΊΠ»ΡΡΡΠ΅Ρ Π·Π° ΡΡΡΠ²ΡΡΠ°. Π ΡΠΎΠΉ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠ°, ΡΡΡΠ°Ρ ΠΎΡΠ½Π° ΠΈΠ΄Π΅Ρ, ΡΠ΅ Ρ ΠΏΡΠΎΠ±Π²Π°ΠΌΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠΈΠ³Π½Π΅ΠΌ Π΄ΠΎ Π½Π΅Ρ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com