Я хочу настроить высокую доступность на узлах rabbitmq. В настоящее время у меня есть один сервер, на котором работает rabbitmq, однако я собираюсь добавить еще один. Вот текущая конфигурация, которую мы используем в приложении nodejs.
rabbitMQ: {
url: 'amqp://user:password@node1:5672'
},
1) Нужно ли мне настраивать кластер на обоих узлах rabbitmq (node1 и node2)?
2) Какой новый URL-адрес мне нужно включить в файл конфигурации?
решение1
Команда RabbitMQ следит заэтот список рассылкии лишь иногда отвечает на вопросы на StackOverflow.
Вы не предоставляете данные о том, какую версию RabbitMQ, версию Erlang, операционную систему или библиотеку Node.js вы используете. Пожалуйста, в будущем всегда предоставляйте людям такие данные, чтобы им было легче помогать.
Поскольку вы новичок в кластеризации RabbitMQ, я настоятельно рекомендую вам прочитать нашу документацию по ней - https://www.rabbitmq.com/clustering.html
Нужно ли мне настраивать кластер на обоих узлах rabbitmq (node1 и node2)?
Оба узла должны работать под управлением одной и той же версии RabbitMQ и Erlang. Вы создаете кластер в соответствии с документацией, выполняя команды кластеризации на одном узле. Если все прошло успешно, команда rabbitmqctl cluster_status
это укажет.
2) Какой новый URL-адрес мне нужно включить в файл конфигурации?
Я предполагаю, что вы используетеsquaremo/amqp.узелбиблиотека. Эта библиотека не поддерживает предоставление нескольких хостов в URI соединения. Вы должны реализовать это самостоятельно, и вам также придется реализовать восстановление соединения самостоятельно. Пожалуйста, см.эта проблема GitHub.
Однако одна библиотека, которая поддерживает несколько узлов и повторное подключение, называетсяrascal
. Вы можете использовать rascal
или заимствовать код из него (вот, например).