Рассмотрим актуальную задачу Load Balancer между инстансами ActiveMQ. Балансировка в таком случае строиться с помощью networkConnectors. Для простоты развертывания инстансы ActiveMQ развернем на одной машине, разделение будет строиться на базе портов. Вот схематичное представление кластера:
Конфигурация каждого инстанса ActiveMQ представлена ниже:
instance1:
URL для consumer и producer будет выглядеть следующим образом:
Конфигурация каждого инстанса ActiveMQ представлена ниже:
instance1:
<networkConnectors>
<!-- broker1 -> broker2 -->
<networkConnector name="instance1-instance2" uri="static:(tcp://localhost:61618)" />
<!-- broker1 -> broker3 -->
<networkConnector name="instance1-instance3" uri="static:(tcp://localhost:61619)" />
<!-- broker1 -> broker4 -->
<networkConnector name="instance1-instance4" uri="static:(tcp://localhost:61620)" />
</networkConnectors>
instance2:
<networkConnectors>
<!-- broker2 -> broker1 -->
<networkConnector name="instance2-instance1" uri="static:(tcp://localhost:61617)" />
<!-- broker2 -> broker3 -->
<networkConnector name="instance2-instance3" uri="static:(tcp://localhost:61619)" />
<!-- broker2 -> broker4 -->
<networkConnector name="instance2-instance4" uri="static:(tcp://localhost:61620)" />
</networkConnectors>
instance3:
<networkConnectors>
<!-- broker3 -> broker1 -->
<networkConnector name="instance3-instance1" uri="static:(tcp://localhost:61617)" />
<!-- broker3 -> broker2 -->
<networkConnector name="instance3-instance2" uri="static:(tcp://localhost:61618)" />
<!-- broker3 -> broker4 -->
<networkConnector name="instance3-instance4" uri="static:(tcp://localhost:61620)" />
</networkConnectors>
instance4:
<networkConnectors>
<!-- broker4 -> broker2 -->
<networkConnector name="instance4-instance1" uri="static:(tcp://localhost:61617)" />
<!-- broker4 -> broker3 -->
<networkConnector name="instance4-instance2" uri="static:(tcp://localhost:61618)" />
<!-- broker4 -> broker4 -->
<networkConnector name="instance4-instance3" uri="static:(tcp://localhost:61619)" />
</networkConnectors>
URL для consumer и producer будет выглядеть следующим образом:
failover://(tcp://localhost:61617,tcp://localhost:61619,tcp://localhost:61618,tcp://localhost:61620)?randomize=true
Комментариев нет:
Отправить комментарий