Источник: Nuances of Programming При запуске нового приложения важно, чтобы оно легко обновлялось и распространялось. А для некоторых приложений — еще и максимизация времени бесперебойной работы. Хороший пример таких приложений — API, используемый сразу несколькими клиентами, которые ожидают, что он всегда будет работать без сбоев. Недавно у меня была задача: создать API с максимальным временем бесперебойной работы при обновлении бинарных файлов. Кратко изложу суть найденных мной решений. Наверняка есть и другие, просто эти два решения применяются чаще. Пусть они послужат некой отправной точкой для будущих открытий: возвращаясь к этим решениям, вам будет отчего отталкиваться в дальнейшем. Решения должны работать не только на Linux, но и на любой платформе UNIX. Знакомы с основами файловых дескрипторов, сигналов, а также различиями между потоками и процессами? Тогда начнем. Почти все примеры здесь на Golang. Решение 1. Параметры сокетов SO_REUSEPORT задаются для слушателя (см. приме