Answer the question
In order to leave comments, you need to log in
How to update TCP server with connected clients?
There is a TCP server, periodically it is necessary to update the server software, while the server stops and the updated one starts, the clients reconnect. How to organize a server software update without disconnecting clients?
Answer the question
In order to leave comments, you need to log in
Как в nginx - запускается вторая копия процесса уже обновленного, которая принимает новые соединения, а старые дообрабатывает старый. Старый, конечно, должен при этом закрыть слушающий сокет.
Когда все соединения обработает, он сам завершается. Механизм сложный в реализации, но тут простого и не будет.
Еще где-то видел такой подход : слушающий процесс и обработчики реализованы в отдельных библиотеках как плагины. Плагины можно загружать и выгружать на лету. При таком механизме становится довольно удобно обновлять приложение - можно обновлять только плагин.
Представляется, что Вы должны сделать интерфейс-прослойку, сохраняющую все данные о текущем подключении клиентов (включая вплоть до протокола прикладного уровня) в структуре данных, доступной одновременно двум процессам (удаляемому и запускаемому), а также средствами ОС уметь share сокет и все его хендлы между двумя разными процессами ( для Windows - https://msdn.microsoft.com/en-us/library/windows/d... ).
Действительно ли в Вашем случае такой объем разработки стоит обсепечения неразрывности обслуживания ?
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question