Состояние репликации приложений Java - PullRequest
2 голосов
/ 25 февраля 2011

У меня одно и то же приложение на стороне сервера, работающее на нескольких машинах.

Я хотел бы предоставить способ внесения изменений во все приложения.Меня больше интересуют изменения состояния / свойств самих объектов, а не столько репликация файлов и т. Д.

Итак, я представляю консоль администратора, где я могу изменить какое-то свойство и получитьизменения влияют на состояние каждого приложения.

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

Существуют ли другие доступные решения / методы?

Ответы [ 4 ]

5 голосов
/ 25 февраля 2011

Существует множество методов, corba, rmi и т. Д. Однако, если вам нужна полностью распределенная система без центрального сервера, я лично рекомендую JGroups.

Если у вас есть центральный сервер, вы можете либо

  • Разрешить серверу передавать изменения всем клиентам.Сервер должен знать обо всех клиентах, либо напрямую, либо с помощью регистрации клиентов.
  • Пусть клиенты опрашивают сервер.
3 голосов
/ 25 февраля 2011

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

3 голосов
/ 25 февраля 2011

Могут быть и другие простые решения, включая опрос центральной базы данных или центрального файла.

Появляется быстрый поиск в Google: http://www.hazelcast.com/product.jsp. Это выглядит многообещающе, но у меня нет с этим опыта.

2 голосов
/ 25 февраля 2011

Apache ZooKeeper из проекта Hadoop также может быть интересным. У меня нет опыта работы с ним, но на веб-странице, на которой я полагаю, предлагается иерархическая модель данных. Каждое приложение, заинтересованное в изменениях, может отслеживать изменения в определенном узле и действовать в соответствии с изменениями.

http://zookeeper.apache.org/doc/trunk/index.html

...