2012-10-01 2 views
0

현재 사용자 위치를 기준으로 타임 라인에 메시지를 보내고 읽을 수있는 모바일 응용 프로그램을 설계하고 있습니다. 실제 개발 버전은 ActiveMQ을 사용하여 메시지를 보내고 소비하지만 아직 끝나지 않았습니다. 개발을 계속하기 전에 향후 문제를 피하기 위해 아키텍처가 어떻게 정의되어야하는지 정의하는 것을 선호합니다. 나는 이것이 올바른 접근법인지는 모르겠지만 여기에 내가 생각한 바가있다 :메시지 큐를 사용하는 위치 기반 메시지 시스템 용 시스템 아키텍처

  • 모든 사용자는 메시지를 큐에 보내는 생산자이다. 대기열 이름은 사용자의 고유 ID 일 수 있습니다.
  • 사용자가 충분히 가까이에 있으면 다른 사용자가 대기열에 가입 할 수 있습니다. 여기에는 주제과 같은 사용자 큐 그룹이 포함됩니다. 이 대기열은 동적이어야하며 고정 된 반경 안에있는 사용자를 검색하여 생성되며 원의 중심은 소비자의 위치입니다. 각 사용자는 자신의 주제가 또는 과 같습니다 (Twitter의 타임 라인과 매우 비슷한 개념). 이는 각 사용자 대기열에 둘 이상의 소비자가 있음을 의미합니다.

클라이언트 측에서는 Objective-C 스톰프 클라이언트를 큐와의 연결 프로토콜로 사용하고 있습니다.

제 질문은이 문제에 대한 좋은 접근 방법입니까? 가까운 사용자에 대한 사용자 가입이 ActiveMQ 및 주제으로 실현 가능한 아키텍처인지 확신 할 수 없습니다. 이 타임 라인 구독 문제에 대한 제안 사항이 있습니까? 다른면에서는 모든 사용자가 자체 대기열의 제작자가되어야한다는 것은 분명하지만 어쩌면 나도 틀렸을 것입니다.

편집은

언급, 링크, 책, 등의 주제에 대한 자세한 정보와는 높게 평가 될 것입니다.

답변

1

, 이에 대한 생각 몇 ... 대신 등 "방송"으로 큐 다수의 가입자에게 메시지의

  • 사용 주제
  • 동적
  • 기반 구독이
  • 는 지리 공간으로 뭔가를 사용하는 것이 나에게 JMS 기술에 적합처럼 보일 (위치 기반 일명) 색인/검색 내장 (같은 mongoDB 또는 공간 데이터베이스)
+0

나는 이것에 대해 생각 해왔다. 그리고 나는 생각을 가지고있다.나는 직접적인 사용자 커뮤니케이션이 아닌 위치 기반 대화방을 생성하기 위해 대기열 대신 주제를 사용할 것을 생각하고 있었다. (나는 여전히 끈기를 다루어야한다.) 또한 가장 가까운 대화방을 검색하기 위해 PostgreSQL 대신 geospatial 인덱스를 사용하여 mongoDB에 해당 객실을 저장하는 것이 더 좋다고 생각합니까? – amb

0

하나의 문제는 새로운 사용자를 추가한다는 것은 새로운 대기열을 추가한다는 것입니다. 어떻게 된거 야? 이 시스템이 지원할 수있는 사용자 수에 제한이 없습니까?

사용자가 주제로 보내고 소비자로 등록 할 메시지를 생성하도록 할 수 있습니다.

또 다른 접근법은 비 차단 입출력 및 Netty입니다. 위치하지 않습니다에 최고 떨어져

+0

홍보 그 해결책을 제시하는 것은 사용자가 자신이있는 지역을 대표하지 않는 기존 주제에 등록해야한다는 것입니다. 그것은 기존의 전화 셀과 같을 것인데, 사용자는 고정 된 셀을 입력하거나 빠져 나오지 만, 그 중심에 있지는 않습니다. – amb

+0

레지스트리를 중앙에 배치해야합니다. – duffymo

관련 문제