как настроить балансировщик нагрузки в кластере предохранителей с разными машинами1, машина2 и машина3?

Ниже приведены шаги, которые я выполняю для настройки кластера на 3 разных машинах.

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

 - machine1/jboss-fuse-6.3.0.redhat-187
  - machine2/jboss-fuse-6.3.0.redhat-187
  - machine3/jboss-fuse-6.3.0.redhat-187

2. Отредактируйте etc/org.apache.karaf.management.cfg и измените rmiRegistryPort, rmiServerPort, назначив уникальный порт:

**#machine1**

rmiRegistryPort = 1099                         
rmiServerPort = 44444                          

**#machine2**

rmiRegistryPort = 1100                         
rmiServerPort = 44445                          

**#machine3**

rmiRegistryPort = 1101                         
rmiServerPort = 44446  

3. Отредактируйте etc/org.apache.karaf.shell.cfg и измените sshPort, назначив уникальный порт:

#machine1
sshPort = 8101  
#machine2
sshPort = 8102
#machine3
sshPort = 8103  

4. Отредактируйте файл etc/system.properties. Измените karaf.name, org.osgi.service.http.port, activemq.port, назначив уникальный порт:

#machine1
karaf.name = root1                          
org.osgi.service.http.port=8181                    
activemq.port = 61616   

#machine2
karaf.name = root2                         
org.osgi.service.http.port=8182                
activemq.port = 61617   

#machine3
karaf.name = root3                         
org.osgi.service.http.port=8183                    
activemq.port = 61618

5. запустите контейнер root1.

./fuse

6. И создайте Fabric:

JBossFuse:karaf@root1> fabric:create --new-user administrator --new-user-password password --new-user-role Administrator --zookeeper-password ZooPass1 --resolver manualip --manual-ip 192.168.1.9 --wait-for-provisioning

Above is My root1 machine1 IP Address : 192.168.1.9

7. Теперь запустите контейнер root2 и присоединитесь к Fabric:

./fuse
JBossFuse:karaf@root2> fabric:join 192.168.1.10:2181
Ensemble password: ZooPass1

8. Теперь запустите контейнер root3 и присоединитесь к Fabric:

./fuse
JBossFuse:karaf@root3> fabric:join 192.168.1.11:2181
Ensemble password: ZooPass1

9. Выполните следующую команду для ансамбля:

JBossFuse:karaf@root1> fabric:ensemble-add root2 root3
This will change of the zookeeper connection string.
Are you sure want to proceed(yes/no):yes

 JBossFuse:karaf@root1> fabric:ensemble-list
[id]
root1
root2
root3

Затем я развернул остальную службу на всех 3 узлах и создал профиль, также добавил требуемый профиль с HTTP GETEWAY for load balancer and HA, но запрос не прошел через машину 2 и машину 3. Даже я также не могу получить доступ к машине 1 и машине 2 hawtio console в соответствии с данными ниже URL.

192.168.1.10:8182/hawtio/login
192.168.1.10:8183/hawtio/login

Может ли кто-нибудь помочь добиться балансировки нагрузки для кластерной среды с 3 разными машинами?


person Prakash Kuva    schedule 26.09.2017    source источник


Ответы (1)


Я бы посоветовал - не делайте ничего из этого :) Если вы используете Fabric8, установите один экземпляр Fuse, выполните fabric:create, а затем используйте container-create-ssh --host localhost для настройки других контейнеров на той же машине. Это автоматически позаботится обо всех конфликтах портов, которые, как я подозреваю, лежат в основе вашей проблемы. Fabric8 использует очень много портов, и пытаться исправить их все вручную — ужасная работа.

person Kevin Boone    schedule 26.09.2017
comment
Я могу добиться балансировки нагрузки на той же машине, используя создание 3 узлов. Моя забота состоит в том, чтобы добиться этого на 3 разных машинах. Можете ли вы предоставить информацию о том, как настроить его на 3 машинах? - person Prakash Kuva; 26.09.2017
comment
Если вы сделаете это рекомендуемым способом, не будет иметь никакого значения, где расположены контейнеры (если на вашем пути нет брандмауэров и т. д.). Установите один контейнер. Создайте остальные из этого контейнера, используя container-create-ssh. Создайте контейнер для шлюза HTTP, который может быть контейнером SSH или дочерним контейнером, и добавьте профиль gateway-http. Вот и все. Когда это не работает должным образом, обычно это происходит из-за того, что что-то в сетевой инфраструктуре блокирует соединение между контейнерами, или из-за неадекватной согласованности имен и IP-адресов в системе. - person Kevin Boone; 26.09.2017