ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

ΠœΠΈΡ…Π°ΠΈΠ» Балосин (ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ – МБ): – Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ Π½Π° всички! Казвам сС ΠœΠΈΡ…Π°ΠΈΠ». Работя ΠΊΠ°Ρ‚ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² компанията MC2 Software ΠΈ Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+”.

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Има Π»ΠΈ някой ΠΎΡ‚ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ΠΈΡ‚Π΅, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π° Ρ…ΠΎΠΊΠ΅ΠΉ?

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π’ΠΎΠ³Π°Π²Π°, Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π·Π° вас. Π’ΠΎ Π΅ Π·Π° Android ΠΈ iOS ΠΈ слуТи Π·Π° Π³Π»Π΅Π΄Π°Π½Π΅ Π½Π° прСдавания Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ спортни ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π½Π° ΠΆΠΈΠ²ΠΎ ΠΈ Π½Π° запис. ОсвСн Ρ‚ΠΎΠ²Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° статистика, тСкстови прСдавания, Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π·Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, Ρ‚ΡƒΡ€Π½ΠΈΡ€ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³Π° информация, ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° Ρ„Π΅Π½ΠΎΠ²Π΅Ρ‚Π΅.

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° ΠΈ Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ ΠΌΠ°Ρ‡ΠΎΠ²Π΅Ρ‚Π΅ (Π³ΠΎΠ»ΠΈ, Π±ΠΎΠΉ, Π΄ΡƒΠ·ΠΏΠΈ ΠΈ Π΄Ρ€.). Ако Π½Π΅ искатС Π΄Π° Π³Π»Π΅Π΄Π°Ρ‚Π΅ цялото ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ само Π½Π°ΠΉ-интСрСсното.

Какво ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°?

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° част Π΅ написана Π½Π° Go. API-Ρ‚ΠΎ, с ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π°Ρ‚ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Π΅ написано Π½Π° Go. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π° Go Π΅ написан сСрвис Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° push увСдомлСния Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ устройства. ОсвСн Ρ‚ΠΎΠ²Π° Π½ΠΈ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° напишСм собствСно ORM, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, някога Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ. И Π½Π° Go са написани ΠΈ някои ΠΌΠ°Π»ΠΊΠΈ услуги: промСнянС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° изобраТСния Π·Π° рСдакторитС…

ΠšΠ°Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ PostgreSQL. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π·Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚Π΅ Π΅ написан Π½Π° Ruby on Rails с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π³Π΅ΠΌ (gem) ActiveAdmin. На Ruby Π΅ написан ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΡŠΡ‚ Π½Π° статистиката ΠΎΡ‚ доставчика Π½Π° статистика.

Π—Π° систСмни тСстовС Π½Π° API ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ unittest Π½Π° Python. Memcached сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ API, Chef сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° конфигурацията, Zabbix Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° статистика Π½Π° систСмата. Graylog2 – Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅, Slate – докумСнтация Π½Π° API Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π˜Π·Π±ΠΎΡ€ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚, с ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅: Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° взаимодСйствиС Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° с ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Π½Π° Π±Π°Π·Π° Π½Π° слСднитС точки…

  • Най-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ изискванС: Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ трябва Π΄Π° сС обновяват Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ВоСст, всички, ΠΊΠΎΠΈΡ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ, трябва Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ.
  • Π—Π° улСснСниС ΠΏΡ€ΠΈΠ΅Ρ…Π°, Ρ‡Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ сС синхронизират с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π½Π΅ сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚, Π° сС скриват с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° спСциални Ρ„Π»Π°Π³ΠΎΠ²Π΅.
  • Π Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π΄ΠΊΠΈ запитвания (ΠΊΠ°Ρ‚ΠΎ статистика, ΡΡŠΡΡ‚Π°Π²ΠΈ Π½Π° ΠΎΡ‚Π±ΠΎΡ€ΠΈ, статистика Π½Π° ΠΎΡ‚Π±ΠΎΡ€ΠΈ) сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ с ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ GET запитвания.
  • ОсвСн Ρ‚ΠΎΠ²Π°, систСмата Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΈΠ·Π΄ΡŠΡ€ΠΆΠΈ спокойно 100 хиляди ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ simultanΠ½ΠΎ.

