2013-08-01 4 views
2

저는 거대한 트래픽 흐름을 처리해야하는 다중 계층 비동기 프로젝트에서 사용하기 위해 LMAX Disruptor를 처음 사용했습니다.다중 LMAX Disruptor 사용

요청이 플랫폼에 전달되어 SMS를 보내면 요청이 정리되고 간단한 오류가 있는지 확인되고 기록됩니다.

SMS를 보내는 클라이언트와 관련된 다양한 기타 정보를 가져 와서 분석하고 기타 매개 변수가 SMS 정보에 추가됩니다.

올바른 라우팅 경로가 분석되고 선택됩니다. 그런 다음 SMS 정보에서 플랫폼 별 프로토콜 매개 변수가 설정되고 라우터에 제출됩니다.

이렇게하면 로그 전달, 청구서 작성, 재 시도 및 기타 여러 가지 방법으로 SMS 배달을 수신하고 처리하는 절차가 진행됩니다. 모든 단계에서 프로그램 흐름에서 동시 또는 순차적 실행이 수행됩니다. 이것이 프로젝트의 높은 수준의 견해라면 LMAX disruptor 프레임 워크를 사용하여 다양한 모듈간에 의사 소통 (sms-info)해야합니까?

그렇다면 생성해야 할 Disruptor의 righbuffer는 몇 개입니까?

내 이해가 맞다면 모든 레이어/기능간에 새로운 ringbuffers가 분리되어 있습니까?

POJO 객체를 링 버퍼에 쓸 수 있습니까? 이 기능을 클러스터 된 환경에 어떻게 적용 할 수 있습니까? 일부 문서를 읽고이 프레임 워크에서 일부 비디오를 본 적이 있지만이 프레임 워크를 사용하여 솔루션을 시각화 할 수는 없습니다.

모든 지침/예제/비주얼 다이어그램/문서 또는 이것에 대한 아이디어는 많은 도움이 될 것입니다.

답변

2

우리는 혼란을 조금 해본 결과 높은 성능, 구성 가능한 병렬 실행 흐름을 가능하게하기 위해이를 라이브러리로 사용하고 있습니다.

주어진 시나리오에서 볼 수있는 것은 두 개의 링 버퍼 구성입니다. 하나는 SMS를 보내기위한 것이고 다른 하나는 SMS를 받기위한 것입니다.

복잡한 구성이 필요한 경우 송신 측이나 수신 측에서 링 버퍼를 계단식으로 연결할 수도 있습니다.

마찬가지로 수신부는 스테이지 구성을 가질 수 enter image description here 같은 이벤트 단계 흐름을 가질 수 링 버퍼 구성을 전송하는 SMS.

POJO에 관한 질문 사항. 링 버퍼에는 POJO를 처리를위한 페이로드로 넣을 수있는 이벤트 버킷 개념이 있으며 Event Translator를 사용하여 이벤트 버킷을 채울 수 있습니다.

+0

이제는 응용 프로그램에서 Disruptor를 구현 중입니다. 질문을 게시했습니다. http://stackoverflow.com/questions/18375147/using-disruptor-in-the-java-servlet-and-handling-multiple - 사건 –