Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ» Π·Π°Π΄Π°Ρ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ ΠΏΡΠ» Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² Π½Π° Perl
Π ΡΠ°Π±ΠΎΡΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ°, Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΈΡΡΡ ΡΠΊΡΠΈΠΏΡΡ β Π²ΠΎΡΠΊΠ΅ΡΡ β ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π·Π°Π΄Π°Ρ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ β Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ½ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, Ρ ΠΎΡΠΎΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠΎ ΠΈ Π±Π΅Π· ΠΏΡΠΎΠ²ΠΎΠ»ΠΎΡΠ΅ΠΊ.
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Π΄Π²Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
ΠΠΎΠ΄ΡΠ»Ρ AnyEvent
ΠΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π² ΠΠ΅ΡΠ»Π΅ Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ AnyEvent.
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ AnyEvent ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ. ΠΠ°ΠΊ DBI ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΊ ΡΠ°Π·Π½ΡΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΠΈ AnyEvent ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ².
ΠΠ»Ρ AnyEvent ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΅ΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΠΌΠΎΠ΄ΡΠ»Ρ AnyEvent::Fork::Pool.
ΠΠΎΠ΄ΡΠ»Ρ AnyEvent::Fork::Pool ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ»Π° Π²ΠΎΡΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Π‘ΠΊΡΠΈΠΏΡ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΊΡΠΈΠΏΡ anyevent_pool.pl:
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΠ²ΡΠ·ΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ»ΠΎΠΌ ΠΈ ΡΠ΅ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠ» β ΠΎΠ½ ΠΎΠ΄ΠΈΠ½ Π½Π° Π²ΡΠ΅Ρ , Π° Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅. ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠ»Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ΄ (ΠΊΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ) Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Text Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°, Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ length ΠΈ trim. Π Π΅ΡΠ΅ Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Image, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ resize ΠΈ crop. ΠΡΠ»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅Π· ΡΠ°Π·Π½ΠΈΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΡΡΡΠΎΠ΅Π½Ρ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ»Ρ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ, ΠΈ ΠΏΡΠ» ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎ! ΠΠΎΠ΄ΡΠ»Ρ Π²ΠΎΡΠΊΠ΅ΡΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΡΠ΅ΡΠ΅Π· Β«use WorkerΒ». ΠΡΠ» ΡΠ°ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΠΎΡΠΊΠ΅ΡΠ°, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΄Π΅Ρ
ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΄Π΅Ρ. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΡΠ°Π²Π½ΡΠ»ΠΎΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ΄Π΅Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΡΠ° Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ Π·ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π²ΡΡΠ°Π²Π°ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ΅ΡΠΈ Π½Π° Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΄Π΅Ρ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²ΡΡΡΠ½ΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ 1.
ΠΠΎΡΡΠ½Π΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ:
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΡΠ»Ρ
ΠΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠΎΠ»Π»Π±ΡΠΊ. ΠΠΎΠ»Π»Π±ΡΠΊ β ΡΡΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΡΠΊΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π·Π°Π΄Π°ΡΡ. Π ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΠΎΡΠΊΠ΅ΡΠ°.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡ-ΠΊΠΎΠ»Π»Π±ΡΠΊ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ β ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π°Π·Π΅, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈβ¦ ΠΊΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ β Π²ΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΡΠ»Ρ Π±Π΅Π· ΡΠ°Π·Π½ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, ΠΎΠ½ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ» ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΡΠΊΠ΅ΡΡ, Π° Π²ΠΎΡ ΡΠΎΡ ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ, ΡΡΠΎ Ρ ΡΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ.
ΠΠ°ΠΏΡΡΠΊ Π΄Π²ΠΈΠΆΠΊΠ°
ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ AnyEvent, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π² ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈ Π΄Π°Π»Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π·Π°ΡΠΈΠΊΠ»ΠΈΡΡΡ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ. ΠΠΎΠΏΡΠΎΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π° AnyEvent ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΌ, Π° Ρ Π·Π΄Π΅ΡΡ Ρ ΠΎΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ»Π°. ΠΡΠΎ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΡΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ.
Π‘Π°ΠΌ Π²ΠΎΡΠΊΠ΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ β Π° Π³Π΄Π΅ ΠΆΠ΅, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΠΌ Π²ΠΎΡΠΊΠ΅Ρ? ΠΠ΄Π΅ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΡ?
ΠΠΎΡ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ Worker:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ β init ΠΈ work.
Π€ΡΠ½ΠΊΡΠΈΡ init ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΠΎΡΠΊΠ΅Ρ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π»ΠΎΠ³-ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π»Π΅Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ work. ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅ β ΡΡΠ½ΠΊΡΠΈΡ init ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠ΄Π΅Π»Π°Π» Π΅Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΡΠ°Π±ΠΎΡΡ β Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π²ΠΎΡΠΊΠ΅ΡΠ° Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠΊΠ» Ρ ΡΠ΅ΠΊΡΠ½Π΄Π½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ Π² Π»ΠΎΠ³ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π² ΡΡΡΠΎΠΊΠ΅ Π±ΡΠΊΠ².
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΡΠ°ΠΌΡ ΡΡΡΠΎΠΊΡ ΠΈ Π΅Π΅ Π΄Π»ΠΈΠ½Ρ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΠΊΠΎΠ»Π»Π±ΡΠΊ, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ ΠΏΡΠ»Ρ (Π° Π² ΠΊΠΎΠ»Π»Π±ΡΠΊΠ΅, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅, ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Ρ).
ΠΠΎΡ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ Π²Π΅ΡΡ ΠΊΠΎΠ΄.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠ»
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΠΌ Π½Π°Ρ ΠΏΡΠ» ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ:
Π’ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ»Π°. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΡΡΠΎΠΊ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΈΠΊΠ»Π΅ Π² ΡΠΊΡΠΈΠΏΡΠ΅. ΠΡΠΈΡΠΈΠ½Π° ΠΏΠΎΠ½ΡΡΠ½Π° β Ρ ΡΡΡΠΎΠΊ ΡΠ°Π·Π½Π°Ρ Π΄Π»ΠΈΠ½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΡΠΊΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ. Π§Π΅ΠΌ ΠΏΡΠΎΡΠ΅ Π·Π°Π΄Π°ΡΠ° β ΡΠ΅ΠΌ ΠΎΠ½Π° Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, Π½ΠΎ ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½Π΅ Π·Π°ΠΏΡΡΡΠΈΠΌ tail Π΄Π»Ρ Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π°:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΊΡ, ΡΠ°ΠΊ-ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π‘Π»Π΅Π²Π° Π²ΠΈΠ΄Π½Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² β Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ 4 ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π£ ΠΌΠ΅Π½Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ 4 ΡΠ΄ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΡΠ΅ 4 Π·Π°Π΄Π°ΡΠΈ.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
Π’Π°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠ»Π°.
ΠΠ΅ΡΠ²ΡΠΌ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ΄Π΅Ρ ΡΠΊΡΠΈΠΏΡ, Π΄Π°Π»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΡΠ»ΠΎΠ² (Π΄Π°-Π΄Π°, ΠΏΡΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΊ), ΠΏΠΎΡΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΡΠ»Π°, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΠΎΡΠΊΠ΅ΡΡ.
ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»Π΅Π½ΠΈΡΡΡΡ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π² Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π΅.
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ» ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² ΠΈ Π²ΡΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠΈ. ΠΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Β«ΠΡΠ°Π²ΠΈΡΒ»
ΠΠΈΡΠΆΠ° ΡΡΠΈΠ»Π°Π½ΡΠ° FL.ru ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ΅ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ ΠΌΠ°Π»ΠΎΠ³ΠΎ, ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΈ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ° ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ ΠΊΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠ°ΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠΎΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»Π°ΡΡ ΠΡΠΈΠ½Π° ΠΡΠ±Π°Π½Π΅Ρ, HR-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Β«ΠΡΠ°Π²ΠΈΡΒ» β ΡΠΎΡΡΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠΈ.
ΠΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ β Β«ΠΡΠ°Π²ΠΈΡΒ» β ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠΈ, Π»ΠΈΠ΄Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΠΏΡΠΎΠ΄Π°Π²Π°Π»ΠΈ Π½Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌ Π±ΡΡΡΠΈ-ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ: ΠΊΠΎΡΠΌΠ΅ΡΠΎΠ»ΠΎΠ³Π°ΠΌ, ΠΌΠ°ΡΡΠ΅ΡΠ°ΠΌ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ ΠΊΡΠ°ΡΠΎΡΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌ ΠΈ ΡΠΎΠ·Π½ΠΈΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π²ΡΠΏΡΡΡΠΈΠ² Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈΠΈ ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠΈ, ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΆ β ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΠ΅ ΠΈ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡΡ. Π‘ ΠΎΡΠΊΡΡΡΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΎΡΡΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΊΠ°Π΄ΡΠ°ΠΌΠΈ. Π‘Π΅ΠΉΡΠ°Ρ Ρ Π½Π°Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° 470 ΡΡΠ°ΡΠ½ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ 18 Π²Π½Π΅ΡΡΠ°ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ β ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ². Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΡ ΠΎΡΠ΄Π°Π΅ΠΌ ΠΈΠΌ ΠΊΠΎΠΏΠΈΡΠ°ΠΉΡΠΈΠ½Π³, Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ.
ΠΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π² ΡΡΠ΅ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ β ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΎΡΠ΄Π°ΡΡ Π½Π° ΡΡΠΈΠ»Π°Π½Ρ ΠΈ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π² ΡΠ²ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΌΠΎΠ΄Π΅Π»Ρ. ΠΡ Ρ Π½ΡΠ»Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΠΏΡΠ» ΠΊΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π½ΠΈΠΌΠΈ ΡΠΆΠ΅ 4β5 Π»Π΅Ρ.
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠ»Π°? ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ΡΠ° ΡΠ²ΠΎΠΈ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ: ΠΊΡΠΎ-ΡΠΎ ΠΏΠΈΡΠ΅Ρ Π±ΡΡΡΡΠΎ, ΠΊΡΠΎ-ΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ Π² Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΠ½ΠΊΠ°, Π° ΠΊΡΠΎ-ΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ Π² ΡΠΎΡΡΠ°Π²Π°Ρ ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΆΠΈΠ²ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ. ΠΡΠ΅ ΡΡΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π½ΠΎΡΠΈΠΌ Π² ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΡΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π΄Π΅Π΄Π»Π°ΠΉΠ½Π°Ρ ΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠΎΠΉ.
ΠΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ ΠΏΡΠ» ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² ΠΈ ΡΡΠ°Π»ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΡ ΠΈΡ Π΄Π»Ρ Π·Π°Π΄Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½Π°, e-commerce-Π·Π°Π΄Π°Ρ ΠΈ ΠΏΠΎΠ΄Π±ΠΎΡΠ° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² (HR-ΡΡΠ½ΠΊΡΠΈΠΈ).
CΠ΅ΠΉΡΠ°Ρ Π΄Π»Ρ Π½Π°Ρ ΡΠ°ΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² β Facebook ΠΈ Telegram-ΠΊΠ°Π½Π°Π»Ρ. ΠΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΊΠΈΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. Π§Π°ΡΡΡ Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ Π² ΠΊΠ°ΡΡΠ΅ΡΠ½ΡΡ Π³ΡΡΠΏΠΏΠ°Ρ ΠΈ ΠΊΠ°Π½Π°Π»Π°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² βΠ Π°Π±ΠΎΡΠ° Ρ Π΄ΠΈΠ΄ΠΆΠΈΡΠ°Π» ΠΈ ΠΌΠ΅Π΄ΠΈΠ°β ΠΈ βΠΠΎΡΠΌ ΡΠ°Π±ΠΎΡΠ°β, Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ·ΠΊΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βPR in Beautyβ ΠΈΠ»ΠΈ βJob in IT&Digitalβ.
Π§ΡΡΡ ΡΠ΅ΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΡΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΡΠΆΠΈ Etext, ΠΠΈΡΠ°Π»ΠΈΠ½ΠΊΡ. Π Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, FL.ru. ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΎΠ³ΠΎΡΠΈΠΏ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π±ΡΠ΅Π½Π΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π΅Π»Π°Π» ΡΡΠΈΠ»Π°Π½ΡΠ΅Ρ Ρ ΡΡΠΎΠΉ Π±ΠΈΡΠΆΠΈ.
ΠΡ Π²Π΅Π΄Π΅ΠΌ ΡΠ²ΠΎΠΉ ΠΊΠ°Π½Π°Π» Π² Π―Π½Π΄Π΅ΠΊΡ.ΠΠ·Π΅Π½. ΠΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΈ Ρ ΡΠΎΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ Π³Π°ΠΉΠ΄Π°ΠΌΠΈ Π½Π° ΡΠ΅ΠΌΡ ΡΡ ΠΎΠ΄Π°. ΠΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ»ΠΈ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠ° Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ. Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ΅Π³ΠΎ 367 ΡΡΠ±Π»Π΅ΠΉ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ 1000 ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠΉ, 100 ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠΎΠ²Π°ΡΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, 1 ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΎΠ±ΠΎΡΠ΅Π»ΡΡ Π² 36 ΠΊΠΎΠΏΠ΅Π΅ΠΊ, Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ β Π² 3 ΡΡΠ±Π»Ρ. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π²Π·ΡΠ»ΠΈ Π·Π° ΠΈΠ΄Π΅Π°Π» Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅.
Π ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ ΠΎΡ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ², Π΅Π΅ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ·Π΅Π½Ρ. ΠΠΎΠ΄ΠΎΠ±ΡΠ°Π» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ Π²ΠΈΠ·ΡΠ°Π», ΡΠ°ΡΠΊΡΡΠ» ΡΠ΅ΠΌΡ β ΠΏΠΎΠ»ΡΡΠΈΠ» CTR ΠΈ Π΄ΠΎΡΠΈΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π·Ρ, Π±Π΅Π· Π³Π°Π΄Π°Π½ΠΈΠΉ Π½Π° ΠΊΠΎΡΠ΅ΠΉΠ½ΠΎΠΉ Π³ΡΡΠ΅. ΠΠΈΠΊ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° ΡΡΠ°ΡΡΠΈ ΠΠ·Π΅Π½Π° ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠ΅ 3 Π΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ, Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎΡ Π°Π²ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΡ Π½Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅Π½Π΅Π³.
ΠΠΏΡΡΡ ΠΆΠ΅, ΠΏΠΎ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ·Π΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ·Ρ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΠ½ΠΈ ΠΏΡΠΈΠ²Π΅Π»ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅Π²ΡΠ°Π»Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ 19 ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ. Π‘ Π½ΠΈΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ 56 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ², 24082 Π΄ΠΎΡΠΈΡΡΠ²Π°Π½ΠΈΠΉ β ΡΡΠΎ ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ , Β«ΠΏΡΠΎΠ³ΡΠ΅ΡΡΡ Β» ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»Π° ΡΠ΅ΠΌΠ°, Π½Π°Ρ ΠΊΠ°Π½Π°Π» ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ Π² ΡΠ΅Π»ΠΎΠΌ.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊ Π³Π»Π°Π΄ΠΎΠΊ, ΠΊΠ°ΠΊ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π²ΡΡΠ΅. Π ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ°Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΡ ΡΡΠ΅ΠΌΠΊΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ. ΠΡ Π½Π°ΡΠ»ΠΈ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠ°-ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠ° ΠΏΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Ρ, ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡ . Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ Π²ΡΠ΅Ρ Π°Π» Π² ΠΎΡΠΈΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΎΡΡΠ½ΡΠ» ΠΊΠ°Π΄ΡΡ, ΠΈ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ. ΠΠ½ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΏΡΠΈ Π»ΠΈΡΠ½ΠΎΠΉ Π±Π΅ΡΠ΅Π΄Π΅ ΡΡΠΎΠΈΠΌΠΎΡΡΡ, ΠΏΠΎΡΠ»Π΅ ΠΏΠ°ΡΡ ΡΠ°Π· ΡΠΏΠΈΡΠ°Π»ΠΈΡΡ Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ΅. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ°Π΄ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΠΌΠ°, ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΡ ΠΊΡΡΡΠ΅ΡΠΎΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π° ΡΠ²ΡΠ·Ρ ΡΠΎΡΠΎΠ³ΡΠ°Ρ Π½Π΅ Π²ΡΡΠ΅Π» ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ Π²Π΅ΡΠ½ΡΠ».
ΠΠΎΠ²Π΅ΡΡΠΈΠ²ΠΎΡΡΡ ΡΡΠΎΠΈΠ»Π° Π½Π°ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ° 15 000 ΡΡΠ±Π»Π΅ΠΉ ΠΏΡΠ΅Π΄ΠΎΠΏΠ»Π°ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΡ ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 5000 ΡΡΠ±Π»Π΅ΠΉ Π·Π° ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, Π½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ β Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠ° ΠΈ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠΉ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ. Π’Π°ΠΊ ΠΌΡ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ Π² Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½ΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ² Ρ ΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΊΠΎΠ², Π’Π, ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΎΡΠ³ΡΡΠ·ΠΊΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ. ΠΠ»Ρ ΡΠ΅Π±Ρ ΠΌΡ Π½Π°ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½Ρ. ΠΠ³ΠΎ ΡΠ΅Π»Ρ β ΡΠ΅ΡΠΊΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π°.
Π Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ Π·Π½Π°ΡΡ Π²ΡΠ΅Ρ Π½ΡΠ°Π½ΡΠΎΠ² ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π°, Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ β Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π‘Π΄Π΅Π»ΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π° Π±ΠΈΡΠΆΠ΅. ΠΠ»Π°Π²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ β Π²ΠΎΠ·Π²ΡΠ°Ρ Π΄Π΅Π½Π΅Π³, Π΅ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π΅ ΠΏΠΎ Π’Π ΠΈΠ»ΠΈ Π½Π΅ Π² ΡΡΠΎΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, Π°ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠΈΡ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠΈΡΠΊΠΎΠΌ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² Π½Π° Π±ΠΈΡΠΆΠ°Ρ ΠΈ Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠ»Π° Ρ Π½Π°Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ Π² ΡΠΎΡΡΠ΅ΡΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ HR-ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
ΠΡΠ±ΠΎΡ Π΄ΠΎΠ±ΡΠΎΡΠΎΠ²Π΅ΡΡΠ½ΡΡ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ² ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠΎ ΡΠ΅ΠΊ-Π»ΠΈΡΡΡ:
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠ°ΠΌΠΈ β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΡΡΠΈΠ»ΠΈΠΉ ΠΈ Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡΠΈ Π³ΡΠ°Π½Ρ, ΡΡΠΎΠ±Ρ, Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΡΠΈΠ»Π°Π½ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π² ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎΠΌ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ β ΡΠΎΠ±Π»ΡΠ΄Π°Π» ΡΠ΅ΡΠΊΠΎΠ΅ Π’Π, ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΡ ΠΈ Π΄Π΅Π΄Π»Π°ΠΉΠ½Ρ. ΠΠΏΡΡΡ ΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΡ ΠΏΠΎΠΌΠΈΠ½ΡΡΠ½ΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ: Π²Π΅Π΄Ρ ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ ΡΠΎΠΆΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½Π°Ρ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΠΎΠ². ΠΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ°Π΅Ρ Ρ Π½Π°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Π³ΠΎΠ΄Π°, ΠΌΡ Π·ΠΎΠ²Π΅ΠΌ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΡ ΠΈ Π΄Π°ΡΠΈΠΌ ΠΏΠΎΠ΄Π°ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΠΊΠΎ Π΄Π½Ρ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅ΡΠΎΠΌ/ΠΏΠΎΡΡΠΎΠΉ Π»ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π°ΡΠΊΠΈ Π½Π° ΠΠΎΠ²ΡΠΉ Π³ΠΎΠ΄. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Β«Π°ΠΌΠ±Π°ΡΡΠ°Π΄ΠΎΡΠ°ΠΌΠΈΒ» Π½Π°ΡΠ΅Π³ΠΎ Π±ΡΠ΅Π½Π΄Π°, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ Π΅Π³ΠΎ Π΄ΡΡΠ·ΡΡΠΌ Π² ΡΠΎΡΡΠ΅ΡΡΡ ΠΈ Π»ΠΈΡΠ½ΠΎ. ΠΠΎΠΏΠ°Π΄Π°Ρ Π² Π½Π°Ρ ΠΏΡΠ», ΡΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΈΡ ΠΆΠ΄ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π½ΠΎ ΠΈ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡ ΠΈ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ»Ρ
ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: Π°Π²ΡΠΎΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ β ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ Sudhir Jonathan β ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ (ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ) ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ». ΠΠ²ΡΠΎΡ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΡΡΠΎΡ ΠΏΡΠΎΠ±Π΅Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΡΠ΅ΡΠ²Π΅ΡΡ ΠΠ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ β ΡΡΠΎ ΡΠΊΡΡΡΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ½ΠΈ ΡΡΠ°Π»ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ Π½Π°ΡΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΎ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π²Π°ΠΆΠ½Ρ, Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΡΠ΅ΡΠΏΡΡ Π½Π΅ΡΠ΄Π°ΡΡ. Π§Π°ΡΡΠΎ ΠΌΡ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΎ Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΎΠ²ΡΠΌ ΠΎΡΠΊΠ°Π·ΠΎΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎΠ²ΡΡΠ΄Ρ ΠΈ ΠΎΠ½ΠΈ Π²Π°ΠΆΠ½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΠΈΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅.
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ β ΡΡΠΎ ΡΡΠΎ?
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠ²ΡΠ·ΡΡΡΠ΅Π΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΈΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ: ΠΏΠΎΡΡΠ»Π°ΡΡ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±Π°ΠΉΡΡ.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡ Π΅Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π΄Π²ΡΡ Unix-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π·Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΠΏΡΠΈΡΠΌ/Π΄ΠΎΡΡΠ°Π²ΠΊΡ Π±Π°ΠΉΡΠΎΠ² Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΎΡΠΎΠ½ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ (IPC). ΠΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ , ΠΎΠ½ΠΈ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ΄ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ TCP, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ. ΠΠ΅ΡΠ°Π»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ Π½Π°Π΄ΡΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ ΠΏΡΠΈΡΠΌΠ° Π΄Π°Π½Π½ΡΡ ΡΠΊΠΎΡΠ΅Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ UDP ΠΈ TCP. Π’ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ², ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π½Π΅ΠΉ ΠΌΡ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ?
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ. ΠΠ°Ρ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ ΡΡΠΎΡ Π±Π»ΠΎΠ³, ΠΈ ΠΏΠΎ Π½Π΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ» Π±Π°ΠΉΡΡ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ HTML, CSS, JavaScript ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΠΌΠΎΡΡΠΈΡΠ΅. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP/1.1 Π±ΡΠ°ΡΠ·Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ β ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎΡΠΎΠΊΠΎΠ» HTTP/2 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ). ΠΠΎ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ Π²ΡΡΡΡΠΏΠ°Π» ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π° ΡΠ΅ΡΠ²Π΅Ρ Π±Π»ΠΎΠ³Π°, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π±ΡΠ» ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
ΠΠΎ ΡΠ΅ΡΠ²Π΅Ρ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. Π’Π°ΠΊ, ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π΅ΠΉ Π·Π°ΠΏΡΠΎΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ URL ΡΡΡΠ°Π½ΠΈΡΡ. Π ΠΎΡΠ²Π΅Ρ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΡΡΡΠΏΠ°Π» ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ β ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΠ»Π°ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Β«ΠΎΡΠ³ΡΡΠ·ΠΊΡΒ» ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ JS, CSS ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ CDN-ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π±Π»ΠΎΠ³Π°. ΠΡΠ°ΡΠ·Π΅Ρ (ΠΊΠ»ΠΈΠ΅Π½Ρ) ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ CDN, ΠΈ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π² ΠΊΡΡΠ΅ CDN-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎΡ (Π²ΡΡΡΡΠΏΠ°Ρ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ) ΡΠ²ΡΠ·Π°Π»ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π±Π»ΠΎΠ³Π° (ΡΠ΅ΡΠ²Π΅Ρ).
ΠΡΠ»ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π§Π°ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΊΡΡΡΡ ΠΎΡ Π³Π»Π°Π·, ΠΈ, Π·Π°Π±ΡΠ²Π°Ρ ΠΎΠ± ΠΈΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ , ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡ.
ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ?
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π΅Π΄Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ, Π²Π°ΠΆΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½Π°: ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠΉ (P2P) ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ Β«ΡΡΠΎΠΈΠΌΠΎΡΡΡΒ» Π½Π° ΠΎΠ±ΠΎΠΈΡ ΠΊΠΎΠ½ΡΠ°Ρ , Π½ΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ ΡΠ΅Π΄ΠΊΠΎ. Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ°Π·Π»ΠΈΡΠ½Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²Π΅ΠΆΠΈΡΡ Π·Π½Π°Π½ΠΈΡ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΈ ΠΎΠ± ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
ΠΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ CPU ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ Π½Π΅ Π΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΡΡ Π½ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ threads (ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) β Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. ΠΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡ ΠΏΠΎΡΠΎΠ΄ΠΈΠ» (ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ).
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ event loop (ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π·Π°Π΄Π°Π½ΠΈΡ, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ ΠΈΡ . ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅.
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ fibers (ΡΠ°ΠΉΠ±Π΅ΡΡ), green-threads (Π·Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ), coroutines (ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ) ΠΈΠ»ΠΈ actors (Π°ΠΊΡΠΎΡΡ). ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, Π² ΡΠΌΡΡΠ»Π΅ ΠΈΠ·Π΄Π΅ΡΠΆΠ΅ΠΊ), Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅) ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π±ΡΡΠ΅ΡΠ° ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°.
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ PostgreSQL, Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠΌΠΈ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 10 ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ (ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅).
MySQL Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π½ΠΈΠΆΠ΅ Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½ΠΎ ΠΏΠ»Π°ΡΠΈΡΡ Π·Π° ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ².
Redis ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π² ΡΠΈΠΊΠ»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ»Π°ΡΠΈΡΡ Π·Π° ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ Redis ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ°ΡΠ·Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (ΡΡΠΎ Π΅ΠΌΡ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π΄ΡΡΠ΅Π²ΠΎ β Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π±ΡΡΠ΅ΡΠ° ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡ). ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΈΠ½Π°Ρ:
ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Ruby on Rails, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΏΠΎΡΠΎΠΆΠ΄ΡΠ½Π½ΡΠΌ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (Π² ΡΠ»ΡΡΠ°Π΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Puma), ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ (Unicorn).
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ PHP, ΡΠΈΡΡΠ΅ΠΌΠ° CGI Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ PHP-ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ FastCGI ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π½ΠΎΠ²ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
Π ΡΠ»ΡΡΠ°Π΅ Go Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ goroutine (Π΄Π΅ΡΡΠ²Π°Ρ ΠΈ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ & ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Go).
Π Node.js/Deno Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΡΡΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π·Π° ΡΠ°Π·.
Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π²ΡΠΎΠ΄Π΅ Erlang/Elixir ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π°ΠΊΡΠΎΡΠΎΠΌ β Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅-ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ
ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ:
ΠΡΠΎΡΠ΅ΡΡΡ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (CGI, PostgreSQL), Π»ΠΈΠ±ΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π½Π΅ΠΊΡΡ Π³ΡΡΠΏΠΏΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (Unicorn, FastCGI).
ΠΠΎΡΠΎΠΊΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, Π»ΠΈΠ±ΠΎ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·Π΅ΡΠ²Π°. ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ (Puma/Ruby, Tomcat/Java, MySQL).
Π¦ΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ Π·Π°Π΄Π°ΡΠΈ, ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ (Node, Redis). ΠΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ β ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΠ΅ ΠΈ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ.
Coroutines / Green-Threads / Fibers / Actors. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ (Go, Erlang, Scala/Akka).
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅Π±ΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ: Redis ΠΈ PostgreSQL, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²Π»ΠΈΡΡΡ ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π‘Π΅ΡΠ²Π΅ΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΈ ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΠΌΠΎΠ³ΡΡ Β«ΡΠΏΠ°ΡΡΡΒ» ΠΈΠ·-Π·Π° ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ Π² ΡΠ°Π·ΡΠΌΠ½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ . Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠ°ΡΡΡΠ°Π±Π½ΠΎΠΌΡ Π½Π΅Π΄ΠΎΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈΠ·-Π·Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π½ΠΈΠ·ΠΊΠΈΡ Π»ΠΈΠΌΠΈΡΠΎΠ². Π‘ΠΈΡΡΠ΅ΠΌΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΈΠΊΠ»Π°Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π½Π° 64-ΡΠ΄Π΅ΡΠ½ΡΡ CPU (Π΅ΡΠ»ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΡ 64 ΠΊΠΎΠΏΠΈΠΈ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ β ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π½ΠΎ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ).
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅Ρ ΡΠ΅Π±Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ·-Π·Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΠ΄ΠΈΠ½ Π»ΠΈ Ρ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ, 10 ΠΈΠ»ΠΈ 10000. Π ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΠΊΠ°Π· ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²/ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ.
ΠΠΎΠ΄Ρ ΠΎΠ΄Ρ Π½Π° ΡΠΈΠΊΠ»Π°Ρ ΡΠΎΠ±ΡΡΠΈΠΉ Π²ΡΠΎΠ΄Π΅ Node ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ ΡΠ΅Π±Ρ Π½Π° ΠΎΠ΄Π½ΠΎΡΠ΄Π΅ΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π‘ΠΈΡΡΠ΅ΠΌΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ /Π°ΠΊΡΠΎΡΠ°Ρ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Go ΠΈΠ»ΠΈ Erlang, Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»Π΅Π³ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΄ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ: Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΡΡΡΠΈ Π³ΠΎΡΡΡΠΈΠ½ ΠΈ Π°ΠΊΡΠΎΡΠΎΠ².
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²/ΠΏΠΎΡΠΎΠΊΠΎΠ²/ΡΠΈΠΊΠ»ΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ·-Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ ΡΡΠ°ΠΏΠΎΠ² ΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π²ΡΠΎΠ΄Π΅ MVCC, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅. ΠΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ°Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΠ° ΠΊΡΡΠΏΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ PostgreSQL ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ MySQL ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠ°ΡΡ ΡΡΡΡΡ. Redis ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΏΠ»Π°ΡΠΈΡΡ Π·Π° ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΈ ΠΏΠΎΡΠΎΠΊΠ°Ρ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ, ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (partitioning). Π’Π°ΠΊΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, AWS DynamoDB ΠΈΠ»ΠΈ Google Datastore, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΠ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Go, Ρ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΡ ΠΏΡΠΈΠΌΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ ΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ β ΠΎΠ½ΠΈ ΠΆΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ (join’Ρ, ad-hoc-Π·Π°ΠΏΡΠΎΡΡ) ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΌΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ/ΠΎΠ΄Π½ΠΎΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎ, ΠΈΠ΄Ρ Π½Π° ΡΡΡ ΠΆΠ΅ΡΡΠ²Ρ, ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΌΠ°ΡΠΈΠ½. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡ: ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ± ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅, Π½ΠΎ Π² ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ, Ρ ΡΡΡΡΡΠ°ΠΌΠΈ ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ ΠΌΠ°ΡΠΈΠ½ Ρ ΡΠΌΠ½ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΎ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠ°ΠΊ, ΡΠ»ΠΎΠ²Π½ΠΎ ΠΎΠ½ΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ» ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
Β«ΠΠΎΡΠΎΠ³ΠΎΠ²ΠΈΠ·Π½Π°Β» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π§Π°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ΡΡΡΡ. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΠ΅ΠΉ: Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΈΡ Π΄ΡΡΠ΅Π²ΠΎ, ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡ ΠΈΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΡΡΠ°Π΄Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ²Π΅Ρ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π±Π΅ ΡΠΎΡΠΊΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΎΠ½ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ» Π±Ρ ΡΠ΅Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΠ (ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ) ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ: ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ Π΅Π³ΠΎ, ΡΠΎΡΠΌΡΠ»ΠΈΡΡΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡ Π΅Π³ΠΎ Π² ΠΠ ΠΏΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΆΠ΄ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ , ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°Ρ HTML/JSON/RPC, ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΠΈ Ρ.Π΄. ΠΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°Π΅Ρ β Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΉ ΡΠ΅ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π ΡΡΠΎ ΠΌΡ Π΅ΡΡ Π½Π΅ ΡΡΠ»ΠΈ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ) ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ connection pools (ΠΏΡΠ»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ). ΠΡΠ» β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ» Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²ΡΠ·Π°ΡΡΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΡΠ» ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ»Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΠΊΠΎΠ΄ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ»Π° (checkout), ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ ΠΈ ΡΡΠ°Π·Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΠΏΡΠ» (release). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ΄ Π½Π΅ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°, Π½ΠΈΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΠΏΡΠ»Π΅ Π·Π°Π½ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ (checkout), Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΆΠ΄Π°ΡΡ (block), ΠΏΠΎΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡΡ.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ»ΠΎΠ² ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ :
Ruby on Rails, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΠΏΡΠ», ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½ΡΠ°Π½ΡΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΈ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ ΠΊ ΠΠ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Rails Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ²Π°ΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ, Π° ΠΏΠΎΡΠΎΠΌΡ β Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ).
Π Go Π΅ΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠ»ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΡΠ» ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊ ΠΠ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΠΈ ΡΡΡΠ΄Π½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΌ Π±Π°Π³Π°ΠΌ. ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ Π·Π°ΠΏΡΠΎΡΠ΅ ΠΈΠ΄ΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ· ΠΏΡΠ»Π° (Π³Π΅ΠΉΠ·Π΅Π½Π±Π°Π³ Π² Go, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Postgres advisory locks).
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΡΡΠ³ΡΠ±Π»ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ session β ΡΠ΅ΡΡΠΈΠ΅ΠΉ). ΠΠ°ΡΠ°Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ (commit) ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ (roll back) ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½Π° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π»Π°ΡΡ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ»ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΊΡΠΎΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠ» Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (prepared statements), ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌ.
Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ»ΠΈΠ½Π³ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈ ΠΊΠΎΠ³Π΄Π° Π°Π²ΡΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎ. Pooling-ΠΏΡΠΎΠΊΡΠΈ (Π²ΡΠΎΠ΄Π΅ pgBouncer, Odyssey ΠΈΠ»ΠΈ AWS RDS Proxy) β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ Π·Π°Π±ΡΡΡ ΠΎΠ± ΡΡΠΈΡ Π½ΡΠ°Π½ΡΠ°Ρ . ΠΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ, Π½Π΅ Π·Π°Π±ΠΎΡΡΡΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ Π½Π°ΡΡΠΎΡΡΠΈΠ΅, Π° ΠΈΡ Β«Π΄Π΅ΡΡΠ²Π°ΡΒ» ΠΈΠΌΠΈΡΠ°ΡΠΈΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠ°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΠΌΠΈΡΠ°ΡΠΈΠΉ, pooling-ΠΏΡΠΎΠΊΡΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΡΠ»Π° ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΊΡΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΎΠ½ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π½ΠΎ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . Π§ΠΈΡΠ»ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ Β«Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΡΡΠΈΒ» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ ΡΡΡΡΠΎΠΌ ΡΠ°ΠΊΠΈΡ Π½ΡΠ°Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Π Π΅ΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π½Π΅Π³ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ, ΠΈΠ»ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΡΠΎΠ΄Π΅ pgBouncer, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠ±ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ΄Π° Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ.
Pooling Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ . ΠΡ Π½Π°Π·ΡΠ²Π°Π»ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Β«Π΄Π΅ΡΡΠ²ΡΠΌΠΈΒ», Π½ΠΎ β ΡΠ²Ρ β ΠΎΠ½ΠΈ Π½Π΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Ρ. ΠΠ½ΠΈ ΡΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΏΠΎΡΡΡ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ/Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ»Ρ Π΄Π»Ρ HTTP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠ»Ρ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΈ ΠΏΡΠ»Ρ ΡΠΊΡΡΡΡ ΠΎΡ Π³Π»Π°Π· Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΈΡΡΠ΅ΡΠΏΠ°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ, ΠΈ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½Π° ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ°Π΄Π°Π΅Ρ. ΠΠ½Π°Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ β ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ°ΡΡΠΎ Π²ΡΡΡΡΠΏΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠ±ΡΠΈΡ ΠΏΡΠ»ΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ + Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π₯ΠΎΡΡ ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ Π½Π΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠΈ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠΌΠΈ. ΠΠ°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ/ΡΠΈΡΡΠ΅ΠΌ.
1. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Puma, ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Ruby-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠ°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ β ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ workers. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΡΡΠ΅ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ N ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ workersΓN ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΠΉ. ΠΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠΌΡΠ³ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: Ruby 2+ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ (copy-on-write), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈ ΠΏΠΎΡΠΎΠΌ ΡΠ°Π·Π²Π΅ΡΠ²Π»ΡΡΡ Π΅Π³ΠΎ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΏΠ°ΠΌΡΡΡ β ΠΎΠ±ΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π² Π½ΠΈΡ Π½Π΅ Π²Π½Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ copy-on-write Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ preload_app! ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΠΎΡΠΌΡΠ»ΠΎΠΉ (workersΓN). ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΠΎΠΈΡ Π²ΠΎΠ·Π»Π°Π³Π°ΡΡ Π½Π° Π½Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ΄Ρ, Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠ°Ρ .
Π‘Π΅ΡΠ²Π΅ΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Unicorn, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ β ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π΄Π»Ρ Python, PHP ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ/ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ Π·Π° ΡΠ°Π·, Π½ΠΎ ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ: ΠΏΠΎΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ ΠΠ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ. ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ΅ΠΌ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΄Π΅Ρ CPU (ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°), ΠΈΠ»ΠΈ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ.
Π§ΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π½Π°Ρ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Puma β ΡΠΈΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅/worker’e. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° threads ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΏΡΠ»Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ worker’Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° worker’ΠΎΠ² Π½Π° ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ CPU ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ worker’Ρ β ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΊΠΈΠ½ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ RAM Π½ΡΠΆΠ½ΠΎ, ΠΏΡΠΎΠ²Π΅Π΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΎΠ² Ρ ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ. Π’Π΅ΠΏΠ΅ΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ CPU β ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ°ΠΊ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡ ΡΠΈΡΠ»Π° Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΏΠΎΠΏΡΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΡΠΏΠΈΡ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ° ΠΊ ΠΠ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠ΄ΡΠΎ CPU ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠΏΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ? Rails ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±Π΅Π· ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΡ Π·Π°Π²Π΅ΡΡΠ°Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ database.yml ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°/worker’Π°). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ°Π²Π½ΠΎΠ΅ 5, Rails Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 5 ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ worker’Π°. Π’Π°ΠΊΠΎΠΉ Π»ΠΈΠΌΠΈΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Ρ ΠΎΡΠΎΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² β Π²ΡΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π±ΠΎΡΠΎΡΡΡΡ Π·Π° ΡΡΠΈ ΠΏΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠ»Π΅. ΠΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠ»Π΅ ΡΠ°Π²Π½ΡΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Heroku Puma.
ΠΠΎ ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΠ°Π²Π½ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° worker’ΠΎΠ² Π½Π° ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² (workers Γ threads), Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠ½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΠΎΠ΄Π΅ PostgreSQL ΠΈ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π΄Π»Ρ MySQL. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (Π² ΡΠ»ΡΡΠ°Π΅ Postgres) ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ CPU (Π² ΡΠ»ΡΡΠ°Π΅ MySQL), Π΄Π°Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΡΠΌ ΠΏΡΠ»Π° (pool) ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ threads, ΡΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎ worker’ΠΎΠ², ΠΈΠ»ΠΈ ΠΎΠ±Π° ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠ΅ ΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ: Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΠ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Ρ ΡΠΈΡΠ»ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π±Π΅Π· ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΠ, ΡΠΎ ΡΠΈΡΠ»ΠΎ worker’ΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΡΠΎΠΊΠΈΠΌ, Π° ΠΎΠ±ΡΡΠΌ ΠΏΡΠ»Π° ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΌ β Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΈΡ ΡΠ°ΡΡΡ ΡΡΠ°Π½Π΅Ρ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ Π² ΠΏΡΠ»Π΅ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΡ ΠΈΠ΄Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠΎΠ΄ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡΡΡ (checkout) ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ (release). ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊ ΠΠ Π΄Π΅Π»Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
ΠΡΠ»ΠΈ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠΈ ΡΠΈΡΡΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠΌ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΠ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²ΡΠΎΠ΄Π΅ pgBouncer, Odyssey, AWS RDS Proxy. ΠΠ°ΠΏΡΡΠΊ pooling-ΠΏΡΠΎΠΊΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠ»Π° ΡΠ°Π²Π½ΡΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΠΎΠΏΡΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , PostgreSQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡ ΡΠ΄Π΅ΡΠΆΠ°Π½Π½ΠΎΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΈΡΠ»Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΎΠΉ ΠΠ. MySQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ β Ρ ΠΎΡΡ ΡΡΠΎ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
2. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ
Node / Deno β ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ (event loop), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ°, Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΄ΡΠ°, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ (clustering). ΠΠ½Π° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π½Π° ΡΠΎΠΉ ΠΆΠ΅ ΠΌΠ°ΡΠΈΠ½Π΅. Π£ Node ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π²ΡΠΎΠ΄Π΅ PM2 Π΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π΄Π΅ΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ CPU Π΄ΠΎΡΡΡΠΏΠ½ΠΎ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ).
Stripe Π²ΡΠΏΡΡΡΠΈΠ» ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Einhorn, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²Π½Π΅ ΡΡΠ΅ΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΈΡΠ΅ΡΡΡ ΠΊΠΎΠ΄. ΠΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡ ΠΏΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΈ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠΈΠΊΠ»Π°Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΎΠ½ Π½Π΅ ΡΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ Ruby/Python, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, Ρ ΠΎΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ Π·Π° ΡΠ°Π·.
ΠΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ·ΡΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ . Π‘Π΅ΡΠ²Π΅Ρ Tornado Π΄Π»Ρ Python, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² Python Π² ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠ°ΠΊ non-blocking I/O. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΄ΡΠ° CPU (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ).
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅ Falcon Π΄Π»Ρ Ruby. Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ Ruby ΠΈΠΌΠ΅Π΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ Π·Π΅Π»Π΅Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² (green-thread), Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ±Π΅ΡΠΎΠΌ (fiber), ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ Falcon ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ Ruby-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°. Π€Π°ΠΉΠ±Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ΄ΡΠ° CPU, ΠΏΠΎΡΡΠΎΠΌΡ Falcon Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΡΠ΄ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΠΏΡΡΡ ΠΆΠ΅, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ).
ΠΠΎ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠ»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² Π°Π΄Π°ΠΏΡΠ΅ΡΠ°Ρ ΠΠ Ρ ΡΠ΅Π»ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pooling-ΠΏΡΠΎΠΊΡΠΈ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ Π»ΠΈΠΌΠΈΡΠΎΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΡΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ.
Redis ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΡΡΠΎΠ², ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
3. ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ / ΠΠ°ΡΡΠΎΠΌΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠ±ΡΠ°Π·ΡΠΎΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Go, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΎΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² β ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎ-ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ CPU ΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠΉ Π³ΠΎΡΡΡΠΈΠ½ΠΎΠΉ (goroutine) β Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΡΡΠ΅Π΄Π° Go ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΠΉ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ ΠΏΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Go Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Β«ΡΠ°ΡΠΊΠΈΠ΄ΡΠ²Π°Π΅ΡΒ» Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠ΄ΡΠ°ΠΌ CPU, Ρ ΠΎΡΡ Π΅Π³ΠΎ Π°ΠΏΠΏΠ΅ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ·Π΄Π°ΡΡ, Π·Π°Π΄Π°Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ runtime.GOMAXPROCS. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΠΏΠ°ΠΌΡΡΡ Π½Π΅ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ. Go ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²ΡΠ΅Ρ ΡΠ΄ΡΠ°Ρ CPU ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΄ΡΠ΅.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Go ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π°ΠΆΠ΅ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , Π΅Π³ΠΎ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ PosgreSQL, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π³ΠΎΠ½ΠΎΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠ΅Π·Π°Π΅ΡΡΡ Π² ΠΊΠΈΡΠΏΠΈΡΠ½ΡΡ ΡΡΠ΅Π½Ρ. ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ Π³ΠΎΡΡΡΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ SQL-ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π³ΠΎΡΡΡΠΈΠ½ β Π²Π΅Π΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠ»Π° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Go, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ Ρ SQL-Π±Π°Π·ΠΎΠΉ, β Π·Π°Π΄Π°ΡΡ ΠΏΡΠ΅Π΄Π΅Π» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SetMaxOpenConns ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΉ. Go ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΏΡΠ» Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ sql, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡΠ»Π°, ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΡΠ». ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Β«ΠΎΠ±ΡΡΡΡΠ²Π°Π΅ΡΒ» ΠΎΡΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π° β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π²ΡΠ·Π°Π½Π½ΡΡ Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (advisory locks).
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π°ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ: ΠΎΠ½ ΡΡΡΡΠ°Π½ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² pooling-ΠΏΡΠΎΠΊΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ ΡΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ. Π Π²ΡΠ·ΠΎΠ²Ρ ΠΠ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ, ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² pooling-ΠΏΡΠΎΠΊΡΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΡ, ΡΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΡΠΌΠΈ ΡΠ»ΡΡΠ°ΡΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ Π½ΡΠ°Π½ΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ (advisory locks), ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΡΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ ΡΠΎ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ. ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ Π² ΠΏΠΎΡΠΎΡΠ½ΡΠΉ ΠΊΡΡΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΠΎΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ, ΠΏΠΎΠΊΠ° Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Π Π·Π°ΠΌΠ΅ΡΠΊΠ°Ρ ΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΡΠ»Π° Π΄Π»Ρ HikariCP ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΡΠΎΡΠΌΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠΉ.
ΠΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ VM, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Java, Scala/Akka, Clojure, Kotlin (Π²ΡΠ΅ Π½Π° JVM) ΠΈ Elixir/Erlang (Π½Π° BEAM VM) ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΄Π΅Ρ CPU Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΄ΡΠ°. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΠ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π½ΠΈΠΌΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΡ Π²ΡΡΠ΅.
Π‘Π²ΡΠΆΠΈΡΠ΅ΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ Π² Twitter, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²ΠΎΠΏΡΠΎΡΡ/Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ/ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ.