ΠΠΈΡ Π°ΠΈΠ» Π‘Π°Π»ΠΎΡΠΈΠ½ (ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ β ΠΠ‘): β ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΡ Π°ΠΈΠ». Π Π°Π±ΠΎΡΡ ΠΊΠ°ΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° MC2 Software ΠΈ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ βΠ‘ΠΌΠΎΡΡΠΈ+β.

ΠΠΌΠ° Π»ΠΈ Π½ΡΠΊΠΎΠΉ ΠΎΡ ΠΏΡΠΈΡΡΡΡΠ²Π°ΡΠΈΡΠ΅, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΠΈΡΠ° Ρ
ΠΎΠΊΠ΅ΠΉ?

Π’ΠΎΠ³Π°Π²Π°, ΡΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π·Π° Π²Π°Ρ. Π’ΠΎ Π΅ Π·Π° Android ΠΈ iOS ΠΈ ΡΠ»ΡΠΆΠΈ Π·Π° Π³Π»Π΅Π΄Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΏΠΎΡΡΠ½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ Π½Π° ΠΆΠΈΠ²ΠΎ ΠΈ Π½Π° Π·Π°ΠΏΠΈΡ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½ΠΈΡ, ΡΠ°Π±Π»ΠΈΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, ΡΡΡΠ½ΠΈΡΠΈ ΠΈ Π΄ΡΡΠ³Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° ΡΠ΅Π½ΠΎΠ²Π΅ΡΠ΅.

Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌΠ° ΠΈ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ, Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π²Π°ΠΆΠ½ΠΈΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΌΠ°ΡΠΎΠ²Π΅ΡΠ΅ (Π³ΠΎΠ»ΠΈ, Π±ΠΎΠΉ, Π΄ΡΠ·ΠΏΠΈ ΠΈ Π΄Ρ.). ΠΠΊΠΎ Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³Π»Π΅Π΄Π°ΡΠ΅ ΡΡΠ»ΠΎΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ.
ΠΠ°ΠΊΠ²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°?
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Go. API-ΡΠΎ, Ρ ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Go. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π° Go Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ΅ΡΠ²ΠΈΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° push ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π½ΠΈ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ORM, Π·Π° ΠΊΠΎΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, Π½ΡΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ. Π Π½Π° Go ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΈ Π½ΡΠΊΠΎΠΈ ΠΌΠ°Π»ΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ: ΠΏΡΠΎΠΌΠ΅Π½ΡΠ½Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈΡΠ΅β¦
ΠΠ°ΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ PostgreSQL. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ Π·Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈΡΠ΅ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Ruby on Rails Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π³Π΅ΠΌ (gem) ActiveAdmin. ΠΠ° Ruby Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠΌΠΏΠΎΡΡΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° ΠΎΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°.
ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π½Π° API ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ unittest Π½Π° Python. Memcached ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ API, Chef ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°, Zabbix Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Graylog2 β Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅, Slate β Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° API Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ.

ΠΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ, Ρ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ ΠΌΠ΅: ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Ρ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, Π½Π° Π±Π°Π·Π° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈβ¦
- ΠΠ°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅: Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. Π’ΠΎΠ΅ΡΡ, Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠΈ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ.
- ΠΠ° ΡΠ»Π΅ΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ΅Ρ Π°, ΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅, Π½Π΅ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ, Π° ΡΠ΅ ΡΠΊΡΠΈΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅.
- Π Π°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π΄ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ (ΠΊΠ°ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΡΡΡΡΠ°Π²ΠΈ Π½Π° ΠΎΡΠ±ΠΎΡΠΈ, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΎΡΠ±ΠΎΡΠΈ) ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ GET Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ.
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·Π΄ΡΡΠΆΠΈ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ 100 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ simultanΠ½ΠΎ.
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΎΠ²Π°, ΠΈΠΌΠ°Ρ ΠΌΠ΅ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°:
- Websocket-ΠΈ. ΠΠΎ Π½Π΅ Π½ΠΈ Π±ΡΡ Π° Π½ΡΠΆΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ°. ΠΡΠΆΠ΄Π°Π΅Ρ ΠΌΠ΅ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΎΡ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΡΡΠ²ΡΡΠ° ΠΊΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅Π±ΡΠΎΠΊΠ΅ΡΡΡ Π±Π΅ΡΠ΅ ΠΈΠ·Π»ΠΈΡΠ΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ.
- Π‘ΡΠ±ΠΈΡΠΈΡ, ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈ ΠΎΡ ΡΡΡΠ²ΡΡΠ° (SSE), Π±ΡΡ Π° ΡΠΎΡΠ½ΠΎ ΠΏΠΎ ΠΌΡΡΠΊΠ°! Π’Π΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅Ρ ΠΌΠ΅.
Π‘ΡΠ±ΠΈΡΠΈΡ, ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈ ΠΎΡ ΡΡΡΠ²ΡΡΠ°
ΠΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°...
Π’Ρ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΡΡ Ρ http-ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. ΠΠ»ΠΈΠ΅Π½ΡΡΡ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅, Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ²ΡΡΡΡ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Ρ Content-Type: text/event-stream ΠΈ Π½Π΅ Π·Π°ΡΠ²Π°ΡΡ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π² Π½Π΅Ρ:

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

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

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

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

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