Π’ΡŠΠ· основа Π½Π° Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ°Ρ…ΠΌΠ΅ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°:

  1. Websocket-ΠΈ. Но Π½Π΅ Π½ΠΈ бяха Π½ΡƒΠΆΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° към ΡΡŠΡ€Π²ΡŠΡ€Π°. НуТдаСхмС сС само ΠΎΡ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° обновлСния ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π° към ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΡƒΠ΅Π±ΡΠΎΠΊΠ΅Ρ‚ΡŠΡ‚ бСшС излишСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.
  2. Π‘ΡŠΠ±ΠΈΡ‚ΠΈΡ, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈ ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π° (SSE), бяха Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎ мярка! Π’Π΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ прости ΠΈ удовлСтворяват всичко, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ…ΠΌΠ΅.

Π‘ΡŠΠ±ΠΈΡ‚ΠΈΡ, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈ ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π°

Няколко Π΄ΡƒΠΌΠΈ Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Ρ‚Π°Π·ΠΈ систСма...

Вя Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ€Ρ…Ρƒ http-ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ отговаря с Content-Type: text/event-stream ΠΈ Π½Π΅ затваря Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° записва Π΄Π°Π½Π½ΠΈ Π² нСя:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π”Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΡƒΠ³ΠΎΠ²ΠΎΡ€Π΅Π½ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅. Π’ нашия случай ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ…ΠΌΠ΅ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½: Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ event ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ…ΠΌΠ΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π°Ρ‚Π° структура (Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΈΠ³Ρ€Π°Ρ‡), Π° Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ data – JSON с Π½ΠΎΠ²ΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° ΠΈΠ³Ρ€Π°Ρ‡Π°.

Π‘Π΅Π³Π° Π·Π° Π½Π°Ρ‡ΠΈΠ½Π° Π½Π° взаимодСйствиС.

  • ΠŸΡŠΡ€Π²ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ опрСдСля ΠΊΠΎΠ³Π° Π·Π° послСдСн ΠΏΡŠΡ‚ Π΅ Π±ΠΈΠ»Π° Π½Π°ΠΏΡ€Π°Π²Π΅Π½Π° синхронизация със сСрвиза: Ρ‚ΠΎΠΉ Π³Π»Π΅Π΄Π° Π² своята Π»ΠΎΠΊΠ°Π»Π½Π° Π‘Π” ΠΈ установява Π΄Π°Ρ‚Π°Ρ‚Π° Π½Π° послСдната промяна, записана ΠΏΡ€ΠΈ Π½Π΅Π³ΠΎ.
  • Π’ΠΎΠΉ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ с Ρ‚Π°Π·ΠΈ Π΄Π°Ρ‚Π°.
  • Π’ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½ΠΈΠ΅ ΠΌΡƒ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ всички обновлСния, ΠΊΠΎΠΈΡ‚ΠΎ са сС случили слСд Ρ‚Π°Π·ΠΈ Π΄Π°Ρ‚Π°.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠΉ създава Π²Ρ€ΡŠΠ·ΠΊΠ° с live-ΠΊΠ°Π½Π°Π»Π° ΠΈ Π½Π΅ я затваря, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½ΡƒΠΆΠ΄Π°Π΅ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ обновлСния:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π˜Π·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ ΠΌΡƒ списък с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅: Π°ΠΊΠΎ някой Π΅ отбСлязал Π³ΠΎΠ» – промСнямС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΌΠ°Ρ‡Π°, Π°ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ контузия – ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, Π² ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΎΡ‚ ΠΌΠ°Ρ‡Π°, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚, Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ Π΅ умрял ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π½Π° всСки 15 сСкунди timestamp – Π·Π° Π΄Π° Π·Π½Π°Π΅, Ρ‡Π΅ всичко Π΅ Π½Π°Ρ€Π΅Π΄ ΠΈ Π½Π΅ трябва Π΄Π° сС прСнасочва.

