ΠΠΈΡ Π°ΠΈΠ» Π‘Π°Π»ΠΎΡΠΈΠ½ (ΠΏΠΎ-Π΄Π°Π»Π΅Π΅ β ΠΠ‘): β ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΡ Π°ΠΈΠ». Π Π°Π±ΠΎΡΡ ΠΊΠ°ΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° 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 ΠΈ Π½Π΅ Π·Π°ΡΠ²Π°ΡΡ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π² Π½Π΅Ρ:

ΠΠ°Π½Π½ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π² ΡΠΎΡΠΌΠ°Ρ, Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ
ΠΌΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½: Π² ΠΏΠΎΠ»Π΅ΡΠΎ ΡΡΠ±ΠΈΡΠΈΠ΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° (ΡΠΎΠ²Π΅ΠΊ, ΠΈΠ³ΡΠ°Ρ), Π° Π² ΠΏΠΎΠ»Π΅ΡΠΎ Π΄Π°Π½Π½ΠΈ β JSON Ρ Π½ΠΎΠ²ΠΈΡΠ΅, ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π·Π° ΠΈΠ³ΡΠ°ΡΠ°.
Π‘Π΅Π³Π° Π·Π° ΡΠ°ΠΌΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
- ΠΡΡΠ²ΠΎ, ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠΎΠ³Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π» Ρ ΡΡΠ»ΡΠ³Π°ΡΠ°: ΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΡΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄Π°ΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π°, Π·Π°ΠΏΠΈΡΠ°Π½Π° Ρ Π½Π΅Π³ΠΎ.
- Π’ΠΎΠΉ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Ρ ΡΠ°Π·ΠΈ Π΄Π°ΡΠ°.
- Π ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΌΡ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ ΡΠ°Π·ΠΈ Π΄Π°ΡΠ°.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° Π²ΡΡΠ·ΠΊΠ° Ρ live ΠΊΠ°Π½Π°Π»Π° ΠΈ Π½Π΅ Ρ Π·Π°ΡΠ²Π°ΡΡ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΌΡ ΡΡΡΠ±Π²Π°Ρ ΡΠ΅Π·ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:

ΠΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΠΌΡ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅: Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΉ Π²ΠΊΠ°ΡΠ° Π³ΠΎΠ» β ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΌΠ°ΡΠ°, Π°ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈ ΡΡΠ°Π²ΠΌΠ° β ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π² Π»Π΅Π½ΡΠ°ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡΡΠ° ΠΎΡ ΠΌΠ°ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π°ΠΊΡΡΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅, ΡΠ΅ ΡΡΡΠ²ΡΡΡΡ Π½Π΅ Π΅ ΡΠΏΡΡΠ», ΡΠ΅ Ρ Π½Π΅Π³ΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ 15 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ timestamp β Π·Π° Π΄Π° Π·Π½Π°Π΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄ ΠΈ Π½Π΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ²Π°.
ΠΠ°ΠΊ ΡΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° live Π²ΡΡΠ·ΠΊΠ°ΡΠ°?
- ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠ°Π½Π°Π», Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ΄Π²Π°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ Π±ΡΡΠ΅Ρ.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠ°Π½Π°Π» Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- ΠΠ°ΡΡΡΠΎΠΉΠ²Π°ΠΌΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ Π·Π°Π³Π»Π°Π²ΠΈΠ΅, Π·Π° Π΄Π° Π·Π½Π°Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΎΠΊ.
- ΠΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΠΏΡΡΠ²ΠΈΡ ping. ΠΡΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π°ΠΊΡΡΠ°Π»Π½ΠΈΡ timestamp Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π² ΡΠΈΠΊΡΠ» ΡΠ΅ΡΠ΅ΠΌ ΠΎΡ ΠΊΠ°Π½Π°Π»Π°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΊΠ°Π½Π°Π»ΡΡ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½. Π ΠΊΠ°Π½Π°Π»Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΏΠΎΡΡΡΠΏΠ²Π°Ρ ΡΠ΅ΠΊΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.

ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ, Ρ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ
ΠΌΠ΅, Π±Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΡ: Π·Π° Π²ΡΡΠΊΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎ ΡΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΠ·Π΄Π°Π²Π°Ρ
ΠΌΠ΅ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠΈΠΊΡΠ°ΠΊΠ°ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ 15 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠΎΠ»ΡΡΠ°Π²Π° ΡΠ΅, ΡΠ΅ Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ
ΠΌΠ΅ 6000 ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π΅Π΄ΠΈΠ½ ΡΡΡΠ²ΡΡ (Ρ Π΅Π΄ΠΈΠ½ API-ΡΡΡΠ²ΡΡ), ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ
Π° 6000 ΡΠ°ΠΉΠΌΠ΅ΡΠ°. Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π½Π΅ Π±Π΅ΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½ Π·Π° Π½Π°Ρ, Π½ΠΎ ΡΠ»Π΅Π΄ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠΌΠΎΡ ΡΡΠΏΡΡ
ΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΠΌ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅Π³Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ping ΠΎΡ ΡΡΡΠΈΡ ΠΊΠ°Π½Π°Π», ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΠΈΠ΄Π²Π°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡΠ°.
Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠΈΠΊΡΠ°ΠΊΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ 15 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
Π’ΡΠΊ ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅, ping ΠΈ ΡΠ°ΠΌΠ°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ°. Π’ΠΎΠ΅ΡΡ ΡΡΠΊ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° (person, match, season) ΠΈ ΡΠ°ΠΌΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π·Π°ΠΏΠΈΡΠ°:

ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
Π‘Π΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅. ΠΠΌΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. Π’Π΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ±ΠΈΡΠΈΡ: Π½ΡΠΊΠΎΠΉ Π΅ Π±ΠΈΠ» ΠΈΠ·Π³ΠΎΠ½Π΅Π½, Π½ΡΠΊΠΎΠΉ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΊΠΎΠ½ΡΡΠ·ΠΈΡ, ΠΈΠΌΠ° ΡΠΌΡΠ½Π°β¦
Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° CMS Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² Π±Π°Π·Π°ΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π±Π°Π·Π°ΡΠ° Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Listen/Notify ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π° API-ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π·Π° ΡΠΎΠ²Π°. API-ΡΡΡΠ²ΡΡΠΈΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠ²ΡΡΠ° ΠΈ Π½ΡΠΌΠ°ΠΌΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ°, Π·Π°ΡΠΎΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ Π±Π°Π·Π°ΡΠ°:

PostgreSQL: Listen/Notify
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Listen/Notify Π² PostgreSQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π°Π½Π΅ Π½Π° Π°Π±ΠΎΠ½Π°ΡΠΈΡΠ΅ Π·Π° ΡΡΠ±ΠΈΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π΄Π΅Π½ Π·Π°ΠΏΠΈΡ Π² Π±Π°Π·Π°ΡΠ°. ΠΠ° ΡΠ΅Π»ΡΠ° Π½Π°ΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΡΠΎΡΡ ΡΡΠΈΠ³Π΅Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ:

ΠΡΠΈ insert ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΏΠΈΡΠ°, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° notify Π½Π° ΠΊΠ°Π½Π°Π»Π° data_updates, ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ°, ΠΊΠΎΠΉΡΠΎ Π΅ Π±ΠΈΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½.
ΠΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ ΡΡΠΈΠ³Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΏΠΈΡΠ° ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΡΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠ»Π°ΠΉΠ΄Π° ΠΎΡΠ΄ΠΎΠ»Ρ.
ΠΠ°ΠΊ API ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ° Π·Π° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ?
Π‘ΡΠ·Π΄Π°Π²Π° ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Fanout β ΡΠΎΠΉ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅. Π’ΠΎΠΉ ΡΡΠ±ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΠΊΠ°Π½Π°Π»ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΈ ΡΠ°Π·ΠΏΡΠ°ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎ ΡΠ΅Π·ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ:

