Высокая доступность, отказоустойчивость на Rabbitmq в nodejs

Высокая доступность, отказоустойчивость на Rabbitmq в nodejs

Я хочу настроить высокую доступность на узлах 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или заимствовать код из него (вот, например).

Связанный контент