Как автоматически переподключить сбойных клиентов к другому серверу в кластере серверов? - PullRequest
2 голосов
/ 19 марта 2012

У нас есть распределенное приложение клиент / сервер, где сервер написан на .Net, а клиенты могут быть на c ++, php, .net, java, python и т. Д. Все клиенты в среде подключены не более чем к 1 серверу на сервере.-cluster.Серверы прослушивают клиентов в сокете.

Итак, когда к клиенту подключено несколько клиентов, скажем, server1, а server1 отключается, все новые запросы от этих клиентов начинают сбой.Мы пытаемся найти решение, которое предоставляет нам эту поддержку аварийного переключения в режиме реального времени, при которой подключенные клиенты автоматически начинают отправлять свои запросы на другой сервер (server2) в кластере.

Один из способов сделать это - добавить интеллектуальные данные на клиенте.сторона, но так как у нас есть клиенты на разных языках, мы не хотим делать это на стороне клиента.И это также нецелесообразно из-за различных других причин.

Другой способ - предоставить виртуальный IP-адрес всем серверам в кластере и разрешить всем клиентам подключаться к этому виртуальному IP-адресу, а не назначать ему разные физические IP-адреса.Но проблема с этим подходом состоит в том, что, как только клиенты подключены к серверу, невозможно переключить их на следующий сервер.

Если бы это было для http-трафика, то Балансировщик сетевой нагрузки решил бы нашу проблему.Даже отказоустойчивая кластеризация Windows, похоже, не решает проблему.

Есть идеи, предложения?

...