Π’ΡΠΊ Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° pq, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ Π±Π°Π·Π°ΡΠ° ΠΈ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΈΡΠΊΠ° Π΄Π° ΡΠ»ΡΡΠ° ΠΊΠ°Π½Π°Π»Π° (data_updates), ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°, ΡΠ΅ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄. ΠΡΠΎΠΏΡΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ, Π·Π° Π΄Π° ΡΠΏΠ΅ΡΡΡ ΠΌΡΡΡΠΎ (ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΅ ΡΠΈΡΠΊΠΎΠ²ΠΎ).
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Ticker, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ping Π½Π° Π²ΡΠ΅ΠΊΠΈ 15 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ»ΡΡΠ°ΠΌΠ΅ ΠΊΠ°Π½Π°Π»Π°, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠΌΠ΅ ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ°Π»ΠΈ. ΠΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ping, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ping. ΠΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½ΡΠΊΠ°ΠΊΡΠ² Π·Π°ΠΏΠΈΡ, ΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π°Π±ΠΎΠ½Π°ΡΠΈ Π½Π° ΡΠΎΠ·ΠΈ Fanout.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Fan-out?
ΠΠ° Π±ΡΠ»Π³Π°ΡΡΠΊΠΈ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ βΡΠ°Π·ΠΊΠ»ΠΎΠ½ΠΈΡΠ΅Π»β. ΠΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° Π°Π±ΠΎΠ½Π°ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π²Π΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ Π΄ΠΎΠΉΠ΄Π΅, ΡΠΎΠΉ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΡΠ°Π·ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΠΎΠΈ Π°Π±ΠΎΠ½Π°ΡΠΈ. ΠΠΎΡΡΠ° Π΅ ΠΏΡΠΎΡΡΠΎ:

ΠΠ°ΠΊ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π½Π° Go:

ΠΠΌΠ° ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Mutex. ΠΠΌΠ° ΠΏΠΎΠ»Π΅, ΠΊΠΎΠ΅ΡΠΎ Π·Π°ΠΏΠ°Π·Π²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π½Π° Fanout Ρ Π±Π°Π·Π°ΡΠ°, Ρ.Π΅. Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠΉ ΡΠ»ΡΡΠ° ΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΡΡΠΎ ΠΈ ΡΠΏΠΈΡΡΠΊ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ β map, ΡΠΈΠΉΡΠΎ ΠΊΠ»ΡΡ Π΅ ΠΊΠ°Π½Π°Π»ΡΡ ΠΈ struct ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΡΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°).
ΠΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° β Connected ΠΈ Disconnected β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° Fanout Π΄Π° Π·Π½Π°Π΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΡΠ·ΠΊΠ° Ρ Π±Π°Π·Π°ΡΠ°, ΡΡ ΡΠ΅ Π΅ ΠΏΠΎΡΠ²ΠΈΠ»Π° ΠΈ ΡΠ΅ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ Π±Π°Π·Π°ΡΠ° Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ°. ΠΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΈ Π΄Π° ΠΈΠΌ ΡΡΠΎΠ±ΡΠΈΠΌ, ΡΠ΅ Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ»ΡΡΠ°Ρ Π½ΠΈΡΠΎ ΠΈ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΡΡΠ΅Π΄ΠΈΠ½ΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ ΡΡΡ Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π°.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄ Subscribe, ΠΊΠΎΠΉΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΠ°Π½Π°Π» Π² βΡΠ»ΡΡΠ°ΡΠ΅Π»ΠΈΡΠ΅β:

ΠΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄ Unsubscribe, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΠΊΠ°Π½Π°Π»Π° ΠΎΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»ΠΈΡΠ΅, Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΡΠ΅ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΠ», Π° ΡΡΡΠΎ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Publish, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π°Π±ΠΎΠ½Π°ΡΠΈ.
ΠΡΠΏΡΠΎΡ: β ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΏΠΎ ΡΠΎΠ·ΠΈ ΠΊΠ°Π½Π°Π»?
ΠΠ‘: β ΠΡΠ΅Π΄Π°Π²Π° ΡΠ΅ ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ ΠΈΠ»ΠΈ ping (ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ, integer).
ΠΠ‘: β ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅, Π²ΡΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ° β ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² JSON ΠΈ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ.
ΠΠ‘: β ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ "Postgres" β Π² Π½Π΅Π³ΠΎ Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ. ΠΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π·Π°ΠΏΠΈΡ, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΎΠ²Π° ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°? ΠΠΌΠ°ΠΌΠ΅ 7 ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡΠ°: Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π·Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π° Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ. ΠΠΌΠ° 6 ΠΊΠΎΠΏΠΈΡ Π½Π° API: Π²ΡΡΠΊΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Ρ API ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡ β Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ.

