Как перезагрузить сервис на Go так, чтобы сохранить текущие WS соединения?
У меня есть сервис на Go, который держит большое количество клиентов по Websocket, слушащих данные. Типа, круглосуточно, и нежелательно чтобы соединение оборвалось. Допустим, мне надо сделать апдейт сервиса. Можно ли перезагрузить его так, чтобы клиентам не пришлось переподключаться?
Собственно, варианта пока что вижу два:
а) заложить такой функционал на стороне клиента (который я тоже пишу, но не хотелось бы так делать): сервис шлёт сообщение о своей перезагрузке, а клиент пытается переподключиться через время.
б) разбить сервер на две части, одна - только логика, другая - только обслуживание соединений, взаимодействие через MongoDB Capped Collection (что собственно подошло бы: данные со временем протухают, но вопрос в её производительности: отправлять данные надо как можно скорее).
Возможно, есть какое-то более элегантное / нативное решение?
Заранее спасибо.
Спасибо.