2016-10-27 5 views
2

Однако, я не могу заставить его работать на меня:Как использовать SSL для распределенных vert.x EventBus?

установки:

Рабочая:

  • развертывание на одной машине, не кластерной включен SSL
  • развертывание на двух машинах, Hazelcast кластеризация, SSL отключен

В противном случае:

  • развертывание на двух машинах, Hazelcast кластеризация, включен SSL (отправка/прием сообщений от удаленных verticles терпит неудачу молча)

Вход сообщения:

  • при попытке опубликовать/отправить: «DEBUG: подключение кластера закрыто: локальный: 44035 держатель [email protected]»

Я попытался с помощью различных ключей/сертификатов, хранилища ключей + доверенные хранилища ключей, включающие/отключающие требования клиента. До сих пор ничего не работало.

Вопросы:

  1. Как получить больше сообщений журнала из Нетти/EventBus-IMPL/Hazelcast?
  2. Любая идея, что может быть проблемой при кластеризации + SSL?

ответ

1

Я попытался выполнить пример SSL-события на двух машинах, и в моем случае он не удалось из-за того, что Hazelcast не смог установить кластер при запуске (поэтому каждый экземпляр карусели был единственным узловым кластером). Как только я исправил это, пример работал безупречно. Документация Vertx-hazelcast имеет связанный раздел на troubleshooting clustering.

Причина, по которой Hazelcast не смогла сформировать кластер в моем случае, заключалась в том, что конфигурация Hazelcast по умолчанию (в $VERTX_HOME/conf/default-cluster.xml) настраивает Hazelcast для обнаружения многоадресной рассылки; это по умолчанию отключено в OSX (также не редкость для домашних маршрутизаторов отключать многоадресный трафик). Я скопировал $VERTX_HOME/conf/default-cluster.xml в мой рабочий каталог, а затем изменил <multicast> и <tcp-ip> секции конфигурации следующим образом:

<multicast enabled="false"> <!-- was originally true --> 
    <multicast-group>224.2.2.3</multicast-group> 
    <multicast-port>54327</multicast-port> 
    </multicast> 
    <tcp-ip enabled="true"> <!-- this one was false --> 
    <!-- list your cluster machines IPs including the current one in member elements --> 
    <member>192.168.2.1</member> 
    <member>192.168.2.2</member> 
    </tcp-ip> 

Скопируйте cluster.xml на обеих машинах, а затем начать VertX из каталога, где вы разместили cluster.xml для того, чтобы VertX к заберите его (я сделал это в каталоге источников примеров javascript, поэтому я выполнил vertx run receiver.js -cluster/vertx run sender.js -cluster на каждой машине), и это сработало.

Vertx-hazelcast module documentation также содержит инструкции по настройке ведения журнала, настройке vertx с расположением XML-конфигурации из орехового дерева и выбору адреса узла кластера для привязки (полезно, если у вас несколько сетевых интерфейсов).