ΠΡΠΈ 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 ΠΈ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ.
ΠΠ‘: ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ·Π²Π΅ΡΡΠΈΠ΅ ΠΎΡ PostgreSQL, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°. ΠΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½ΡΠΆΠ½ΠΈΡ Π·Π°ΠΏΠΈΡ, Π° ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΎΠ²Π° ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½Π° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°? ΠΠΌΠ°ΠΌΠ΅ 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 Π±Π°ΠΉΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°. ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°, Π°ΠΊΠΎ ΡΡΠ°Π²Π°ΡΠ΅ Π²ΡΠΏΡΠΎΡ Π·Π° ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΌΠΈΡΠ»Ρ, ΡΠ΅ ΡΠ°ΠΊΠ° [ΠΊΠ°ΠΊΡΠΎ Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ] Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° ΡΠ° Π² ΡΠ°ΠΌΠΈΡ βPostgresβ.
Π: β ΠΠΎΠ»ΡΡΠ°Π²Π°Ρ Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΠΌΠ°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π³ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ?
ΠΠ‘: β ΠΡΡΡΠ½ΠΎΡΡ Π΄Π°. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°ΠΌ ΠΏΡΠΎΡΠΈΡΠ°Ρ 2-3 ΠΌΠ°ΡΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ, ΠΈ ΡΠΎ Π΄ΠΎΡΡΠ° ΡΡΠ΄ΠΊΠΎ. ΠΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π³Π»Π΅Π΄Π° Π½Π΅ΡΠΎ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π³Π»Π΅Π΄Π° ΠΌΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ Π΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠΌΠ° Π»ΠΎΠΊΠ°Π»Π½Π° Π±Π°Π·Π°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ Π΄ΠΎΡΠΈ Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²ΡΡΠ·ΠΊΠ°, ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π³Π»Π΅Π΄Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°ΡΠΎΠ²Π΅, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΡΡΠ½ΠΎΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π½Π° ΡΡΡΠ²Π΅ΡΠ° Ρ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΠΎΠΉ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΎΡΠ»Π°ΠΉΠ½.
Π: β ΠΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΡΠ΅ ΡΠ²ΠΎΡ ORM?
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ (Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° βΠ‘ΠΌΠΎΡΡΠΈ+β): β Π ΠΎΠ½Π·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ (ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°) ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ORM ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ° Π΄ΠΎΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ. ΠΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ORM Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ ΠΌΠΈ Ρ Π°ΡΠ΅ΡΠ²Π°, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡΡ Ρ ΠΏΡΠ°Π·Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ. Π’ΠΎΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π² ΡΠ΅Π·ΠΈ ORM, ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π²ΡΠΈΡΠΊΠΎ: ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΊΠ°Π·Π°ΡΠ΅Π» Π½Π° ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΈΡΠ»ΠΎ, Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌΠ°ΡΠ°...
ΠΠ°ΡΠΈΡΡ ORM Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ. Π Π·Π°ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ ΠΈ Ρ.Π½. Π’Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΎΡΠ°ΠΊΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π΄ΠΎΠΉΠ΄Π°Ρ.
Π: β ΠΠΎΠ»ΠΊΠΎ Π΄ΡΡΠΈ ΡΡΠ°ΡΡΠ²Π°Ρ Π°?
ΠΠ‘: β Π Π½Π°ΡΠ°Π»Π½ΠΈΡ Π΅ΡΠ°ΠΏ ΡΡΠ°ΡΡΠ²Π°Ρ Π° Π΄Π²Π°ΠΌΠ° Π΄ΡΡΠΈ. ΠΡΠΊΡΠ΄Π΅ ΠΏΡΠ΅Π· ΡΠ½ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅, ΠΏΡΠ΅Π· Π°Π²Π³ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ Π±Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²Π° (ΠΏΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ). ΠΡΠ΅Π· ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ ΠΈΠΌΠ°ΡΠ΅ ΡΠ΅Π»ΠΈΠ·.
Π: β Π’Π°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ SSE, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡ. ΠΠ°ΡΠΎ ΡΠ°ΠΊΠ°?
ΠΠ‘: β ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΠ΅ΡΡΠ½ΠΎ, 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
