ΠΠΈΡ Π°ΠΈΠ» Π‘Π°Π»ΠΎΡΠΈΠ½ (Π΄Π°Π»Π΅Π΅ β ΠΠ‘): β ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠΈΡ Π°ΠΈΠ». Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ MC2 Software, ΠΈ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Go Π² Π±ΡΠΊΠ΅Π½Π΄Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«Π‘ΠΌΠΎΡΡΠΈ+Β».
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ· ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΡ
Π»ΡΠ±ΠΈΡ Ρ
ΠΎΠΊΠΊΠ΅ΠΉ?
Π’ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²Π°Ρ. ΠΠ½ΠΎ β Π΄Π»Ρ Β«ΠΠ½Π΄ΡΠΎΠΈΠ΄Π°Β» ΠΈ iOS, ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΉ ΡΠ°Π·Π½ΡΡ
ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΡ
ΡΠΎΠ±ΡΡΠΈΠΉ Π² ΠΎΠ½Π»Π°ΠΉΠ½Π΅ ΠΈ Π² Π·Π°ΠΏΠΈΡΠΈ. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ, ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΌ, ΠΏΠΎ ΡΡΡΠ½ΠΈΡΠ°ΠΌ ΠΈ ΠΏΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π»ΡΡΠΈΠΊΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΡΡΠΊΠ°, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΌΠΎΠΌΠ΅Π½ΡΡ, Ρ. Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΡΡΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠ΅ΠΉ (Π³ΠΎΠ»Ρ, Π΄ΡΠ°ΠΊΠΈ, Π±ΡΠ»Π»ΠΈΡΡ ΠΈ Π΄Ρ.). ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Ρ
ΠΎΡΠ΅ΡΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅.
Π§ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅?
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Go. Π’ΠΎΡ API, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ°Π»ΠΈΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Go. Π’Π°ΠΊΠΆΠ΅ Π½Π° Go Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ push-ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅. ΠΡΡ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ORM, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ. ΠΡ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Go ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ: ΡΠ΅ΡΠ°ΠΉΠ·ΠΈΠ½Π³ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ²β¦
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Β«ΠΠΎΡΡΠ³ΡΠ΅ΡΒ» (PostgreSQL). ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Ruby on Rails Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅ΠΌΠ° (gem) ActiveAdmin. ΠΠ° Β«Π ΡΠ±ΠΈΒ» Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠΌΠΏΠΎΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΠ· ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² API ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ unittest Β«ΠΠΈΡΠΎΠ½Π°Β» (Python). Memcached ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΎΡΡΠ»ΠΈΠ½Π³Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ API-ΠΎΠΏΠ»Π°ΡΡ, Β«Π¨Π΅ΡΒ» (Chef) β Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Zabbix β Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. Graylog2 β Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ², Slate β ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ API Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΡΠ±ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ: Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠΊΠ΅Π½Π΄Π° Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ²β¦
- Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅: Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎ Π΅ΡΡΡ Π²ΡΠ΅, ΠΊΡΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΌΠΎΡΡΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.
- ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΌΡ ΠΏΡΠΈΠ½ΡΠ»ΠΈ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ, Π° ΡΠΊΡΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ»Π°Π³ΠΎΠ².
- ΠΡΡΠΊΠΈΠ΅ ΡΠ΅Π΄ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ (Π²ΡΠΎΠ΄Π΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, ΡΠΎΡΡΠ°Π²ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄) ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ GET-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ.
- ΠΠ»ΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ Π²ΡΠ΄Π΅ΡΠΆΠ°ΡΡ 100 ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ, ΠΌΡ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°:
- WebsocketβΡ. ΠΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΊΠ°Π½Π°Π»Ρ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅Π±-ΡΠΎΠΊΠ΅Ρ β ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
- Server-Sent Events (SSE) ΠΏΠΎΠ΄ΠΎΡΡΠ» Π² ΡΠ°ΠΌΡΠΉ ΡΠ°Π·! ΠΠ½ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ.
Server-Sent Events
ΠΠ°ΡΡ ΡΠ»ΠΎΠ² ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ° ΡΡΡΠΊΠ°β¦
ΠΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΡ http-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ, Π½Π° Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Content-Type: text/event-stream ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ Π² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅:
ΠΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅: Π² ΠΏΠΎΠ»Π΅ event ΠΎΡΠΏΡΠ°Π²Π»ΡΠ»ΠΎΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ΅ΠΉΡΡ ΡΡΡΡΠΊΡΡΡΡ (ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΈΠ³ΡΠΎΠΊ), Π° Π² ΠΏΠΎΠ»Π΅ data β JSON Ρ Π½ΠΎΠ²ΡΠΌΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΌΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
- ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ: ΠΎΠ½ ΡΠΌΠΎΡΡΠΈΡ Π² ΡΠ²ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΠ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Ρ Π½Π΅Π³ΠΎ.
- ΠΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ Ρ ΡΡΠΎΠΉ Π΄Π°ΡΠΎΠΉ.
- Π ΠΎΡΠ²Π΅Ρ ΠΌΡ ΠΎΡΡΡΠ»Π°Π΅ΠΌ Π΅ΠΌΡ Π²ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Ρ ΡΡΠΎΠΉ Π΄Π°ΡΠΎΠΉ.
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ live-ΠΊΠ°Π½Π°Π»ΠΎΠΌ ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅ΠΌΡ Π½ΡΠΆΠ½Ρ ΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ:
ΠΡ ΡΠ»ΡΠΌ Π΅ΠΌΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π°Π±ΠΈΠ» Π³ΠΎΠ» β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΡΡ ΠΌΠ°ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΠ°Π²ΠΌΡ β ΡΠΎΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² Π»Π΅Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠ°ΡΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π», ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΡΠΌΠ΅Ρ, ΡΡΠΎ Ρ Π½ΠΈΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ°Π· Π² 15 ΡΠ΅ΠΊΡΠ½Π΄ timestamp β ΡΡΠΎΠ±Ρ ΠΎΠ½ Π·Π½Π°Π», ΡΡΠΎ Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΠ°ΠΊ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ live-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅?
- Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΊΠ°Π½Π°Π», Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ Π±ΡΡΠ΅ΡΠΎΠΌ.
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠΎΡ ΠΊΠ°Π½Π°Π» Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π½Π°Π», ΡΡΠΎ Π²ΡΡ ok.
- ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ping. ΠΡΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ timestamp ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π² ΡΠΈΠΊΠ»Π΅ ΡΠΈΡΠ°Π΅ΠΌ ΠΈΠ· ΠΊΠ°Π½Π°Π»Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΊΠ°Π½Π°Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π΅ Π·Π°ΠΊΡΡΡ. Π ΠΊΠ°Π½Π°Π» ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΊΡΡΠΈΠΉ timestamp, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΆΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΠΊΠ°Π» ΡΠ°Π· Π² 15 ΡΠ΅ΠΊΡΠ½Π΄ β ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ ΠΎΡΠΊΡΡΡΠΎ 6 ΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ (Ρ ΠΎΠ΄Π½ΠΈΠΌ API-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ), ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΎΡΡ 6 ΡΡΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΠ°ΡΠΈΠ½Π° Π½Π΅ Π΄Π΅ΡΠΆΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΉ Π΄Π»Ρ Π½Π°Ρ, Π½ΠΎ Π½Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ, ΠΈ ΠΌΡ Π΅Ρ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΈ.
Π ΠΈΡΠΎΠ³Π΅ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ ping ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ°Π½Π°Π»Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ update.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΠΊΠ°Π΅Ρ ΡΠ°Π· Π² 15 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠ΄Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ β ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΏΠΈΠ½Π³Π° ΠΈ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. Π’ΠΎ Π΅ΡΡΡ Π·Π΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ (person, match, season) ΠΈ ΡΠ°ΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ:
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΎΠΌ, ΠΎΡΠΊΡΠ΄Π° Π±Π΅ΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΌΠΎΡΡΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ. ΠΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ: ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ, ΠΊΡΠΎ-ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΠ°Π²ΠΌΡ, ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π·Π°ΠΌΠ΅Π½Π°β¦
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ CMS Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² Π±Π°Π·Ρ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π±Π°Π·Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Listen/Notify ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ ΠΎΠ± ΡΡΠΎΠΌ API-ΡΠ΅ΡΠ²Π΅ΡΡ. API-ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠΆΠ΅ ΡΠ°ΡΡΡΠ»Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ Π½Π°Ρ ΠΏΠΎ ΡΡΡΠΈ ΠΊ Π±Π°Π·Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠΎΠ±ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π±Π°Π·Ρ Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ:
PostgreSQL: Listen/Notify
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Listen/Notify Π² Β«ΠΠΎΡΡΠ³ΡΠ΅ΡΠ΅Β» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π½Π° ΡΠΎΠ±ΡΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ β Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π·Π°ΠΏΠΈΡΡ Π² Π±Π°Π·Π΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠΈΠ³Π³Π΅Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ:
ΠΡΠΈ insertβΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ notify Π½Π° ΠΊΠ°Π½Π°Π»Π΅ data_updates, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ ΡΡΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΡΠ°Π²Π»Π΅Π½Π°.
ΠΠ° Π²ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ / ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠ»Π°ΠΉΠ΄Π΅ Π²Π½ΠΈΠ·Ρ.
ΠΠ°ΠΊ API ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ?
Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Fanout β ΠΎΠ½ ΡΠ°ΡΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ. ΠΠ½ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ°ΡΡΡΠ»Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎ ΡΡΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ:
ΠΠ΄Π΅ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° pq, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π±Π°Π·Π΅ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠ°Π½Π°Π» (data_updates), ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΡΠΊΡΡΡΠΎ ΠΈ Π²ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π― ΠΎΠΏΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΌΠ΅ΡΡΠΎ (Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠ΅Π²Π°ΡΠΎ).
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ Π·Π°Π΄Π°ΡΠΌ Ticker, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ»Π°ΡΡ ping ΡΠ°Π· Π² 15 ΡΠ΅ΠΊΡΠ½Π΄, ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠ°Π½Π°Π», Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π»ΠΈΡΡ. ΠΡΠ»ΠΈ Π½Π°ΠΌ ΠΏΡΠΈΡΡΠ» ΠΏΠΈΠ½Π³, ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΡΡΠΎΡ ΠΏΠΈΠ½Π³. ΠΡΠ»ΠΈ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π·Π°ΠΏΠΈΡΡ, ΡΠΎ ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌ ΡΡΠΎΠ³ΠΎ Fanoutβa.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Fan-out?
ΠΠΎ-ΡΡΡΡΠΊΠΈ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ Β«ΡΠ°Π·Π²Π΅ΡΠ²ΠΈΡΠ΅Π»ΡΒ». Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. Π ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π°ΠΏΠ΄Π΅ΠΉΡ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ, ΠΎΠ½ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌ ΠΈΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π° Go:
ΠΡΡΡ ΡΡΡΡΠΊΡΡΡΠ°, ΠΎΠ½Π° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MutexβΠΎΠ². Π£ Π½Π΅Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Fanout ΠΊ Π±Π°Π·Π΅, Ρ. Π΅. Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½ ΡΠ»ΡΡΠ°Π΅Ρ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² β map, ΠΊΠ»ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°Π½Π°Π» ΠΈ struct Π² Π²ΠΈΠ΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (ΠΏΠΎ ΡΡΡΠΈ ΠΎΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊ).
ΠΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° β Connected ΠΈ Disconnected β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ FanoutβΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ, ΠΎΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΈ ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ ΠΎΠ±ΠΎΡΠ²Π°Π½ΠΎ. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΡΡΠ°ΡΡ ΠΈ ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ Π·Π°ΠΊΡΡΠ»ΠΎΡΡ.
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Subscribe, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊΠ°Π½Π°Π» Π² Β«ΡΠ»ΡΡΠ°ΡΠ΅Π»ΠΈΒ»:
ΠΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Unsubscribe, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠ°Π½Π°Π» ΠΈΠ· ΡΠ»ΡΡΠ°ΡΡΠΈΡ
, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΊΠ»ΡΡΠΈΠ»ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Publish, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ°Π·ΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌ.
ΠΠΎΠΏΡΠΎΡ: β Π§ΡΠΎ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ?
ΠΠ‘: β ΠΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΠΈΠ½Π³ (ΠΏΠΎ ΡΡΡΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ, integer).
ΠΠ‘: β ΠΠΎΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π»ΡΠ±ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ β ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² JSON ΠΈ Π²ΡΡ.
ΠΠ‘: β ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ· Β«ΠΠΎΡΡΠ³ΡΠ΅ΡΠ°Β» β Π² Π½Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ Π·Π°ΠΏΠΈΡΡ, Π° ΡΠΆΠ΅ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ? Π£ Π½Π°Ρ 7 ΠΆΠ΅Π»Π΅Π·Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΠ΄ Π±Π°Π·Ρ, Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΈ ΠΊΡΡΡΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΈ. ΠΠΌΠ΅ΡΡΡΡ 6 ΠΊΠΎΠΏΠΈΠΉ API: ΠΊΠ°ΠΆΠ΄Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΊΠ° Ρ API ΠΊΡΡΡΠΈΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ β ΡΡΠΎ Π΄Π»Ρ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ.
Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Keepalived Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ frontend ΠΌΠΎΠ³ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΡ β Π΄Π²Π΅ ΠΊΠΎΠΏΠΈΠΈ CMS.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ. ΠΡΡΡ DB Slave, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π΄Π΅Π»Π°ΡΡΡΡ Π±ΡΠΊΠ°ΠΏΡ. ΠΡΡΡ Pigeon Pusher β ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΡΡΠ»Π°Π΅Ρ ΠΏΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½Π°Ρ Π²Π΅ΡΠΈ: Zabbix, Graylog2 ΠΈ Chef.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈΠ·Π±ΡΡΠΎΡΠ½Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ 100 ΡΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΈ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠΎ ΠΆΠ΅Π»Π΅Π·ΠΎ Π±ΡΠ»ΠΎ β ΠΌΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ (Π½Π°ΠΌ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ β ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ ΠΈ Π½Π΅Ρ).
ΠΠ»ΡΡΡ Go
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΡΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΏΠ»ΡΡΡ Go.
- ΠΠ»Π°ΡΡΠ½Π°Ρ http-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΆΠ΅ Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ».
- ΠΠ»ΡΡ, ΠΊΠ°Π½Π°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π½Π°ΠΌ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ.
- ΠΠ°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠΊΠ° Race detector ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π½Π°ΠΌ ΡΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±Π°Π³ΠΎΠ² (staging-ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°). ΠΡΡ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° stagingβΠ΅ β Π·Π°ΠΏΡΡΠ΅Π½ΠΎ, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΠΊΠ»ΡΡΠΎΠΌ Race; ΠΈ ΠΌΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π½Π° staging-ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
- ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ·ΡΠΊΠ°.
ΠΡ ΠΈΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²! ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Ρ
ΠΎΡΠ΅Ρ β ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°.
ΠΠΎΠΏΡΠΎΡΡ
ΠΠΎΠΏΡΠΎΡ ΠΈΠ· Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ (Π΄Π°Π»Π΅Π΅ β Π): β ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π²Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Fan-out. Π― ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΡΠ²Π΅Ρ, Π²Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ Π·Π°Ρ ΠΎΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ?
ΠΠ‘: β ΠΠ΅Ρ, ΠΌΡ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Ρ Π½Π°Ρ ΡΡΠΎ Π²ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° nginxβΠΎΠΌ, ΡΠΎ Π΅ΡΡΡ Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅Ρ. ΠΠΎ-Π²ΡΠΎΡΡΡ , Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊΠ°Π½Π°Π» Ρ Π±ΡΡΠ΅ΡΠΎΠΌ β ΠΏΠΎ ΡΡΡΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΡΠ΄Π° Π΄ΠΎ ΡΡΠ° Π°ΠΏΠ΄Π΅ΠΉΡΠΎΠ²β¦ ΠΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΠΊΠ°Π½Π°Π», ΡΠΎ ΠΎΠ½ Π΅Π³ΠΎ ΡΠ΄Π°Π»ΡΠ΅Ρ. ΠΡΠ»ΠΈ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΊΠ°Π½Π°Π» Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΡΡ, ΡΠΎ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΠΊΠ°Π½Π°Π», ΠΈ Π²ΡΡ β ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ.
Π: β ΠΠ΅Π»ΡΠ·Ρ Π»ΠΈ Π±ΡΠ»ΠΎ ΡΡΠ°Π·Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π² Listen/Notify Π·Π°ΠΏΠΈΡΡ, Π° Π½Π΅ ΡΠ°Π±Π»ΠΈΡΡ-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ?
ΠΠ‘: β Π£ Listen/Notify Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π² 8 ΡΡΡΡΡ Π±Π°ΠΉΡ Π½Π° preload, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Ρ ΠΌΠ°Π»ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊ [ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅ΠΌ ΠΌΡ] ΠΏΡΠΎΡΡΠΎ Π½Π°Π΄ΡΠΆΠ½Π΅Π΅. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ β Π² ΡΠ°ΠΌΠΎΠΌ Β«ΠΠΎΡΡΠ³ΡΠ΅ΡΠ΅Β».
Π: β ΠΠΎΠ»ΡΡΠ°ΡΡ Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ°ΡΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ?
ΠΠ‘: β Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, Π΄Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΌ ΠΈΠ΄ΡΡ 2-3 ΠΌΠ°ΡΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΠΈ ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ. ΠΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΌΠΎΡΡΠΈΡ ΡΡΠΎ-ΡΠΎ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΡΠΌΠΎΡΡΠΈΡ ΡΠΎΡ ΠΌΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄ΡΡ. ΠΠΎΡΠΎΠΌ, Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ Π΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π±Π°Π·Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ, ΠΈ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠ΅ ΠΌΠ°ΡΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π°ΠΏΠ΄Π΅ΠΉΡΡ. ΠΠΎ ΡΡΡΠΈ ΠΌΡ ΡΠ²ΠΎΡ Π±Π°Π·Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π² ΠΎΡΠ»Π°ΠΉΠ½Π΅.
Π: β ΠΠΎΡΠ΅ΠΌΡ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ²ΠΎΡ ORM?
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Β«Π‘ΠΌΠΎΡΡΠΈ+Β»): β ΠΠ° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ (ΡΡΠΎ Π±ΡΠ»ΠΎ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄) ORM Π±ΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΠΉΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ· Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ORM ΠΌΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΏΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ . Π’ΠΎ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΡΠΈΡ ORM, Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΠ½ΡΡΡ Π½Π° ΡΠ΅Π±Ρ Π²ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ: ΡΡΡΡΠΊΡΡΡΡ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΈΡΠ»ΠΎ, ΡΡΠΎ-ΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠ΅Π΅ΡΡ ΠΊ Π΄Π΅Π»Ρβ¦
ΠΠ°Ρ ORM Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ . Π‘Π°ΠΌ. Π ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Ρ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ ΠΈ Ρ. Π΄. ΠΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ΄ΡΡ.
Π: β Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ?
ΠΠ‘: β ΠΠ° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π΄Π²Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠΠ΄Π΅-ΡΠΎ Π² ΠΈΡΠ½Π΅ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ, Π² Π°Π²Π³ΡΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Π±ΡΠ»Π° Π³ΠΎΡΠΎΠ²Π° (ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ). Π ΡΠ΅Π½ΡΡΠ±ΡΠ΅ Π±ΡΠ» ΡΠ΅Π»ΠΈΠ·.
Π: β Π’Π°ΠΌ, Π³Π΄Π΅ Π²Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ SSE, Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ timeout. ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ?
ΠΠ‘: β ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π°ΡΠΈΡΡΠΎΡΡ, ΡΠΎ SSE β ΡΡΠΎ Π²ΡΡ-ΡΠ°ΠΊΠΈ html5-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»: ΡΡΠ°Π½Π΄Π°ΡΡ SSE ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠΈ, ΡΡΠΎΠ±Ρ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ (ΠΈ ΠΏΡΠΎΡΠ΅Π΅), Π½ΠΎ ΠΎΠ½ΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠΊΠΎΡΠ΅Π΅ Π½Π΅ SSE, Π° ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅ Π½Π° SSE. ΠΡΠΎ Π½Π΅ ΡΠ°ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ».
ΠΠ΅ Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Ρ Π½ΡΠ»Ρ. ΠΠΌ Π±ΡΠ»ΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π²ΡΡ ΡΠ°Π²Π½ΠΎ.
Π: β ΠΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ?
ΠΠ‘: β ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ govet ΠΈ golint, ΡΡΠΎΠ±Ρ ΡΡΠΈΠ»Ρ Π±ΡΠ» Π΅Π΄ΠΈΠ½ΡΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ gofmt. ΠΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ.
Π: β Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΡ?
ΠΠ‘: β ΠΡΠ»Π°Π΄ΠΊΠ° ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΡΡΡ ΡΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π΄Π΅Π±Π°Π³Π³Π΅ΡΠ°, GOP ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ.
Π: β ΠΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΡΠ»Π°ΠΉΠ΄, Π³Π΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Publish? ΠΠ΄Π½ΠΎΠ±ΡΠΊΠ²Π΅Π½Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π°Ρ Π½Π΅ ΡΠΌΡΡΠ°ΡΡ?
ΠΠ‘: β ΠΠ΅Ρ. Π£ Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Β«ΡΠ·ΠΊΠ°ΡΒ» ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ½ΠΈ Π½ΠΈΠ³Π΄Π΅, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ, Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ (ΠΊΡΠΎΠΌΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°), ΠΈ ΠΎΠ½ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ β Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ 7 ΡΡΡΠΎΠΊ.
Π: β ΠΠ°ΠΊ-ΡΠΎ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎβ¦
ΠΠ‘: β ΠΠ΅Ρ-Π½Π΅Ρ, ΡΡΠΎ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΊΠΎΠ΄! ΠΠ΅Π»ΠΎ Π½Π΅ Π² ΡΡΠΈΠ»Π΅. ΠΡΠΎΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΠΉ, ΡΠΎΠ²ΡΠ΅ΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ β Π²ΡΠ΅Π³ΠΎ 3 ΠΏΠΎΠ»Ρ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°β¦
ΠΠ‘: β ΠΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΡΡΡ, Π²ΡΠ΅ ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ (ΡΠ΅Π·ΠΎΠ½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈ, ΠΈΠ³ΡΠΎΠΊΠΈ), Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π΅ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²ΠΈΠ΄ ΡΠΏΠΎΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΌΠ°ΡΡ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΡΡ ΡΡΡΡΠΌ, Π° ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ΄ΡΡ Π·Π°Π±Π°Π½Π΅Π½Ρ.
Π: β ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ?
ΠΠ‘: β ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ go dep.
Π: β Π ΡΠ΅ΠΌΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΡΡΠΎ-ΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ, Π° Π² Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅Ρ.
ΠΠ‘: β ΠΠ΅Ρ, Ρ ΠΌΠ΅Π½Ρ Π² ΡΠ΅ΠΌΠ΅ ΠΏΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Ρ. ΠΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Β«Π‘ΠΌΠΎΡΡΠΈ+Β» β ΡΡΠΎ ΡΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ.
Π: β ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΡΠΈΠΌΠΈΡΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡ?..
ΠΠ‘: β Π‘ΡΡΠΈΠΌΠΈΠ½Π³ΠΎΠ²ΡΠΌ Π²ΠΈΠ΄Π΅ΠΎ ΠΌΡ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈΡΡ. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄Π΅Π»Π°Π» Β«ΠΠ΅Π³Π°ΡΠΎΠ½Β». ΠΠ°, Ρ Π½Π΅ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π³Π°ΡΠΎΠ½ΠΎΠ²ΡΠΊΠΎΠ΅.
ΠΠ‘: β Go β Π΄Π»Ρ ΡΠ°ΡΡΡΠ»ΠΊΠΈ Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ β ΠΏΠΎ ΡΡΡΡΡ, ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡΠΌ ΠΌΠ°ΡΡΠ°, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅β¦ Go β ΡΡΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π±ΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΡΡ ΡΡΡΠ»ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ»Π΅Π΅ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ°ΡΡ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π½Π° ΡΡΡΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΡ π
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΎΡΡΠ°ΡΡΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ. ΠΠ°ΠΌ Π½ΡΠ°Π²ΡΡΡΡ Π½Π°ΡΠΈ ΡΡΠ°ΡΡΠΈ? Π₯ΠΎΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ²? ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΡΠ΅ Π½Π°Ρ, ΠΎΡΠΎΡΠΌΠΈΠ² Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π² Π·Π½Π°ΠΊΠΎΠΌΡΠΌ,
Dell R730xd Π² 2 ΡΠ°Π·Π° Π΄Π΅ΡΠ΅Π²Π»Π΅ Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ Equinix Tier IV Π² ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌΠ΅? Π’ΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com