Как сС обслуТва live-ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ?

  • На ΠΏΡŠΡ€Π²ΠΎ място създавамС ΠΊΠ°Π½Π°Π», Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ обновлСния с Π±ΡƒΡ„Π΅Ρ€.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π°Π±ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ°Π½Π°Π» Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° обновлСния.
  • УстановявамС правилния Π·Π°Π³Π»Π°Π²ΠΈΠ΅, Π·Π° Π΄Π° Π·Π½Π°Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚, Ρ‡Π΅ всичко Π΅ Π½Π°Ρ€Π΅Π΄.
  • Π˜Π·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ ΠΏΡŠΡ€Π²ΠΈΡ ping. ΠŸΡ€ΠΎΡΡ‚ΠΎ записвамС тСкущия timestamp Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π² Ρ†ΠΈΠΊΡŠΠ» Ρ‡Π΅Ρ‚Π΅ΠΌ ΠΎΡ‚ ΠΊΠ°Π½Π°Π»Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Π½Π°Π»ΡŠΡ‚ Π·Π° обновлСния Π½Π΅ бъдС Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½. Π’ ΠΊΠ°Π½Π°Π»Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΠΈΠ΄Π²Π° ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ timestamp, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ записвамС Π² ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈΡ‚Π΅ съСдинСния.

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚, с ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅, бСшС слСдният: Π·Π° всяко ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ съСдинСниС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ…ΠΌΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΠΈΠΊΡ‚Π°ΡˆΠ΅ Π½Π° всСки 15 сСкунди – ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° сС, Ρ‡Π΅ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ 6000 ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ съСдинСния с Π΅Π΄Π½Π° машина (с Π΅Π΄ΠΈΠ½ API ΡΡŠΡ€Π²ΡŠΡ€), сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ 6000 Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π’ΠΎΠ²Π° водСшС Π΄ΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π½Π΅ бСшС Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ Π·Π° нас, Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° ΠΈ Π³ΠΎ отстранихмС.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ сСга ping ΠΈΠ΄Π²Π° ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ ΠΊΠ°Π½Π°Π», ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ΄Π²Π° update.

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ само Π΅Π΄ΠΈΠ½ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΠΈΠΊΡ‚Π° Π½Π° всСки 15 сСкунди.

Π’ΡƒΠΊ ΠΈΠΌΠ° няколко ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°, ping ΠΈ самата структура. ВоСст Ρ‚ΡƒΠΊ сС ΠΏΡ€Π΅Π΄Π°Π²Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° (person, match, season) ΠΈ сама информация Π·Π° Ρ‚ΠΎΠ·ΠΈ запис:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° обновлСния

Π‘Π΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ Π·Π° Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅. ИмамС няколко Π΄ΡƒΡˆΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ слСдят ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ. Π’Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ всички ΡΡŠΠ±ΠΈΡ‚ΠΈΡ: някого са ΠΈΠ·Π²Π°Π΄ΠΈΠ»ΠΈ, някой Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ‚Ρ€Π°Π²ΠΌΠ°, някаква смяна…

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° CMS Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ Π² Π±Π°Π·Π°Ρ‚Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π±Π°Π·Π°Ρ‚Π° с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Listen/Notify увСдомява Π·Π° Ρ‚ΠΎΠ²Π° API ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅. API ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π²Π΅Ρ‡Π΅ Ρ€Π°Π·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Ρ‚Π°Π·ΠΈ информация Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅. Π’Π°ΠΊΠ° ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ към Π±Π°Π·Π°Ρ‚Π° са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ само няколко ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° особСно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½ Π½Π΅ взаимодСйстват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с Π±Π°Π·Π°Ρ‚Π°:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

PostgreSQL: Listen/Notify

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Listen/Notify Π² β€žPostgresβ€œ позволява Π΄Π° увСдомява подписницитС Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ относно Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π΅ Π½Π°ΡΡ‚ΡŠΠΏΠΈΠ»Π° промяна Π² някоС ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ – създадСна Π΅ някаква запись Π² Π±Π°Π·Π°Ρ‚Π°. Π—Π° Ρ‚ΠΎΠ²Π° написахмС прост Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ ΠΈ функция:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

ΠŸΡ€ΠΈ insert ΠΈΠ»ΠΈ промяна Π½Π° запись ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ функция notify Π½Π° ΠΊΠ°Π½Π°Π»Π° data_updates, ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ Ρ‚Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° записа, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π±ΠΈΠ» ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½.

Π—Π° всички Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ синхронизирани с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, опрСдСлямС Ρ‚Ρ€ΠΈΠ³Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ слСд промяна/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° записа ΠΈΠ·Π²ΠΈΠΊΠ²Π° функцията, посочСна Π½Π° слайда Π΄ΠΎΠ»Ρƒ.
Как API сС Π°Π±ΠΎΠ½ΠΈΡ€Π° Π·Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ?

