2014-01-09 3 views
3

Несколько вопросов о RabbitMQ v3.1.5 кластеризация. У меня есть кластер с 2-мя узлы, rabbitmq.config, как это на обоих узлах:RabbitMQ несогласованный кластер

[ 
    {rabbit, [ 
    {cluster_nodes, {['[email protected]', '[email protected]'], ram}}, 
    {tcp_listeners, [5674]} 
    ]} 
]. 

я уже видел вопрос, как это, и теперь я снова смотреть его: Когда иногда весь кластер выключения, в случае, если второй узел (rmq02) начинается перед первым (rmq01), это забывает "о rmq01:

[[email protected] rabbitmq]# rabbitmqctl cluster_status 
Cluster status of node '[email protected]' ... 
[{nodes,[{disc,['[email protected]']}]}, 
{running_nodes,['[email protected]']}, 
{partitions,[]}] 
...done. 

После этого первого узла (rmq01) не может начаться из-за rmq2 не согласен о кластеризации:

{"init terminating in do_boot",{rabbit,failure_during_boot,{error,{inconsistent_cluster,"Node '[email protected]' thinks it's clustered with node '[email protected]', but '[email protected]' disagrees"}}}} 

Я пытался добавить rmq01 к rmq02, но, кажется, я должен stop_app перед этим:

[[email protected] rabbitmq]# rabbitmqctl join_cluster [email protected] 
Clustering node '[email protected]' with '[email protected]' ... 
Error: mnesia_unexpectedly_running 

Здесь я вижу, что rmq02 забыл о rmq01:

[[email protected] ~]# cat /var/lib/rabbitmq/mnesia/rabbit\@rmq2/cluster_nodes.config 
{['[email protected]'],['[email protected]']}. 

Между тем на rmq01 (правильная конфигурация):

[[email protected] ~]# cat /var/lib/rabbitmq/mnesia/rabbit\@rmq1/cluster_nodes.config 
{['[email protected]','[email protected]'],['[email protected]']}. 

Вопросы:

  1. Является ли это нормальным rmq02 забывает о rmq01, или у меня есть некоторые missconfiguration? Почему это происходит?
  2. В случае, если это нормально, можно ли установить здоровье кластера без rmq02 простои (я имею в виду без stop_app)?

ответ

11

Я нашел способ решить вопрос # 2, чтобы исправить здоровье кластера без простоев, нам нужно удалить все данные Mnesia на непоследовательной узле:

[[email protected] ~]# rm -rf /var/lib/rabbitmq/mnesia/ 

[[email protected] ~]# service rabbitmq-server start 
Starting rabbitmq-server: SUCCESS 
rabbitmq-server. 
[[email protected] ~]# rabbitmqctl cluster_status 
Cluster status of node '[email protected]' ... 
[{nodes,[{disc,['[email protected]']},{ram,['[email protected]']}]}, 
{running_nodes,['[email protected]','[email protected]']}, 
{partitions,[]}] 
...done. 

Я до сих пор не понимаю, как чтобы избежать этого сценария (вопрос № 1), возможно, некоторые настройки mnesia помогут.

+0

очень полезно. :) –

+1

Примечание: для окон папка mnesia находится в 'C: \ Users \ \ AppData \ Roaming \ RabbitMQ \ db'. Я удалил эту папку на узле, на котором я не смог вернуться, и это сработало. Благодаря! –

+0

Я видел «error, corrupt_cluster_status_files» в '/ var/log/rabbitmq/startup_log'. Исправлена ​​ошибка удаления каталога mnesia и перезапуска службы. – Waseem

Смежные вопросы