У меня есть клиентское приложение на основе Java, которое хочет взаимодействовать с несколькими экземплярами устаревшего серверного приложения, используя стратегию балансировки нагрузки «
некоторые». Сведения об экземплярах (IP, PORT и Active?) этого серверного приложения хранятся в таблице БД. Для данного экземпляра клиентское приложение устанавливает соединение через сокет, отправляет команды и получает ответ. Эти разъемные соединения долговечны.
Чтобы иметь возможность использовать все доступные экземпляры, я планирую сделать в клиенте следующее:
- Считать работоспособные экземпляры на карте
- Открыть соединения или использовать существующие соединения Socket в циклическом режиме
- Отправить запрос по заданному соединению сокета. Если запрос не выполнен, отметьте этот экземпляр как неработоспособный, чтобы
он больше не использовался. Также повторите запрос на другом
соединении
- В рабочем потоке периодически обновляйте карту с № 1
Есть ли какие-либо инструменты/библиотеки для достижения этой цели? В поиске Google появился Apache Camel (также Ribbon и Hystrix), но я не совсем уверен, как смогу вписать его в этот сценарий. Пожалуйста, помогите.
Подробнее здесь:
https://stackoverflow.com/questions/591 ... pplication