сервер способен уместить нескольких клиентов, и исчезновение сервера не должно приводить к массовой миграции клиентов.
В моём случае задача сразу же имеет то ограничение, что каждый сервер держит не более одного клиента. И там идёт постоянная возня: занят уже сервер или нет? Если занят, то давай посмотрим другой. Пока будем его занимать, он может отвалиться или его может захватить другой клиент. И так далее.
Тем не менее, спасибо за подсказку, буду думать ещё.
А если как-нибудь для этих целей использовать service-discovery и делегировать эту логику в него. Чтобо оно следило за статусом стульев, и если что-то пошло не так пересаживало клиента.
можно попробовать на хазелкасте сделать. когда появляется новый сервис - он регистрирует свои данные в мапе. юзверь пытается залочить любой из ключей мапы, если это получается, он получает инфу для соединения и соединяется, другие уже не могут туда пойти, так как данный ключ залочен, пока не встали со стула.
Обсуждают сегодня