2012-01-31 3 views
2

X 유사한 메시지가 준비되거나 Y 시간이 경과 할 때까지 엔터프라이즈 서비스 버스 에서 메시지 소비를 지연시킬 수있는 방법이 있습니까?엔터프라이즈 서비스 버스 (.NET 맛) - 한 번에 메시지 묶음 사용

내 목표는 소비자의 여러 메시지를 직렬화하고 집계하여 메시지를 저장하지 않고 대신 배치를 사용하는 것입니다.

현재 Rhino ESB를 사용하고 있습니다. 이 ESB 나 다른 사람이 알고있는 옵션에 대해 알고 싶습니다.

감사합니다.

답변

0

NServiceBus에서는 한 번의 호출로 여러 개의 메시지를 보낼 수 있습니다. 이는 각 메시지가 개별적으로 전송 된 것처럼 처리됩니다. 다른 옵션은 사가 또는 내장 된 장기 실행 워크 플로를 사용하는 것입니다. 메시지 상태를 고유하게 식별하고 상관 시키며 시간을 추적하는 시간 초과 메커니즘을 활용할 수 있습니다.

+0

@Adams, 첫 번째 옵션을 구현할 수 없습니다. ESB에서 삭제할 정보를 보내는 REST 엔드 포인트를 사용하는 장치가 수십 (수십에서 수백 개) 있다고 가정 해보십시오. 따라서 어느 시점이든 NSB 또는 Rhinos ESB와 함께 보낼 수 있다는 것을 알고있는 보낸 사람에게 일련의 메시지를 보내야합니다. 이상적으로는 소비자의 메시지를 종합 할 수있는 방법을 생각하고있었습니다. "대기열에 100 개가있는 경우 메시지를 소비하십시오." 사가 대안을 확인해야합니다. ESB에 처음 온 것입니다. 어떻게 할 것인가에 대해 자세히 설명해 주시겠습니까? –

+0

내가 대답하기 전에 왜 스토리지를 줄이고 싶은지에 대해 자세히 설명 할 수 있습니까? 메시징을 사용하는 경우 처리가 이제 "오프라인"이며 몇 초 또는 몇 분이 걸리는지 여부는 중요하지 않습니다. –

+0

대상 테이블이 큽니다. 쓰기를 막는 것이 비용이 많이 들며 작성되는 메시지의 수가 실제로 많습니다. 이 표는 또한 많이 묻습니다. 필자가 쓰기 위해 사용하는 잠금 유형으로 작업 할 수 있다는 것을 알고 있지만, 내 머리 속의 _ideal_ 시나리오는 단일 쓰기 대신 배치를 작성하는 것입니다. 이 기사를 읽으면서 Ayende의 http://msdn.microsoft.com/en-us/magazine/ff796225.aspx를 보았습니다. 보내려는 메시지를 지연시키는 메시지 모듈을 작성하고 특정 숫자가 대기열에 들어가거나 특정 경과 시간 후에 소비됩니다. –

관련 문제