2012-05-14 4 views
0

나는 응용 프로그램을 작성 중이며 모든 클라이언트가 특정 대기열로 메시지를 푸시하고 인증 된 사용자 만 대기열에서 메시지를 사용할 수 있도록 허용 할 수 있는지 궁금한가요? 나는 이것에 관해 무엇인가 발견 할 수 없다 :/RabbitMQ - 보안/인증

기본적으로 나의 모델은 다음과 같다 : 클라이언트는 모두 같은 대기열에 연결하고 그것에 메시지를 밉니다. 또한 각 클라이언트는 자신이 메시지를 수신하는 큐를 등록해야합니다 (각 클라이언트는 고유 한 큐를가집니다).

기본적으로 클라이언트는 하나의 대기열에 메시지를 보내고 나의 서버 응용 프로그램에서만 데이터를 읽고 데이터를 처리하고 특정 사용자 대기열에 대한 회신을 보낼 수 있어야합니다 (해당 사용자 및 유일한 서버의 음성으로 만 읽어야합니다) 그것에 게시하십시오).

맞습니까? 사람이 어디 것들/예/자습서 그래서

답변

1

에 대한 추가 정보를 찾기 위해 올바른 방향으로 날 조종 할 수 있습니다, 그것은 상자 밖으로 가능한 AFAIK은 아니지만, 당신은 두 가지 옵션이 있습니다 :

  1. 당신은 쓸 수를
  2. 가상 호스트 2 개를 만들고 각 호스트에서 교환 할 수 있습니다 (쓰기 용으로 읽기 가상 호스트 B 용 가상 호스트 A). 가상 호스트 B에서 Exchange를 생성하고 라우팅 키를 사용하여 특정 큐에 바인딩합니다. 가상 호스트 A에서 페더레이션 교환을 생성합니다 [1]. 요약 : 연합 교환기는 업스트림 교환기로 맵 교환을 허용합니다. 즉, 연결된 교환기가 업스트림 교환기에서 모든 메시지를 수신하게됩니다. 따라서 가상 호스트 A에서 Exchange E1을 만들고 가상 호스트 B에서 E2를 교환하도록 매핑하십시오. 각 가상 호스트마다 다른 사용자를 생성 할 수 있습니다.

[1] : http://www.rabbitmq.com/federation.html - 그것은 바로 이동 예제가 포함되어 연합 플러그인에 대한 매뉴얼입니다.

+0

따라서 무단 액세스를 방지하는 간단한 방법이 없습니까? 대기열에서 메시지를 가져 와서 처리하는 소수의 작업자 노드가 메시지를받을 것이라고 확신하고 싶기 때문에 여기에 내 관심을 보길 바랍니다. 다른 큐가 동일한 대기열에 연결하는 방법을 찾으면 일부는 잃어 버릴 것입니다. 그 (것)들에 의해 recieved이었을 메시지. 그리고 클라이언트 장치가 사용자 장치에서 호스팅되기 때문에 대기열은 모든 사람으로부터 메시지를 수신 할 수 있어야합니다. – user962563

+2

죄송합니다 더 간단한 방법입니다 :) 관리 플러그인 (http://www.rabbitmq.com/management.html)을 사용하는 경우 가상 호스트 탭으로 이동하여 사용자를 추가 할 수 있습니다. "regexp 쓰기"및 "read regexp"당신은 여기서 큐 이름을 전달할 수 있습니다. 또는 rabbitmqctl에서 "set_permissions"명령을 사용할 수 있습니다. – whiter4bbit

+0

고마워요.이게 정확히 필요한 것 같습니다. – user962563