Бъздава сС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Fanout – Ρ‚ΠΎΠΉ Ρ€Π°Π·ΠΏΡ€Π°Ρ‰Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅. Π‘ΡŠΠ±ΠΈΡ€Π° всички ΠΊΠ°Π½Π°Π»ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈ Ρ€Π°Π·ΠΏΡ€Π°Ρ‰Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠΎ Ρ‚Π΅Π·ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π’ΡƒΠΊ Π΅ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° pq, която сС ΡΠ²ΡŠΡ€Π·Π²Π° с Π±Π°Π·Π°Ρ‚Π° ΠΈ ΡƒΠΊΠ°Π·Π²Π°, Ρ‡Π΅ иска Π΄Π° ΡΠ»ΡƒΡˆΠ° ΠΊΠ°Π½Π°Π»Π° (data_updates), провСрява, Ρ‡Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄. ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π·Π° Π΄Π° спСстя място (Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π΅ рисковано).

ΠΠ°Ρ‚Π°Ρ‚ΡŠΠΊ асинхронно Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Ticker, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ping Π½Π° всСки 15 сСкунди ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° ΡΠ»ΡƒΡˆΠ°ΠΌΠ΅ ΠΊΠ°Π½Π°Π»Π°, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ смС сС Π°Π±ΠΎΠ½ΠΈΡ€Π°Π»ΠΈ. Ако ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ping, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ping. Ако ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ някаква запис, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ запис Π½Π° всички Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ Π½Π° Ρ‚ΠΎΠ·ΠΈ Fanout.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ Fan-out?

На Π±ΡŠΠ»Π³Π°Ρ€ΡΠΊΠΈ Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ Β«Ρ€Π°Π·ΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅Π»Β». ИмамС Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ рСгистрира Π°Π±ΠΎΠ½Π°Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ТСлаят Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ някакви Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. И Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΊΠ°Ρ‚ΠΎ актуализацията Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ Π΄ΠΎΠΉΠ΄Π΅, Ρ‚ΠΎΠΉ разпространява Ρ‚Π°Π·ΠΈ актуализация Π½Π° всички свои Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ. Доста Π΅ просто:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Как Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π½Π° Go:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Има структура, която сС синхронизира с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Mutex-ΠΎΠ²Π΅. Вя ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π°ΠΏΠ°Π·Π²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Fanout с Π±Π°Π·Π°Ρ‚Π°, Ρ‚.Π΅. Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΡΠ»ΡƒΡˆΠ° ΠΈ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ списък Π½Π° всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ – map, ΠΊΠ»ΡŽΡ‡ΡŠΡ‚ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΊΠ°Π½Π°Π»ΡŠΡ‚ ΠΈ struct във Π²ΠΈΠ΄ Π½Π° стойности (ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½).

Π”Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° – Connected ΠΈ Disconnected – позволяват Π½Π° Fanout Π΄Π° Π·Π½Π°Π΅, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ с Π±Π°Π·Π°Ρ‚Π°, тя сС Π΅ появила ΠΈ Ρ‡Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° с Π±Π°Π·Π°Ρ‚Π° Π΅ ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π°. Π’ΡŠΠ² втория случай трябва Π΄Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠΌ всички ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ Π΄Π° ΠΈΠΌ ΡΡŠΠΎΠ±Ρ‰ΠΈΠΌ, Ρ‡Π΅ Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΠ»ΡƒΡˆΠ°Ρ‚ Π½ΠΈΡ‰ΠΎ ΠΈ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ°Ρ‚ ΠΎΡ‚Π½ΠΎΠ²ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° с тях Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π°.

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Subscribe, ΠΊΠΎΠΉΡ‚ΠΎ добавя ΠΊΠ°Π½Π°Π»Π° Π² Β«ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΠΈΡ‚Π΅Β»:

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Има ΠΌΠ΅Ρ‚ΠΎΠ΄ Unsubscribe, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° ΠΊΠ°Π½Π°Π»Π° ΠΎΡ‚ ΡΠ»ΡƒΡˆΠ°Ρ‰ΠΈΡ‚Π΅, Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ сС Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ», ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Publish, ΠΊΠΎΠΉΡ‚ΠΎ позволява Π΄Π° разпространявамС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° всички Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ.

Π’ΡŠΠΏΡ€ΠΎΡ: – Какво ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ°Π½Π°Π»?

