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

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

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

Има Π»ΠΈ някой ΠΌΠ΅ΠΆΠ΄Ρƒ вас, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π° Ρ…ΠΎΠΊΠ΅ΠΉ?

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

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

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

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

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

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

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

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

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

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

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

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

На Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ°Ρ…ΠΌΠ΅ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»:

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

Server-Sent Events

Няколко Π΄ΡƒΠΌΠΈ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ...

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

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

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

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

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

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

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

Как сС обслуТва live Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°?

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

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

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

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка сСга ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ping ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ ΠΊΠ°Π½Π°Π», ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ΄Π²Π°Ρ‚ обновлСнията.

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

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

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

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

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

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

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

PostgreSQL: Listen/Notify

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

ΠœΠΈΡ…Π°ΠΈΠ» Балосин. 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 ΠΈ Ρ‚ΠΎΠ²Π° Π΅ всичко.

МБ: – ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ "Postgres" – Π² Π½Π΅Π³ΠΎ Π΅ записано ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚. По ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ нСобходимия запис, Π° слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ структура Π·Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅.

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

Как ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚ΠΎΠ²Π° ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° инфраструктурата? ИмамС 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 Π±Π°ΠΉΡ‚Π° Π½Π° preload, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ моТСшС Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ, Π°ΠΊΠΎ ΡΡ‚Π°Π²Π°ΡˆΠ΅ Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° ΠΌΠ°Π»ΠΊΠΎ количСство Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΌΠΈ сС струва, Ρ‡Π΅ ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ, Π΅ просто ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΡ‚Π° са Π² самия β€žPostgres”.

Π’: – ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΡŠΠΏΠ΄Π΅ΠΉΡ‚ΠΈ Π·Π° ΠΌΠ°Ρ‡ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π³ΠΈ интСрСсуват?

МБ: – Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΄Π°. ОбикновСно Ρ‚Π°ΠΌ сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚ 2-3 ΠΌΠ°Ρ‡Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΈ Ρ‚ΠΎ доста рядко. Ако ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π³Π»Π΅Π΄Π° Π½Π΅Ρ‰ΠΎ, Ρ‚ΠΎΠΉ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ слСди ΠΌΠ°Ρ‡Π°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚Π΅Ρ‡Π΅. ПослС, Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° Π»ΠΎΠΊΠ°Π»Π½Π° Π±Π°Π·Π°, Π² която сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ всички Ρ‚Π΅Π·ΠΈ ΡŠΠΏΠ΄Π΅ΠΉΡ‚ΠΈ, ΠΈ Π΄ΠΎΡ€ΠΈ Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈ всички ΠΌΠΈΠ½Π°Π»ΠΈ ΠΌΠ°Ρ‡ΠΎΠ²Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° ΡŠΠΏΠ΄Π΅ΠΉΡ‚ΠΈ. По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ синхронизирамС Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π° с Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Ρ‚ΠΎΠΉ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½.

Π’: – Π—Π°Ρ‰ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…Ρ‚Π΅ своя ORM?

АлСксСй (Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° β€žΠ‘ΠΌΠΎΡ‚Ρ€ΠΈ+”): – Π’ ΠΎΠ½Π·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°) ORM-ΠΈΡ‚Π΅ бяха ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ сСга, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ° доста. ΠžΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ORM-ΠΈ, Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΈ харСсва, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ тях работят с ΠΏΡ€Π°Π·Π½ΠΈ интСрфСйси. ВоСст ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π² Ρ‚Π΅Π·ΠΈ ORM-ΠΈ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ всичко: структура, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» Π·Π° структура, число, Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°...

ΠΠ°ΡˆΠΈΡΡ‚ ORM Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° структури Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. Π‘Π°ΠΌ. И Π·Π°Ρ‚ΠΎΠ²Π° всички ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ са ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ рСфлСксия ΠΈ Ρ‚.Π½. Π’Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ структури ΠΈ ΠΎΡ‡Π°ΠΊΠ²Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π΅Π·ΠΈ структури, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚.

Π’: – Колко Π΄ΡƒΡˆΠΈ участваха?

МБ: – Π’ началния Π΅Ρ‚Π°ΠΏ участваха Π΄Π²Π°ΠΌΠ° Π΄ΡƒΡˆΠΈ. НякъдС ΠΏΡ€Π΅Π· юни Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅, ΠΏΡ€Π΅Π· август основната част бСшС Π³ΠΎΡ‚ΠΎΠ²Π° (ΠΏΡŠΡ€Π²Π°Ρ‚Π° вСрсия). ΠŸΡ€Π΅Π· сСптСмври бСшС Ρ€Π΅Π»ΠΈΠ·ΡŠΡ‚.

Π’: – Π’Π°ΠΌ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ описватС SSE, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ timeout. Π—Π°Ρ‰ΠΎ Ρ‚Π°ΠΊΠ°?

МБ: – Ако Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½ΠΎ, 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 E5-2650 v4 Π½Π° стойност 9000 Π΅Π²Ρ€ΠΎ Π·Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°Ρ€ΠΈ?

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

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