Я ищу существующие промежуточные решения, которые учитывают аспекты кластеризации / распределения сервисов для балансировки нагрузки и доступности. Я ищу создание собственной инфраструктуры для этого на основе системы обмена сообщениями (точнее, JMS). Однако, если возможно, я бы предпочел использовать то, что уже существует.
Система должна иметь возможность запускать различные службы на нескольких компьютерах. На основе описаний служб система должна иметь возможность определить, сколько экземпляров конкретной службы следует запустить в кластере. На основе ожидающих запросов на обслуживание, он должен динамически регулировать количество запущенных сервисов. Службы мониторинга и развертывания новых версий служб также должны обрабатываться системой.
Под службами я подразумеваю «независимые единицы функциональности», которые имеют предопределенный интерфейс. Клиенты будут просто знать интерфейс, а промежуточное ПО должно позаботиться о том, чтобы служба работала на достаточном количестве узлов, чтобы отвечать на входящие запросы, сделанные через интерфейс.
Это должно быть что-то, что хорошо интегрируется с Java. Некоторые из моих сервисов реализованы в виде собственного кода, но у меня есть хорошее решение для их преобразования в сервис на основе Java.
Я смотрел на некоторые решения промежуточного программного обеспечения / ESB, такие как ICE и Mule , но я не нашел их для решения тех аспектов предоставления услуг динамической нагрузки, которые я описал выше хорошо (если вообще). Поэтому мне интересно, что еще может быть там, что кто-то здесь хотел бы посоветовать взглянуть на ...