2012-06-08 3 views
3

가 나는 RabbitMQ 서버에 메시지를 수신 한 후 전송하고 간단한 RabbitMQ 테스트 프로그램이 있습니다. 두 대의 컴퓨터가 있는데 코드가 작동하는지 여부는 RabbitMQ 서버를 호스팅하는 컴퓨터에 따라 다릅니다. 여기 내 상황이 (내 MS 페인트를 변명)입니다 : 컴퓨터 A는 A에서 메시지를 보내는 서버를 호스팅하고 코드를 실행RabbitMQ : 간단한 테스트 프로그램은 가능한 네트워크 문제

enter image description here

  1. 경우 작동합니다.
  2. 컴퓨터 A가 서버를 호스팅하고 컴퓨터 B에서 코드가 실행되어 B에서 A로 메시지를 보내면 작동합니다. 컴퓨터 B 서버를 호스팅하고 내 코드 A에서 B로 메시지를 전송, 컴퓨터 A에서 실행되는 경우
  3. , 나는 "지정된 엔드 포인트 중에 도달 할 수 없었다"라는 예외를 얻을.
  4. 컴퓨터 B가 서버를 호스팅하고 코드를 실행하여 B에서 B로 메시지를 보내면 작동합니다. 시나리오 # 3 나를 위해 작동하지 않는 이유

나는 알아낼 수 없습니다.

  • 내 시나리오 중 3 가지가 정확히 예상대로 작동하기 때문에 코드라고 생각하지 않습니다.
  • 두 컴퓨터에서 방화벽을 끈 채로이 테스트를 실행했기 때문에 방화벽 문제가 아닌 것 같습니다.
  • 컴퓨터 B의 RabbitMQ 서버에 문제가 있다고 생각하지 않습니다. 시나리오 4와 잘 통신 할 수 있기 때문입니다.
  • 시나리오 # 3을 시도한 후에 컴퓨터 B에서 RabbitMQ 로그 파일을 검사했지만 시도한 연결에 대해 아무 것도 표시하지 않습니다. 컴퓨터 A는 요청을 보낼 때 단순히 컴퓨터 B를 볼 수 없다고 생각합니다.

내 질문에, 매우 일반적으로, 내 문제를 지적 할 수있는 것이 무엇을 찾고 있습니까? 컴퓨터 A에서는 선택되지만 컴퓨터 B에서는 선택되지 않은 설정이 있어야합니다. 컴퓨터 B에는 Erlang 및 RabbitMQ의 기본 설치가 있습니다. 나는 컴퓨터 A도 기본값으로 설정되어 있다고 확신한다 (나는 최근에 그것을 설치하지 않았다).

도와주세요. A가 B에 연결을 시도 할 때

답변

2

문제는 그렇게 만 분명하다 : A는 IP 주소로 B의 호스트 이름을 확인할 수 있습니다

  • 확인하는 것이. 이에 대해서는 nslookup b을 사용하십시오.
  • A가 B에 도달 할 수 있는지 확인하십시오. ping b을 실행하면 도움이됩니다.
  • 텔넷을 사용하여 A에서 B의 RabbitMQ 포트 (아마 5672) : telnet b 5672에 연결하십시오. 빈 화면이 나타나면 연결이 수락되었음을 의미합니다. 나는 당신이 어떤 종류의 실수를 범할 것이라고 확신합니다. 먼저 b의 IP 주소를 사용하여이 트릭을 시도한 다음 작동하면 b의 호스트 이름으로 시도하여 해결되는지 확인하십시오.

요약하면 순수한 네트워크 검사 (RabbitMQ가 필요 없음)로 스트립하고 거기에서 작업하십시오.

+0

원래 방화벽 규칙을 잘못 설정했습니다. 이제 작동합니다. 조언 해주셔서 감사합니다. – user1214135

관련 문제