МБ: – ΠŸΡ€Π΅Π΄Π°Π²Π° сС ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ ΠΈΠ»ΠΈ ping (ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ просто число, integer).

МБ: – МоТС Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° Π΅, всяка структура – тя просто сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Π² JSON ΠΈ Ρ‚ΠΎΠ²Π° Π΅ всичко.

МБ: ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ извСстиС ΠΎΡ‚ PostgreSQL, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. По ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ нуТния запис, Π° Ρ‚Π°Π·ΠΈ структура я ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π·Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅.

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

Как ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚ΠΎΠ²Π° ΠΎΡ‚ инфраструктурна Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°? ИмамС 7 физичСски ΡΡŠΡ€Π²ΡŠΡ€Π°: Π΅Π΄ΠΈΠ½ ΠΎΡ‚ тях Π΅ изцяло ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π·Π° Π±Π°Π·Π°Ρ‚Π°, Π° Π½Π° останалитС ΡˆΠ΅ΡΡ‚ работят Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини. Има 6 копия Π½Π° API: всяка Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина с API Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ физичСски ΡΡŠΡ€Π²ΡŠΡ€ – Ρ‚ΠΎΠ²Π° Π΅ Π·Π° надСТдност.

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

ИмамС Π΄Π²Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ инсталиран Keepalived Π·Π° подобряванС Π½Π° наличността, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅, Π² случай Π½Π° Π½ΡƒΠΆΠ΄Π°, Π΅Π΄ΠΈΠ½ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ Π΄Ρ€ΡƒΠ³. ОсвСн Ρ‚ΠΎΠ²Π° – Π΄Π²Π΅ копия Π½Π° CMS.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ Π½Π° статистика. Има DB Slave, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ сС правят Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия. Има Pigeon Pusher – ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° извСстия Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° инфраструктурни инструмСнти: Zabbix, Graylog2 ΠΈ Chef.

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚Π°Π·ΠΈ инфраструктура Π΅ излишна, Π·Π°Ρ‰ΠΎΡ‚ΠΎ 100 хиляди ΠΌΠΎΠΆΠ΅ Π΄Π° сС обслуТват ΠΈ с ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Но Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ΡŠΡ‚ бСшС Π½Π°Π»ΠΈΡ‡Π΅Π½ – ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Π³ΠΎ (ΠΊΠ°Π·Π°Ρ…Π° Π½ΠΈ, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ – Π·Π°Ρ‰ΠΎ Π΄Π° Π½Π΅ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ).

ПлюсовС на Go

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ ΠΏΠΎ Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, излязоха наявС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ прСдимства Π½Π° Go.

  • Π‘Ρ‚Ρ€Π°Ρ…ΠΎΡ‚Π½Π° HTTP Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Π‘ нСя ΠΌΠΎΠΆΠ΅ Π΄Π° сС създадС доста ΠΌΠ½ΠΎΠ³ΠΎ β€žΠΎΡ‚ ΠΊΡƒΡ‚ΠΈΡΡ‚Π°β€œ.
  • Плюс ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ…Π° ΠΌΠ½ΠΎΠ³ΠΎ лСсно Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° извСстия Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅.
  • ΠŸΡ€Π΅Π²ΡŠΠ·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ инструмСнт Race detector Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° отстраним няколко ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ бъга (стСйдТинг инфраструктура). Всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° стСйдТинг, Π΅ стартирано, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΎ с ΠΊΠ»ΡŽΡ‡Π° Race; Π·Π°Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½Π° стСйдТинг инфраструктурата ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠΌΠ°ΠΌΠ΅.
  • Минимализъм ΠΈ простота Π½Π° Π΅Π·ΠΈΠΊΠ°.

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

Π’ΡŠΡ€ΡΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ! Ако някой Π΅ заинтСрСсован – моля.

Π’ΡŠΠΏΡ€ΠΎΡΠΈ

Π’ΡŠΠΏΡ€ΠΎΡ ΠΎΡ‚ аудиторията (ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ – Π’): – Мисля, Ρ‡Π΅ пропуснахтС Π΅Π΄ΠΈΠ½ Π²Π°ΠΆΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ относно 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 ΠΏΠΎΠ»Π΅Ρ‚Π° Π²ΡŠΡ‚Ρ€Π΅ Π² класа…

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. Golang Meetup. ИзползванС Π½Π° Go Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+β€œ

