현재 사용자 위치를 기준으로 타임 라인에 메시지를 보내고 읽을 수있는 모바일 응용 프로그램을 설계하고 있습니다. 실제 개발 버전은 ActiveMQ을 사용하여 메시지를 보내고 소비하지만 아직 끝나지 않았습니다. 개발을 계속하기 전에 향후 문제를 피하기 위해 아키텍처가 어떻게 정의되어야하는지 정의하는 것을 선호합니다. 나는 이것이 올바른 접근법인지는 모르겠지만 여기에 내가 생각한 바가있다 :메시지 큐를 사용하는 위치 기반 메시지 시스템 용 시스템 아키텍처
- 모든 사용자는 메시지를 큐에 보내는 생산자이다. 대기열 이름은 사용자의 고유 ID 일 수 있습니다.
- 사용자가 충분히 가까이에 있으면 다른 사용자가 대기열에 가입 할 수 있습니다. 여기에는 주제과 같은 사용자 큐 그룹이 포함됩니다. 이 대기열은 동적이어야하며 고정 된 반경 안에있는 사용자를 검색하여 생성되며 원의 중심은 소비자의 위치입니다. 각 사용자는 자신의 주제가 또는 과 같습니다 (Twitter의 타임 라인과 매우 비슷한 개념). 이는 각 사용자 대기열에 둘 이상의 소비자가 있음을 의미합니다.
클라이언트 측에서는 Objective-C 스톰프 클라이언트를 큐와의 연결 프로토콜로 사용하고 있습니다.
제 질문은이 문제에 대한 좋은 접근 방법입니까? 가까운 사용자에 대한 사용자 가입이 ActiveMQ 및 주제으로 실현 가능한 아키텍처인지 확신 할 수 없습니다. 이 타임 라인 구독 문제에 대한 제안 사항이 있습니까? 다른면에서는 모든 사용자가 자체 대기열의 제작자가되어야한다는 것은 분명하지만 어쩌면 나도 틀렸을 것입니다.
편집은
언급, 링크, 책, 등의 주제에 대한 자세한 정보와는 높게 평가 될 것입니다.
나는 이것에 대해 생각 해왔다. 그리고 나는 생각을 가지고있다.나는 직접적인 사용자 커뮤니케이션이 아닌 위치 기반 대화방을 생성하기 위해 대기열 대신 주제를 사용할 것을 생각하고 있었다. (나는 여전히 끈기를 다루어야한다.) 또한 가장 가까운 대화방을 검색하기 위해 PostgreSQL 대신 geospatial 인덱스를 사용하여 mongoDB에 해당 객실을 저장하는 것이 더 좋다고 생각합니까? – amb