2010-07-23 7 views
4

Java에서 자체 메시지 대기열 구현을 개발할 예정이며 안정성과 중복성을 제공하기 위해 여러 서버에 대기열 컨텐츠를 배포해야합니다.Java의 분산 데이터 구조

그 외에도 큐 내용을 파일 시스템에 유지해야합니다.

누군가 내 큐 내용을 보관하는 데 가장 적합한 분산 데이터 구조 구현이라고 말할 수 있습니까?

참고 : 해당 데이터 구조가 나에게 메시지 주문 기능을 제공해야합니다. 즉, 도착한 순서대로 메시지를 받아야합니다. 또한 메시지를 읽는 동안 첫 번째 사용자가 읽기 프로세스를 완료 할 때까지 다른 사용자가 읽을 수 없도록 '고정 된'상태 여야합니다.

+3

기존 메시지 대기열 구현을 사용하지 않고 자체 메시지 대기열 구현을 구현해야하는 특별한 이유가 있습니까? 귀하가 보았던 기존 솔루션과 귀하가 작동하지 않는 이유를 알려 주시면 귀하의 실제 요구 사항을 파악하고 귀하에게 가장 적합한 솔루션을 결정하는 데 도움이 될 수 있습니다. –

+0

[Hazelcast Distributed Queue] (http://hazelcast.com/docs/2.0/manual/single_html/#Queue) 만 사용하면됩니다. 지속될 수있는 분산 맵 구현에 의해 뒷받침되는 순수한 Java peer2peer 대기열입니다. –

답변

6

Java 용 메시지 대기열 구현을 많이 보았습니까? Wikipedia lists 많은 오픈 소스 구현. 기존의 철저히 테스트 된 메시지 대기열이 대기열 컨텐츠를 보관하는 가장 좋은 장소라고 생각합니다 :)

자신 만의 글을 쓰고 싶다면 자신의 요구에 가장 적합한 오픈 소스 솔루션부터 시작하십시오. 데이터 구조가 잘 작동하는지에 대한 대부분의 질문에 답하십시오.

+0

Thanks Peter, 몇 가지 메시지 큐 구현을 통해 신뢰성있는 메시징 및 영구 가입 기능을 찾고있었습니다. 그들 대부분은 메시지 및 브로커 상태 저장을 위해 파일 기반 지속성을 사용하고있는 것 같습니다. 하지만 여기서는 MQ 백 엔드에 분산 된 저장소를 사용할 계획이며 많은 분산 저장소 유형과 함께 '연결 가능'하게 만들고 싶습니다. 그 외에도이 대기열에 대한 풍부한 전송 프로토콜 (예 : REST, XMPP)에 대한 지원을 제공해야합니다. 이러한 기능은 구현하기가 어렵지만 적어도 시도해 볼 필요가 있습니다. 감사합니다. –

+3

ActiveMQ는 플러그 형 저장소 백엔드 및 전송 메커니즘 (REST 및 XMPP 포함)을 지원합니다. 이렇게하면 고유 한 저장소를 구현하고 완전한 메시지 대기열 구현을 작성하지 않고도 제공된 구현 중 어느 것도 전송할 수없는 유연성을 얻을 수 있습니다. – Mark

+1

@Dunith Dhanushka "분산 저장 장치"란 무엇을 의미합니까? ActiveMQ를 사용하면 다양한 방식으로 데이터를 저장할 수 있으며 마스터/슬레이브 복제와 같은 클러스터링 옵션도 지원합니다. –