МБ: – По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ всички Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС синхронизират с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ (сСзонни ΠΌΠ°Ρ‡ΠΎΠ²Π΅, ΠΈΠ³Ρ€Π°Ρ‡ΠΈ), Π½Π΅ сС промСнят. Π“Ρ€ΡƒΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π°ΠΊΠΎ Ρ‰Π΅ ΠΏΡ€Π°Π²ΠΈΠΌ някакъв Π΄Ρ€ΡƒΠ³ Π²ΠΈΠ΄ спорт, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° промСнямС ΠΌΠ°Ρ‡Π°, просто Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ всичко ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Π° старитС вСрсии Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ.

Π’: – Има Π»ΠΈ някакви външни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° зависимости?

МБ: – Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ go dep.

Π’: – Π’ Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° имашС Π½Π΅Ρ‰ΠΎ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ, Π° Π² самия Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ няма.

МБ: – НС, Π² моята Ρ‚Π΅ΠΌΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎ няма Π½ΠΈΡ‰ΠΎ. Накрая сС Π½Π°Ρ€ΠΈΡ‡Π° Β«Π‘ΠΌΠΎΡ‚Ρ€ΠΈ+Β» – Ρ‚Π°ΠΊΠ° сС ΠΊΠ°Π·Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π’: – ΠšΠ°Π·Π°Ρ…Ρ‚Π΅, Ρ‡Π΅ сС стриймва Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅?..

МБ: – Π‘ стрийминг Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ…ΠΌΠ΅. Π’ΠΎΠ²Π° изцяло Π³ΠΎ ΠΏΡ€Π°Π²Π΅ΡˆΠ΅ β€žΠœΠ΅Π³Π°Ρ„ΠΎΠ½β€œ. Π”Π°, Π½Π΅ ΠΊΠ°Π·Π°Ρ…, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ΅Π³Π°Ρ„ΠΎΠ½ΠΎΠ²ΠΎ.

МБ: – Go – Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° всички Π΄Π°Π½Π½ΠΈ – ΠΏΠΎ Ρ„Π°ΠΊΡ‚ΡƒΡ€Π°, ΠΏΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΎΡ‚ ΠΌΠ°Ρ‡Π°, статистика… Go – Ρ‚ΠΎΠ²Π° Π΅ изцяло Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ трябва Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ информация ΠΎΡ‚ΠΊΡŠΠ΄Π΅ Π΄Π° Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠ»Π΅ΠΉΡŠΡ€Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ потрСбитСлят Π΄Π° Π³Π»Π΅Π΄Π° ΠΌΠ°Ρ‡Π°. ИмамС Π²Ρ€ΡŠΠ·ΠΊΠΈ към Π²ΠΈΠ΄Π΅ΠΎ ΠΈ стриймовС, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ.

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ

Малко Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° πŸ™‚

Благодаря, Ρ‡Π΅ оставатС с нас. Π₯арСсватС Π»ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ статии? Π˜ΡΠΊΠ°Ρ‚Π΅ Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ интСрСсни ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ? ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ΅Ρ‚Π΅ Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° ΠΈΠ»ΠΈ я ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Ρ‚Π΅ Π½Π° ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ, ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ VPS Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΎΡ‚ $4.99, ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° entry-level ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, създадСн ΠΎΡ‚ нас Π·Π° Вас: Всичко Π·Π° VPS (KVM) E5-2697 v3 (6 ядра) 10GB DDR4 480GB SSD 1Gbps ΠΎΡ‚ $19 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΡΡŠΡ€Π²ΡŠΡ€Π°? (Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ с RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ядра ΠΈ Π΄ΠΎ 40GB DDR4).

Dell R730xd Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π΅Π²Ρ‚ΠΈΠ½ Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Equinix Tier IV Π² АмстСрдам? Π‘Π°ΠΌΠΎ ΠΏΡ€ΠΈ нас 2 Ρ… Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100TB ΠΎΡ‚ $199 Π² НидСрландия! Dell R420 β€” 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β€” ΠΎΡ‚ $99! Π§Π΅Ρ‚Π΅Ρ‚Π΅ Π·Π° Ρ‚ΠΎΠ²Π° Как Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ инфраструктура ΠΎΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π΅Π½ клас с ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Dell R730xd Π•5-2650 v4 Π½Π° стойност 9000 Π΅Π²Ρ€ΠΎ Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ?

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster