2016-07-21 5 views
0

저는 네트워킹에있어 새로운 사람이고, 의미 론적으로 익사하고 있습니다.VM을 호스트에 연결하는 RabbitMQ

Java 응용 프로그램을 실행하는 VM이 ​​있습니다. 이상적으로는 RabbitMQ 큐를 통해 호스트로부터 입력을받습니다. Java 응용 프로그램은 결과를 호스트 응용 프로그램에서 사용할 다른 포트의 다른 RabbitMQ 대기열에 배치합니다. 그것을 조금 연구 한 후, RabbitMQ가 다른 포트에 리스너가있는 localhost 공간에만 존재하는 것처럼 보입니다.

2 개의 RabbitMQ 서버가 동일한 포트에서 수신 대기하고 있습니까 (VM 및 호스트의 각각 하나). 또는 두 응용 프로그램이 동일한 IP 주소/포트를 가리키는 동안 하나의 RabbitMQ 서버 만 실행하면됩니까?

또한 내가 이해할 수있는 localhost에 있지 않은 한 'guest/guest'로 연결할 수 없다는 것을 읽었습니다. 그러나 RabbitMQ는 localhost 이외의 다른 것으로 구성/연결될 수 있습니까?

몇 시간 동안 연구했지만 설명서에는 직접 대답/방법 안내가 나와 있지 않습니다. 네트워크 경험이 부족한 것 같습니다. 누구나이 질문에 대해 자세히 설명하거나 기사 나 도움이되는 가이드를 알려주면 많은 의무가 있습니다.

P. - 컨텍스트를 제공하기 위해 표시 할 코드를 모르겠습니다. 알려 주시면 코드를 게시물로 편집하겠습니다.

답변

1

RabbitMQ는 모든 네트워크 인터페이스에서 TCP 포트 5672를 즉시 수신합니다. 여기에는 "루프백"인터페이스 (자기 자신에 대한 빠른 연결을 허용)와 다른 원격 호스트 (VM 포함)가 볼 수있는 인터페이스가 포함됩니다.

당신의 경우에는 두 방향 모두에 대해 하나의 RabbitMQ 인스턴스가 필요할 것입니다. 호스트의 응용 프로그램은 하나의 대기열에 메시지를 게시하고 VM의 Java 응용 프로그램은 해당 대기열의 메시지를 소비하고 그 결과를 두 번째 대기열로 보냅니다. 이 두 번째 대기열은 호스트의 응용 프로그램에서 사용할 수 있습니다.

사용자의 경우 적절한 권한을 가진 새 사용자를 만들어야합니다. 이 내용은 access control article에 설명되어 있습니다. 사용자를 만들려면 관리 웹 UI (관리 플러그인을 사용한 후) 또는 rabbitmqctl 명령 줄 도구를 사용하여 사용자를 만들 수 있습니다.

마지막 부분은 호스트와 VM 간의 네트워킹입니다. 그것은 정말로 당신이 사용하는 기술에 달려 있습니다. 바로 사용할 수 있거나 VM이 네트워크에 연결되는 방법을 구성해야 할 수도 있습니다. 하이퍼 바이저의 설명서를 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 그것이 사물을 복잡하게하는 것을 총체적으로 알았다. Rabbit은 로컬 호스트에 '살아'있지만 나머지 네트워크에서는 여전히 볼 수 있습니다. 내가해야만했던 것은 설정 파일을 수정하는 것이 었습니다. 또한 Rabbit-to-Rabbit 설정은이 사용 사례에 적합합니다. 시간과 답변에 감사드립니다. – fhornplayer

+0

여러분을 환영합니다! 이 대답이 당신을 만족 시킨다면 받아 들일 수 있습니까? –

+0

틀림없이! 그걸 잊어 버린 나의 실수. – fhornplayer

관련 문제