Size: a a a

2020 May 14

D🦆

Dmitry 🦆 in Go-go!
От хотрелоада проблемы только в проде из-за человеческого фактора, влияние которого увеличивается
источник

SN

Stanislav N. in Go-go!
это круто ровно до момента когда ноутбук начинает улетать после двух-трех CTRL/CMD+S
источник

D🦆

Dmitry 🦆 in Go-go!
Я дочитал. Действительно не подгрузку нового конфига в прод обсуждали.
источник

AK

Anton Kucherov in Go-go!
Да и подгрузка нового конфига без перезапуска - какая то странная концепция. Что делать с клиентами которые прямо сейчас шлют запросы, в момент когда вы выгружаете старый конфиг и загружаете новый?
источник

D🦆

Dmitry 🦆 in Go-go!
Anton Kucherov
Но зачем это в Go, когда в нем есть:
1) IDE которая скажет что ты дурак
2) Линтер который скажет что ты дурак
3) Компилятор который скажет что ты дурак
4) Тесты которые скажут что ты дурак
Чтобы при нажатии F5 в браузере уже новая версия была.
А собираться начинала при потере фокуса у окна IDE (у всех же по потере фокуса автосейв?).
источник

а

а кто это in Go-go!
Dmitry 🦆
Чтобы при нажатии F5 в браузере уже новая версия была.
А собираться начинала при потере фокуса у окна IDE (у всех же по потере фокуса автосейв?).
нет
источник

D🦆

Dmitry 🦆 in Go-go!
Anton Kucherov
Да и подгрузка нового конфига без перезапуска - какая то странная концепция. Что делать с клиентами которые прямо сейчас шлют запросы, в момент когда вы выгружаете старый конфиг и загружаете новый?
Работают со старой версией конфига. Когда клиенты со старой версии кончатся, то сборщик мусора её удалит.
источник

а

а кто это in Go-go!
Idea/GoLand пишет без сохранений
в том смысле что сразу в файл
источник

а

а кто это in Go-go!
Anton Kucherov
Да и подгрузка нового конфига без перезапуска - какая то странная концепция. Что делать с клиентами которые прямо сейчас шлют запросы, в момент когда вы выгружаете старый конфиг и загружаете новый?
1. подождут?
2. перед загрузкой пометить ноду как нерабочую
3. зависит от того, что обновляете, может это достаточно быстро происходит
источник

DP

Daniel Podolsky in Go-go!
Dmitry 🦆
Работают со старой версией конфига. Когда клиенты со старой версии кончатся, то сборщик мусора её удалит.
и когда же они кончатся, при современных протоколах?
источник

AK

Anton Kucherov in Go-go!
Dmitry 🦆
Работают со старой версией конфига. Когда клиенты со старой версии кончатся, то сборщик мусора её удалит.
А как вы определите, где клиенты использующие старую версию конфига а где новую? 🤔
источник

AK

Anton Kucherov in Go-go!
По мне так самый очевидный способ обновления конфигов вот такой:
1) Поднимаем новый инстанс с новым конфигом, проверяем что он норм запустился
2) Направляем трафик туда, ждем пока на старом приложении не останется трафика
3) Убиваем старый инстанс.
источник

D🦆

Dmitry 🦆 in Go-go!
Daniel Podolsky
и когда же они кончатся, при современных протоколах?
Ну вебсокет можно и принудительно прервать. Для кипелайв http - при окончании определенного запроса.
источник

D🦆

Dmitry 🦆 in Go-go!
Anton Kucherov
А как вы определите, где клиенты использующие старую версию конфига а где новую? 🤔
А не надо определять. У клиента будет объект конфига, который будет использоваться в его запросе.
источник

DP

Daniel Podolsky in Go-go!
Dmitry 🦆
Ну вебсокет можно и принудительно прервать. Для кипелайв http - при окончании определенного запроса.
тогджа и все остальное можно принудительно того
источник

D🦆

Dmitry 🦆 in Go-go!
Для вебсокета можно специальное сообщение о реконнекте сделать, чтобы клиент его понимал.
источник

AK

Anton Kucherov in Go-go!
Dmitry 🦆
А не надо определять. У клиента будет объект конфига, который будет использоваться в его запросе.
Хотел бы я посмотреть на примеры кода
источник

D🦆

Dmitry 🦆 in Go-go!
Anton Kucherov
По мне так самый очевидный способ обновления конфигов вот такой:
1) Поднимаем новый инстанс с новым конфигом, проверяем что он норм запустился
2) Направляем трафик туда, ждем пока на старом приложении не останется трафика
3) Убиваем старый инстанс.
Еще и деплоем отдельным считал бы это обязательно.

Я против релоада конфига, у нас прод такой периодически валит из-за человеческого фактора, а такая штука увеличивает этот фактор.
источник

D🦆

Dmitry 🦆 in Go-go!
Anton Kucherov
Хотел бы я посмотреть на примеры кода
Явное существование объекта конфига в хендлере запроса.
При перечитывании конфига явно передаваться будет уже новая версия.
Когда все запросы на сатром конфиге выполнятся, то он перестанет существовать после сборки мусора.
источник

AK

Anton Kucherov in Go-go!
Я же говорю, хотел бы я посмотреть на примеры кода, кто реализовал хот релоад конфига в рамках процесса.
источник