Каковы распространенные практики использования разгрузки соединения во время развертываний, чтобы предотвратить разрыв длительных соединений веб-сокета?

У меня есть приложение Django, использующее каналы Django, развернутые на одном сервере в большой организации. В настоящее время мы используем двойное разветвление для развертывания кода без прерывания длительных соединений веб-сокетов. Эти соединения имеют сложные объекты в памяти, такие как сокеты и вещи, которые не могут быть сохранены. Они очень полны состояния. Сейчас это хорошо работает для нас, но я реорганизовал наш код для каналов 2 и убрал двойную разветвленность. Это всегда казалось мне счастливым.

Эти соединения передаются через Nginx и запускаются на сервере приложений Daphne на виртуальной машине CentOS. Какие общие инструменты используются для управления несколькими экземплярами приложения и истощения соединений одного экземпляра при отправке новых подключений другому экземпляру? Я могу получить больше серверов, если они мне нужны.

Я посмотрел на цирк. Кажется, что это может быть в состоянии выполнить то, что я ищу, но это, кажется, заброшен. Кроме этого я не мог найти много информации по этой теме, которая не была бы специфична для чего-то вроде EC2.

0 ответов

Другие вопросы по тегам