ΠΠΌΠ°ΠΌΠ΅ Π΄Π²Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, Π½Π° ΠΊΠΎΠΈΡΠΎ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Keepalived Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅Π΄ΠΈΠ½ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π΄Π° Π·Π°ΠΌΠ΅ΡΡΠΈ Π΄ΡΡΠ³. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° β Π΄Π²Π΅ ΠΊΠΎΠΏΠΈΡ Π½Π° CMS.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ΅Ρ Π·Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°. ΠΠΌΠ° DB Slave, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΡΡ Π°ΡΡ ΠΈΠ²ΠΈ. ΠΠΌΠ° Pigeon Pusher β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π·ΠΏΡΠ°ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ Π½Π΅ΡΠ°: Zabbix, Graylog2 ΠΈ Chef.
ΠΡΡΡΠ½ΠΎΡΡ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π΅ ΠΈΠ·Π»ΠΈΡΠ½Π°, Π·Π°ΡΠΎΡΠΎ 100 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Ρ ΠΈ Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ²ΡΡΠΈ. ΠΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ β ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ (ΠΊΠ°Π·Π°Ρ Π° Π½ΠΈ, ΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ β Π·Π°ΡΠΎ Π½Π΅).
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Go
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡ ΠΌΠ΅ Π½Π°Π΄ ΡΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Go.
- Π‘ΡΡΠ°Ρ ΠΎΡΠ½Π° HTTP Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. Π‘ Π½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π΄ΠΎΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ "ΠΎΡ ΠΊΡΡΠΈΡΡΠ°".
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ½ΠΎ.
- Π‘ΡΡΠ°Ρ ΠΎΡΠ½ΠΈΡΡ Race detector Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π΄Π° ΠΎΡΡΡΡΠ°Π½ΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π±ΡΠ³Π° (ΡΡΠ΅ΠΉΠ΄ΠΆΠΈΠ½Π³ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°). ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΡΡΠ΅ΠΉΠ΄ΠΆΠΈΠ½Π³, Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ Ρ ΠΊΠ»ΡΡΠ° Race; ΠΈ Π½ΠΈΠ΅, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΡΡΠ΅ΠΉΠ΄ΠΆΠΈΠ½Π³ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠΌΠ°ΠΌΠ΅.
- ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΡΠΌ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ°.

Π’ΡΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ! ΠΠΊΠΎ Π½ΡΠΊΠΎΠΉ Π΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ β ΠΌΠΎΠ»Ρ.
ΠΡΠΏΡΠΎΡΠΈ
ΠΡΠΏΡΠΎΡ ΠΎΡ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡΡΠ° (Π½Π°ΡΠΈΡΠ°Π½ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ Π): β ΠΠΈΡΠ»Ρ, ΡΠ΅ ΠΏΡΠΎΠΏΡΡΠ½Π°Ρ ΡΠ΅ Π΅Π΄ΠΈΠ½ Π²Π°ΠΆΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Fan-out. ΠΡΠ°Π²ΠΈΠ»Π½ΠΎ Π»ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π²ΠΈΠ΅ ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅, Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π½Π΅ ΠΆΠ΅Π»Π°Π΅ Π΄Π° ΡΠ΅ΡΠ΅?
ΠΠ‘: β ΠΠ΅, Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°ΠΌΠ΅. ΠΡΡΠ²ΠΎ, Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ Π·Π°Π΄ nginx, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±Π°Π²Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. ΠΡΠΎΡΠΎ, ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΈΠΌΠ° ΠΊΠ°Π½Π°Π» Ρ ΠΊΠ΅Ρ, ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π΄ΠΎ ΡΡΠΎ ΡΠΏΠ΄Π΅ΠΉΡΠ°... ΠΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² ΠΊΠ°Π½Π°Π»Π°, ΡΠΎΠΉ Π³ΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°. ΠΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ ΠΊΠ°Π½Π°Π»ΡΡ ΡΠ΅ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π», ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΡΠ²ΠΎΡΠΈΠΌ ΠΊΠ°Π½Π°Π»Π° ΠΈ Π²ΡΠΈΡΠΊΠΎ β ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π½Π°ΡΠ΅Π΄ΠΈ, Π°ΠΊΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ°ΡΠΎΠ²Π° ΡΡΠΊ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π΅ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.
Π: β ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π² Listen/Notify Π·Π°ΠΏΠΈΡΠ°, Π° Π½Π΅ ΡΠ°Π±Π»ΠΈΡΠ°-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ?
ΠΠ‘: β Listen/Notify ΠΈΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 8000 Π±Π°ΠΉΡΠ° Π½Π° preload, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°. ΠΡΡΡΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈ, Π°ΠΊΠΎ ΡΡΠ°Π²Π°ΡΠ΅ Π²ΡΠΏΡΠΎΡ Π·Π° ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΌΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°, ΡΠ΅ ΠΏΠΎ Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ, Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° ΡΠ° Π² ΡΠ°ΠΌΠΈΡ βPostgresβ.
Π: β ΠΠΎΠ»ΡΡΠ°Π²Π°Ρ Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΠΏΠ΄Π΅ΠΉΡΠΈ Π·Π° ΠΌΠ°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π³ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ?
ΠΠ‘: β ΠΡΡΡΠ½ΠΎΡΡ Π΄Π°. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°ΠΌ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Ρ 2-3 ΠΌΠ°ΡΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈ ΡΠΎ Π΄ΠΎΡΡΠ° ΡΡΠ΄ΠΊΠΎ. ΠΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π³Π»Π΅Π΄Π° Π½Π΅ΡΠΎ, ΡΠΎΠΉ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΠΈ ΠΌΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ΅. ΠΠΎΡΠ»Π΅, Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠΌΠ° Π»ΠΎΠΊΠ°Π»Π½Π° Π±Π°Π·Π°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΠΏΠ΄Π΅ΠΉΡΠΈ, ΠΈ Π΄ΠΎΡΠΈ Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²ΡΡΠ·ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΌΠΈΠ½Π°Π»ΠΈ ΠΌΠ°ΡΠΎΠ²Π΅, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΠΏΠ΄Π΅ΠΉΡΠΈ. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π½Π° ΡΡΡΠ²Π΅ΡΠ° Ρ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΠΎΠΉ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΎΡΠ»Π°ΠΉΠ½.
Π: β ΠΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΡΠ΅ ΡΠ²ΠΎΡ ORM?
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ (Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° βΠ‘ΠΌΠΎΡΡΠΈ+β): β Π ΠΎΠ½Π·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ (ΠΏΡΠ΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°) ORM-ΠΈΡΠ΅ Π±ΡΡ Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ°. ΠΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ORM-ΠΈ, Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΈ Ρ Π°ΡΠ΅ΡΠ²Π°, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡΡ Ρ ΠΏΡΠ°Π·Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ. Π’ΠΎΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π² ΡΠ΅Π·ΠΈ ORM-ΠΈ ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π²ΡΠΈΡΠΊΠΎ: ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΊΠ°Π·Π°ΡΠ΅Π» Π·Π° ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΈΡΠ»ΠΎ, Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ°...
ΠΠ°ΡΠΈΡΡ ORM Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅. Π‘Π°ΠΌ. Π Π·Π°ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ ΠΈ Ρ.Π½. Π’Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΎΡΠ°ΠΊΠ²Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠΎΡΠ½ΠΎ ΡΠ΅Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ.
Π: β ΠΠΎΠ»ΠΊΠΎ Π΄ΡΡΠΈ ΡΡΠ°ΡΡΠ²Π°Ρ Π°?
ΠΠ‘: β Π Π½Π°ΡΠ°Π»Π½ΠΈΡ Π΅ΡΠ°ΠΏ ΡΡΠ°ΡΡΠ²Π°Ρ Π° Π΄Π²Π°ΠΌΠ° Π΄ΡΡΠΈ. ΠΡΠΊΡΠ΄Π΅ ΠΏΡΠ΅Π· ΡΠ½ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅, ΠΏΡΠ΅Π· Π°Π²Π³ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ Π±Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²Π° (ΠΏΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ). ΠΡΠ΅Π· ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ Π±Π΅ΡΠ΅ ΡΠ΅Π»ΠΈΠ·ΡΡ.
Π: β Π’Π°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ SSE, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ timeout. ΠΠ°ΡΠΎ ΡΠ°ΠΊΠ°?
ΠΠ‘: β ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΡΠΊΡΠΎΠ²Π΅Π½ΠΎ, SSE Π²ΡΡΡΠ½ΠΎΡΡ Π΅ html5-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»: ΡΡΠ°Π½Π΄Π°ΡΡΡΡ SSE Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΈΡΠ΅, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ. ΠΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΠΎΡΠ½ΠΎΠ²ΠΎ (ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊ), Π½ΠΎ ΡΠ΅ Π½Π΅ Π½ΠΈ ΡΡΡΠ±Π²Π°Ρ, Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ°Ρ
ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅Ρ
Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π²ΡΡΠΊΠ° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΏΡΠΈΠ»ΠΈΡΠ°ΡΠΎ Π½Π° SSE, Π½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ».
ΠΡΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π°. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ
Π° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡ Π½ΡΠ»Π°ΡΠ°. ΠΠ° ΡΡΡ
Π±Π΅ΡΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π±Π΅Π· ΡΠ°Π·Π»ΠΈΠΊΠ°.
Π: β ΠΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅?
ΠΠ‘: β ΠΠ°ΠΉ-Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ govet ΠΈ golint, Π·Π° Π΄Π° Π΅ ΡΡΠΈΠ»ΡΡ Π΅Π΄ΠΈΠ½Π΅Π½, Π° ΡΡΡΠΎ ΠΈ gofmt. ΠΡΡΠ³Π° Π½ΠΈΡΠΎ Π½Π΅ ΡΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ.
Π: β Π‘ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠ°?
ΠΠ‘: β ΠΡΠ»Π°Π΄ΠΊΠ°ΡΠ° ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π²Π°ΡΠ΅ ΡΡΠ΅Π· ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΠΈΠΊΠ°ΠΊΡΠ² Π΄Π΅Π±ΡΠ³Π΅Ρ, GOP Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅.
Π: β ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΠ»Π°ΠΉΠ΄Π°, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Publish? ΠΠ΅ Π²ΠΈ Π»ΠΈ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°Ρ Π΅Π΄Π½ΠΎΠΏΠΈΡΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅?
ΠΠ‘: β ΠΠ΅. Π’Π΅Ρ Π½ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ ΡΠ° Π΄ΠΎΡΡΠ° "ΡΠ΅ΡΠ½ΠΈ". Π’Π΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΠΈΠΊΡΠ΄Π΅, ΠΎΡΠ²Π΅Π½ ΡΡΠΊ (ΠΎΡΠ²Π΅Π½ Π²ΡΡΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΠΊΠ»Π°Ρ), ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ β Π·Π°Π΅ΠΌΠ° ΡΠ°ΠΌΠΎ 7 ΡΠ΅Π΄Π°.
Π: β ΠΠ΅ΡΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π½Π΅ Π΅ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎβ¦
ΠΠ‘: β ΠΠ΅-Π½Π΅, ΡΠΎΠ²Π° Π΅ ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΠΊΠΎΠ΄! ΠΠ΅ Π΅ Π²ΡΠΏΡΠΎΡ Π½Π° ΡΡΠΈΠ». ΠΡΠΎΡΡΠΎ ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΊΡΠ² ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ΅Π½, ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΡΠΊ ΠΊΠ»Π°Ρ β ΡΠ°ΠΌΠΎ 3 ΠΏΠΎΠ»Π΅ΡΠ° Π²ΡΡΡΠ΅ Π² ΠΊΠ»Π°ΡΠ°...

