2016-09-24 10 views
0

사용자가 로그인 할 수있는 일반적인 SaaS 제품을 개발 중이며 을 수행합니다.RabbitMQ - 액세스 제어 : 단독/자동 삭제 대기열 만 허용

프런트 엔드는 JS for web과 Android for smartphones입니다. 프론트 엔드는 무언가가 업데이트되면 알림을 받아야하므로 사용자가보기를 새로 고칠 수 있습니다. 이 목적으로 RabbitMQ를 사용하려고 생각하고 있습니다.

제 제안은 각 사용자마다 고유 한 교환이 있다는 것입니다. 사용자에게 흥미로운 일이 발생하면 메시지가 그의 거래소로 전송됩니다. 그런 다음 프론트 엔드가 로그인하면 독점/자동 삭제를 생성하여 교환에 바인딩 할 수 있습니다. 따라서 각 프론트 엔드 세션에는 고유 한 자동 삭제 대기열이 있습니다. 따라서 모든 액티브/온라인 프론트 엔드는 각자 고유의 개인 큐를 가지고 있기 때문에 알림이 검색됩니다. 이는 예상되는 동작입니다.

내 질문에 : 어떻게하면 프론트 엔드가 다른 종류의 (아마도 내구성) 대기열을 선언하지 못하게 할 수 있습니까? 프론트 엔드는 독점/자동 삭제 대기열 만 생성 할 수 있어야합니다. 설명서 (https://www.rabbitmq.com/access-control.html)를 읽었지만 직접 지원하지 않는 것 같습니다.

답변

0

rabbitmq_auth_backend_http 커뮤니티 플러그인을 사용하고 RabbitMQ가 각 요청을 인증하기 위해 호출하는 사용자 정의 웹 앱을 만들 수 있습니다. 웹 응용 프로그램은 매우 간단하며 세 가지 끝점 만 구현하면되며 원하는 언어로 작성할 수 있습니다.

자세한 내용은 여기를 참조하십시오. https://github.com/rabbitmq/rabbitmq-auth-backend-http 고유 한 요구 사항을 지원하도록 사용자 정의 할 수있는 Django 앱이 예제 폴더에 있습니다.

또한 모든 사용자에게 단일 주제 교환을 사용할 수 있습니다. 각 사용자는 해당 주제 교환에 바인드 된 고유 대기열을 가질 수 있으므로 사용자 키가있는 모든 메시지는 교환을 통해 대기열로 보내집니다. 권한 부여 웹 응용 프로그램이 사용자가 메시지를 게시하려고하는 주제 키를 인식하고 있으므로 사용자 정의 권한 부여 API를 사용하여 권한이 부여 된 대기열 만 게시하고 등록 할 수 있습니다.