Windows 7을 실행하는 컴퓨터와 CentOS 6.4를 실행하는 컴퓨터간에 RabbitMQ 클러스터를 구축하려고합니다. Windows 컴퓨터는 Erlang 20.1 및 RabbitMQ 3.6.13을 실행 중이며 Linux는 Erlang 20.0 nad RabbitMQ 3.6.14RabbitMQ 클러스터 구축에 어려움이 있습니다.
처음에는 노드를 다른 노드에 연결할 수 없으므로 계속 Error: unable to connect to nodes ... : nodedown
메시지가 나타납니다.
here 제안 된 모든 시도 후 지금은 윈도우 하나에 리눅스 노드를 연결할 수 있습니다,하지만 난 rabbitmqctl -n [email protected][linux hostname] status
을 실행할 때 나는 아직도이 오류가 발생합니다 :
Clustering node '[email protected]' with '[email protected]'
Error: unable to connect to nodes ['[email protected]']: nodedown
DIAGNOSTICS
===========
attempted to contact: ['[email protected]']
[email protected]:
* unable to connect to epmd (port 4369) on cadts-1074: nxdomain (non-existing d
omain)
current node details:
- node name: '[email protected]'
- home dir: C:\Users\admlocal
- cookie hash: Zpo186ZWRxztrQSUSWhFUg==
가 나는 또한 내 클러스터를 구축 할 수없는했다 다른 방법으로 (Windows 노드에서 join_cluster
을 실행하여).
Cluster status of node '[email protected]'
[{nodes,[{disc,['[email protected]','[email protected]']}]},
{running_nodes,['[email protected]','[email protected]']},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{'[email protected]',[nodedown]},{'[email protected]',[]}]}]
및 리눅스 노드 : 여기
내가 창문 노드에서rabbitmqctl cluster_status
을 실행할 때 내가 무엇을 얻을 나는 윈도우에 리눅스 노드를 연결할 수 이었기 때문에
Cluster status of node '[email protected]'
[{nodes,[{disc,['[email protected]','[email protected]']}]},
{running_nodes,['[email protected]','[email protected]']},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{'[email protected]',[]},{'[email protected]',[]}]}]
하나, 나는 클러스터를 실행하고 내가 메시지를 보내려고하지만, 생각했을 때 failed to connect
오류가 발생했습니다. MQTT 플러그인을 paho.mqtt.c 라이브러리와 함께 사용하고 있습니다. Windows에서 아직 paho.mqtt.c 라이브러리를 컴파일 할 수 없어 Linux 노드에서 메시지를 보내고 받으려고했습니다. 리눅스 노드의 로그에는 실패한 연결에 관한 정보가 없으며, 마지막으로 로그에있는 것은 클러스터에 참가한 후 노드를 다시 시작했을 때 작성된 노드에 관한 정보입니다.
두 가지 문제가 관련되어 있는지 확실하지 않지만 우연이 아닐 수 있습니다. 클러스터에 참여하기 전에 Linux 노드에서 메시지를 보내고받을 수있었습니다.
UPDATE 여기
내가 지금에있어 어디 :
두 컴퓨터는 내가 리눅스 노드에서 rabbitmqctl -n [windows node name] status
를 실행할 수 있습니다, 서로 핑 (ping) 및 Windows 노드의 상태를 얻을 수로 Linux 노드에서 Windows 노드의 관리 인터페이스에 액세스 할 수 있습니다. 하지만 다른 방법으로는 할 수 없습니다. 리눅스 노드의 관리 인터페이스가 윈도우 하나 (관리 플러그인이 두 노드 모두에서 사용 가능)에로드되지 않으며 rabbitmqctl -n [Linux node name] status
이 동일한 노드 해제 오류를 반환합니다.
Linux 노드에서 Windows 노드 (연결에서 Windows 노드의 IP 주소 지정)를 통해 메시지를 보내어 전송 된 것인지 확인하고 Windows 노드,하지만 우리가 아무리 노력해도 오류를 연결하지 못했습니다. 연결할 주소가 "tcp : // localhost : 1883"일 때만 작동하는 것처럼 보입니다. Paho 라이브러리, MQTT 프로토콜 또는 RabbitMQ 자체. 한 컴퓨터에서 메시지를 보내고 다른 컴퓨터에서 메시지를받는 것이 게시자와 구독자가 모두 자신의 로컬 호스트에 연결된 경우 어떻게 작동하는지 알 수 없습니다.
내 노드 이름도'.intra.cea.fr'로 끝나야한다는 뜻입니까? 호스트 이름에 호스트 이름이 올바르게 설정되어 있습니다. 포트 4369가 차단 된 경우 노드 중 하나가 다른 노드와 통신 할 수 없습니까? 또는 포트가 두 노드 중 하나에서 차단 될 수 있습니까? 나는 이것이 왜 연결이 한 방향으로 작용하고 다른 방향으로 작용하지 않는지 설명 할 것입니다. –
클러스터의 이름이 [email protected] 인 것은 내가 정규화 된 도메인 이름을 사용하고 있으며 노드에도 FQDN이 있어야한다고 생각하게 만드는 이유는 어느 노드 에나 RABBITMQ_USE_LONGNAME이 설정되어 있습니까? ? 포트 4369가 편도로 차단되지만 다른 컴퓨터에서는 차단되지 않을 수 있으므로 두 컴퓨터에서 모두 확인해야합니다. – SeanN
RABBITMQ_USE_LONGNAME 변수에서 아무것도 찾을 수 없습니다 (리눅스에서'echo $ RABBITMQ_USE_LONGNAME' 시도, Windows에서'set' 또한 어느 컴퓨터에서든지 rabbitmq-env.conf 설정 파일을 찾을 수 없습니다), 찾을 수 없습니다 기본값에 대한 정보는 있지만 아무것도 변경하지 않았으므로 두 노드 모두에서 그 값으로 설정해야합니다. 4369 포트가 차단되었는지 어떻게 확인할 수 있습니까? 나는'lsof -n -i4TCP : 5672 | grep LISTEN'을 리눅스에서 사용하고 있지만 올바른 방법인지 확인하지 못하고 있습니다. –