2012-04-05 2 views
0

У меня есть сервер и около 150 клиентских машин. Все клиенты регистрируются на сервере и сервер делают вызовы методов (обратные вызовы) для зарегистрированных клиентов.Проверьте соединения клиентов с архитектурой архитектуры сервера?

В этой системе периодически выполняется проверка всех подключенных клиентов (ping - метод обратного вызова) (проверка доступности подключения). Но если я делаю все операции ping клиентов в потоке. Он работает слишком медленно из-за времени ожидания вызова метода у недоступных клиентов. И если соединение сломано, он ждет тайм-аута. Таким образом, время ожидания слишком велико. У меня есть новая идея проверки связи.
То, что я создам поток для каждого подключенного клиента. И каждый поток будет просто контролировать собственный клиент. Таким образом, проверка всех системных соединений будет выполняться этими потоками.

Полезно?

Есть ли другие профессиональные предложения для этого проекта?

Спасибо.

ответ

0

При проверке ваших клиентов сервер выступает в качестве клиента для них, поэтому на самом деле это двухсторонняя справедливая архитектура. Если вы хотите, чтобы центральный узел знал о состоянии клиента, попросите клиентов «приветствовать» сервер, опросив его с сообщением о сердцебиении на определенном интервале. После того, как сервер не получит очередное ожидаемое сердцебиение, клиент считается мертвым. Запуск большего количества потоков не принесет преимущества, но может привести к снижению производительности. Подумайте об использовании рабочего потока или какого-либо шаблона актера для обработки биений сердца.

+0

Подумайте, что клиент подключен к серверному объекту и вызвал метод sayHello. С другой стороны, сервер называется клиентским методом ... но этот клиент не отвечает. (клиент может вызвать метод сервера, но сервер не может вызвать метод клиента, возможно ли это?) что вы думаете? – emin

+0

Сервер не может позвонить клиенту по определению. Он выполняет запросы клиентов, отправляя ответы. Это все. Сервер – ahanin

+0

может выполнять обратные вызовы клиентам. Это главным образом используемый механизм. http://docs.oracle.com/cd/E13211_01/wle/rmi/callbak.htm – emin

Смежные вопросы