Mnesia не может подключиться к другому узлу - PullRequest
4 голосов
/ 05 августа 2011

Я настраиваю кластер rabbitmq и столкнулся с проблемой во время одного шага в процессе. Это прямо из руководства по кластеризации rabbitmq.

root@celery:~# rabbitmqctl status
Status of node celery@celery ...
[{pid,20410},
 {running_applications,[{rabbit,"RabbitMQ","2.5.1"},
                        {os_mon,"CPO  CXC 138 46","2.2.4"},
                        {sasl,"SASL  CXC 138 11","2.1.8"},
                        {mnesia,"MNESIA  CXC 138 12","4.4.12"},
                        {stdlib,"ERTS  CXC 138 10","1.16.4"},
                        {kernel,"ERTS  CXC 138 10","2.13.4"}]},
 {os,{unix,linux}},
 {erlang_version,"Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:30] [hipe] [kernel-poll:true]\n"},
 {memory,[{total,25296704},
          {processes,9680280},
          {processes_used,9662720},
          {system,15616424},
          {atom,1099393},
          {atom_used,1082732},
          {binary,89768},
          {code,11606637},
          {ets,726848}]}]
...done.
root@celery:~# rabbitmqctl cluster_status
Cluster status of node celery@celery ...
[{nodes,[{disc,[celery@celery]}]},{running_nodes,[celery@celery]}]
...done.
root@celery:~# rabbitmqctl stop_app
Stopping node celery@celery ...
...done.
root@celery:~# rabbitmqctl reset
Resetting node celery@celery ...
...done.
root@celery:~# rabbitmqctl cluster worker1@worker1
Clustering node celery@celery with [worker1@worker1] ...
Error: {failed_to_cluster_with,[worker1@worker1],
                               "Mnesia could not connect to some nodes."}

Каковы возможные причины, по которым один узел не сможет подключиться к другому?

Вот руководство, которому я следую: http://www.rabbitmq.com/clustering.html

Ответы [ 3 ]

5 голосов
/ 05 августа 2011

Я прыгнул в канал #rabbitmq на freenode.Далее следует обсуждение:

14:29 shakakai: hey all, i'm having a little issue with clustering rabbitmq /6194230/mnesia-ne-mozhet-podklychitsya-k-drugomu-uzlu
14:30 shakakai: has anyone run into that problem before?
14:30 daysmen has left IRC (Read error: Connection reset by peer)
14:30 antares_: shakakai: make sure that epmd is running on every node
14:30 antares_: shakakai: and that port it uses (4369) is open in your firewall
14:31 |Blaze|: shakakai: is your dns correct?  Can you ping worker1 from celery and celery from worker1
14:31 shakakai: |Blaze|: hmm...i'll check
14:31 daysmen has joined (~quassel@host-84-13-157-50.opaltelecom.net)
14:32 shakakai: |Blaze|: this is where I'm a little confused, the rabbitmq nodename is worker1@worker1 but the fqdn to ping the box is "ping worker1.mydomain.com"
14:33 |Blaze|: can you "ping worker1"
14:34 shakakai: |Blaze|: no
14:34 |Blaze|: k, you'll need to fix that
14:34 hyperboreean has left IRC (Ping timeout: 250 seconds)
14:37 shakakai: |Blaze|: gotcha, so I setup a hosts file and i should be good
14:37 |Blaze|: yup
14:37 |Blaze|: in both directions

TL; DR

Убедитесь, что вы можете пропинговать имя кролика из каждого кластера, который вы кластеризуете.Если вы не можете установить файл хостов для каждого имени кролика.

0 голосов
/ 03 октября 2013

Одна вещь, которую я прочитал, заключается в том, что файл cookie erlang должен быть на всех узлах кластера, чтобы они могли обмениваться данными. я считаю, что он живет в /var/lib/rabbitmq/.erlang.cookie

0 голосов
/ 19 января 2013

Есть несколько вещей, которые нужно проверить, прежде чем вы сможете настроить кластер для правильной работы: 0) Убедитесь, что вы используете одну и ту же версию rabbitmq на каждом узле. 1) Настройте сеть, пока вы не сможете пропинговать каждый сервер друг от друга. 2) cookie - вы должны получить точно такой же erlang cookie в файле .erlang.cookie на каждом сервере. Одна хитрость полезна в том, чтобы попробовать эту команду с одного узла, чтобы увидеть, можно ли получить другой с rabbitmq rabbitmqctl eval 'net_adm: ping(кролик @ othernode). '

это должно сказать Pang, если это nok или pong, если все в порядке, будьте осторожны, чтобы не забыть точку рядом с концом выражения eval.

Я понялработает нормально после нескольких часов неудачных испытаний.

3) Имейте в виду, что при перезапуске узла кластера может возникнуть проблема, если этот узел не был последним, который был остановлен - он не запустится до последнегоэта остановка была перезапущена.Когда все вышеперечисленное (от 0 до 2) верно, 3 может быть основной причиной вашей проблемы ...

Надеюсь, эта помощь, ура, jb

...