Какие хорошие промежуточные решения существуют для кластерных / распределенных сервисов - PullRequest
1 голос
/ 14 октября 2010

Я ищу существующие промежуточные решения, которые учитывают аспекты кластеризации / распределения сервисов для балансировки нагрузки и доступности. Я ищу создание собственной инфраструктуры для этого на основе системы обмена сообщениями (точнее, JMS). Однако, если возможно, я бы предпочел использовать то, что уже существует.

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

Под службами я подразумеваю «независимые единицы функциональности», которые имеют предопределенный интерфейс. Клиенты будут просто знать интерфейс, а промежуточное ПО должно позаботиться о том, чтобы служба работала на достаточном количестве узлов, чтобы отвечать на входящие запросы, сделанные через интерфейс.

Это должно быть что-то, что хорошо интегрируется с Java. Некоторые из моих сервисов реализованы в виде собственного кода, но у меня есть хорошее решение для их преобразования в сервис на основе Java.

Я смотрел на некоторые решения промежуточного программного обеспечения / ESB, такие как ICE и Mule , но я не нашел их для решения тех аспектов предоставления услуг динамической нагрузки, которые я описал выше хорошо (если вообще). Поэтому мне интересно, что еще может быть там, что кто-то здесь хотел бы посоветовать взглянуть на ...

1 Ответ

1 голос
/ 14 октября 2010

Я бы порекомендовал вам взглянуть глубже на OSGi:

  • имеет довольно динамичную модульную систему, которая позволяет перемещать ваши услуги по сети
  • Существуют предложения с открытым исходным кодом, которые вы можете построить : Eclipse Equinox и Virgo , Apache Felix и Караф , Рыба Кнопфлер , Консьерж , Стеклянка 3 и т. Д. ( сравнение )
  • Что касается стороны remoting , OSGi 4.2 имеет спецификацию Remote Services , для которой существует несколько реализаций. В частности, ECF представляется одной реализацией, которая может удовлетворить ваши потребности, если вы хотите использовать JMS ( статья о dzone ).

В качестве заключительного замечания вы можете взглянуть на Paremus Service Fabric - из описания это звучит очень похоже на зверя, которого вы пытаетесь собрать (за исключением того, что он использует JINI вместо JMS). Если ничего другого, это может быть источником вдохновения.

У них также была версия с открытым исходным кодом под названием Newton, но она была закрыта из-за отсутствия интереса. Это было упомянутое , что оно жило под названием Service Fabric Community Edition, но в настоящее время я не могу найти ссылку на него на их веб-сайте (скорее всего, это было просто отменено ).

Наконец, вот еще один проект для вдохновения: Bundle-Bee - прозрачные распределенные по сетке вычисления OSGi . Скорее всего, есть больше подобных проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...