Кластер приложений с Tomcat на CentOS / Redhat

Я новичок в кластере ... Мы используем приложение Tomcat, которое работает на серверах CentOS.

Можно ли получить балансировку нагрузки только с 2 серверами? Активный / активный кластер. Я знаю, что это возможно с HAProxy, но в этом случае мы должны добавить третий сервер.

Можно ли создать кластерную архитектуру с двумя моими серверами CentOS и иметь виртуальный IP-адрес для присоединения к обоим моим серверам?

Спасибо

0
задан 29 January 2017 в 13:12
3 ответа

Что касается терминологии, я не называю большинство балансировщиков нагрузки кластерами. Хосты за ними могут быть довольно независимыми, в отличие от кластеров.

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

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

Возможно, вам понадобится как минимум 3 виртуальных машины, одна для балансировщика нагрузки и две для внутренних хостов для обслуживания запросов. Количество и спецификации потребуют разработки в зависимости от ваших требований к высокой доступности и производительности. Например, вы можете сделать балансировщик нагрузки высокодоступной виртуальной машиной или использовать аппаратное устройство.

Требуется ли вашему приложению совместно используемое состояние (база данных) и как это реализовать - это уже другая тема.

0
ответ дан 5 December 2019 в 18:45

Мне немного грустно, потому что мы можем сделать это с Windows, но не с Linux: / (с NLB)

Это невозможно сделать с помощью CLUSTERIP?

-1
ответ дан 5 December 2019 в 18:45

Мы хотим делать то же, что и вы: иметь виртуальный IP-адрес, назначенный обоим серверам.

Мы работаем на CentOS 7.

Итак, мы делаем следующее:

  • Cluster01: 10.10.10.11
  • Cluster02: 10.10.10.12
  • VirtualIP: 10.10.10.10

В кластере 01:

iptables -I INPUT -i ens160 -d 10.10.10.10 -j CLUSTERIP --new --hashmode sourceip --clustermac 01:00:5E:00:00:20 --total-nodes 2 --local-node 1
ip addr add 10.10.10.10/24 dev ens160

В кластере 02:

iptables -I INPUT -d 10.66.66.10 -i ens160  -j CLUSTERIP --new --hashmode sourceip --clustermac 01:00:5E:00:00:20 --total-nodes 2 --local-node 2
ip addr add 10.10.10.10/24 dev ens160

Мы можем пинговать VirtualIP (но только из Cluster01 и Cluster02). Мы вручную добавляем HW-адрес в кеш arp:

arp -i ens160 -s 10.10.10.10 01:00:5E:00:00:20 

iptables -L -n -v

Chain INPUT (policy ACCEPT 2221 packets, 151K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CLUSTERIP  all  --  ens160 *       0.0.0.0/0            10.10.10.10          CLUSTERIP hashmode=sourceip clustermac=01:00:5E:00:00:20 total_nodes=2 local_node=2 hash_init=0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 1536 packets, 1412K bytes)
 pkts bytes target     prot opt in     out     source               destination

На обоих серверах у нас есть файл /proc/net/ipt_CLUSTERIP/10.66.66.10

С моей рабочей станции, Я могу получить доступ к своей веб-странице на Cluster01, Cluster02 и VirtualIP. Но балансировка нагрузки не работает ... отвечает только тот же сервер ...

0
ответ дан 5 December 2019 в 18:45

Теги

Похожие вопросы