Назад | Перейти на главную страницу

Высокая доступность, отработка отказа на Rabbitmq в nodejs

Я хочу настроить высокую доступность на узлах rabbitmq, в настоящее время у меня есть один сервер, на котором запущен rabbitmq, однако я собираюсь добавить еще один. Вот текущая конфигурация, которую мы используем в приложении nodejs.

rabbitMQ: {
  url: 'amqp://user:password@node1:5672'
},

1) Нужно ли мне настраивать кластер на обоих узлах rabbitmq (node1 и node2)?

2) Какой будет новый URL-адрес, который я должен включить в файл конфигурации

Команда 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.node библиотека. Эта библиотека не поддерживает предоставление нескольких хостов в URI подключения. Вы должны реализовать это самостоятельно, и вам также придется самостоятельно реализовать восстановление соединения. Посмотри пожалуйста эта проблема GitHub.

Однако одна библиотека, которая поддерживает несколько узлов и повторное подключение, называется rascal. Вы можете использовать rascal или позаимствовать код из него (вот например).