ΠΠ‘: β ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ (ΡΠ΅Π·ΠΎΠ½Π½ΠΈ ΠΌΠ°ΡΠΎΠ²Π΅, ΠΈΠ³ΡΠ°ΡΠΈ), Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ. ΠΡΡΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π°ΠΊΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄ ΡΠΏΠΎΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΌΠ°ΡΠ°, ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΡΠΈΡΠΊΠΎ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΡΡΠ°ΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ΅ Π±ΡΠ΄Π°Ρ Π·Π°Π±ΡΠ°Π½Π΅Π½ΠΈ.
Π: β ΠΠΌΠ° Π»ΠΈ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ Π²ΡΠ½ΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ?
ΠΠ‘: β ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ go dep.
Π: β Π ΡΠ΅ΠΌΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½Π΅ΡΠΎ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ, Π° Π² Π΄ΠΎΠΊΠ»Π°Π΄Π° Π·Π° Π²ΠΈΠ΄Π΅ΠΎ Π½ΡΠΌΠ°.
ΠΠ‘: β ΠΠ΅, Π² ΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ Π½ΡΠΌΠ° Π½ΠΈΡΠΎ. ΠΠ°ΠΌΠΈΡΠ° ΡΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ "Π‘ΠΌΠΎΡΠΈ+" β ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
Π: β ΠΠ°Π·Π°Ρ ΡΠ΅, ΡΠ΅ ΡΠ΅ ΡΡΡΠΈΠΉΠΌΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅?..
ΠΠ‘: β Π‘ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ ΠΌΠ΅. Π’ΠΎΠ²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΎ ΠΏΡΠ°Π²Π΅ΡΠ΅ "ΠΠ΅Π³Π°ΡΠΎΠ½". ΠΠ°, Π½Π΅ ΠΊΠ°Π·Π°Ρ , ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΌΠ΅Π³Π°ΡΠΎΠ½ΠΎΠ²ΡΠΊΠΎ.
ΠΠ‘: β Go β Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ β ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠΌΠ΅ΡΠΊΠ°ΡΠ°, ΡΡΠ±ΠΈΡΠΈΡΡΠ° Π½Π° ΠΌΠ°ΡΠ°, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ°β¦ Go β ΡΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ»ΠΈΠ΅Π½ΡΡΡ ΠΎΡΠ½ΡΠΊΡΠ΄Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΡΠΈ ΠΊΠ°ΠΊΠ²Π° Π²ΡΡΠ·ΠΊΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠ»Π΅ΡΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π΄Π° Π³Π»Π΅Π΄Π° ΠΌΠ°ΡΠ°. ΠΠΈΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ Π²ΠΈΠ΄Π΅Π° ΠΈ ΡΡΡΠΈΠΉΠΌΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ.

ΠΠ°Π»ΠΊΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ° π
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ, ΡΠ΅ ΠΎΡΡΠ°Π²Π°ΡΠ΅ Ρ Π½Π°Ρ. Π₯Π°ΡΠ΅ΡΠ²Π°ΡΠ΅ Π»ΠΈ Π½Π°ΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ? ΠΡΠΊΠ°ΡΠ΅ Π»ΠΈ Π΄Π° Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ? ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅ Π½ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ·Π½Π°ΡΠΈ, , ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° entry-level ΡΡΡΠ²ΡΡΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Π½Π°Ρ Π·Π° Π²Π°Ρ: (Ρ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ΡΠ΄ΡΠ° ΠΈ Π΄ΠΎ 40GB DDR4).
Dell R730xd Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ΅Π½Π° Π² Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡΠ° Equinix Tier IV Π² ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌ? ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ Π½Π°Ρ Π² ΠΠΈΠ΄Π΅ΡΠ»Π°Π½Π΄ΠΈΡ! Dell R420 β 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β ΠΎΡ 99 $! Π§Π΅ΡΠ΅ ΡΠ΅ Π·Π° ΡΠΎΠ²Π°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
