2017-02-21 40 views
0

Недавно я пытаюсь использовать JGroup для создания кластера, поэтому разные машины, подключенные к одному кластеру, могут обмениваться сообщениями друг с другом.JGroup кластеризация через 2 подсети

Я пробовал приложение простого чата на своем локальном хосте (между двумя Java-приложениями), и он работает без проблем, то есть они могут принимать и отправлять сообщения между собой.

Вот сценарий PC 1: Состоят из модуля Java (Receiver) Сервер 2 (модуль с помощью jgroup проживает в этом сервере): Sender

Мой следующий шаг, чтобы переместить отправителя (создателя кластер) в другую подсеть, но все еще в той же сети, что и я, чтобы пинговать частный IP-адрес с моего ПК 1. Идеально Server 1 создаст кластер (первый для присоединения) и когда я запустил приемник на своем локальном машине, он должен присоединиться к кластеру, созданному сервером 1.

Между этими двумя подсетями находится межсетевой экран.

Я пробовал это, используя настройку JChannel по умолчанию, но не работает. Создан кластер, но PC1 не может подключиться к кластеру, но вместо этого сформировал свой собственный кластер. Они имеют одинаковое имя кластера.

Я провел дальнейшие исследования, мне нужно настроить многоадресную рассылку UDP на сервере в качестве отправителя и в качестве получателя, одноадресную передачу TCP в кластер, созданный на сервере? Если это так, я читаю, что мне нужно настроить стек протокола и в xml или программно, и передать их в экземпляр JChannel. С помощью TCPPING для обнаружения?

Может ли кто-нибудь пролить свет? Во-вторых, поскольку между ними есть межсетевой экран, мне нужно настроить TCPGOSSIP?

С наилучшими пожеланиями,

ответ

0

я столкнулся с той же проблемой в моей среде с использованием mod_cluster и JGroups с апача-верблюд. Для достижения требований интеграции двух датацентров (подсетей) я использовал JGroups и mod_cluster поверх TCP вместо стандартного UDP с многоадресной рассылкой. С помощью JGroups вам необходимо настроить файл, содержащий всю конфигурацию стека протоколов, включая tcpping. Внутри .jar JGroups вы найдете образцы файлов, таких как tcp.xml и tcp-nio.xml. Я потерял некоторое время, используя JGroups 3.4.1, столкнувшись с проблемами с конфигурацией tcpping, которые не работают до тех пор, пока я не перейду к версии 3.6.13.Final.

Если вы используете класс JChannel, просто используйте конструктор, который получает строку с пути к XML-файлу, который содержит конфигурацию. Не забывайте о важных параметров

-Djgroups.bind_addr -Djgroups.tcpping.initial_hosts=NODE1[7800],NODE2[7800]

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

Надеюсь, что это поможет.