2013-04-25 3 views
2

현재 appharbor 응용 프로그램에 가장 적합한 메시지 대기열 솔루션을 찾으려고합니다. 대부분의 사람들은 appharbor 환경이 제공하는 MSMQ 및 DTC가 설치된 Windows 환경이 있다고 가정합니다.appharbor에 대한 최상의 ESB/Message Queue

우리가 사용하고있는 데이터베이스 인 ravendb와 잘 작동하는 것이 좋겠다. 까마귀에만 의존하는 것이 이상적입니다. 특히 기존 작업 단위와 통합되는 경우 더욱 그렇습니다. 즉, 변경 사항이 컨트롤러 작업에서 호출되면 메시지는 동일한 트랜잭션에 저장됩니다.

또한 백그라운드 처리를 위해 콘솔 응용 프로그램에서 작동하는 호스트가 필요합니다.

이상적으로는 개발 환경에서도 "그냥 작동합니다"라고 말하고 싶습니다. 까마귀와 같이, 예를 들어 우리는 개발하는 동안 임베디드 모드를 사용하고 설치가 필요없는 무언가를 원합니다.

nServicebus는 전송 (msmq, sql 등)이 필요하고 이러한 문서의 대부분이 유효 기간이 지났기 때문에 이러한 조건을 충족하지 못하는 것으로 보입니다.

나는 또한 rhino 서비스 버스를 보았지만 문서와 커뮤니티가 뚜렷이 부족합니다. 나는 그것이 ravendb에 전적으로 의존 할 수 있는지 확실하지 않습니다.

내가 봤던 다른 제품들은 개발 환경에서 실행하려면 설치 및 구성이 필요했습니다.

편집 : 다른 옵션은 우리 자신을 구현하는 것입니다.

+0

다양한 옵션을 평가 중이므로 https://shuttle.codeplex.com/ 내 FOSS 서비스 버스 프로젝트를 살펴볼 수 있습니다. ravendb에 대한 IQueue/IQueueFactory 구현은 없지만 템플리트 역할을 할 수있는 SQL Server 용으로 하나가 있습니다. 구현을 다른 사람이 사용할 수 있도록 셔틀로 병합 할 수 있습니다. 그냥 생각 : 당신은 또한 NServiceBus에 대한 ravendb 전송을 구현할 수있을 것 같아요. –

답변

2

우선, StackOverflow에서 1000 번째 NServiceBus 질문에 대한 축하드립니다!

둘째, 비즈니스 데이터를 지속시키기 위해 SQL을 사용한다면 모든 메시지가 대기열 대신 테이블을 통과하는 동일한 SQL 위에 NServiceBus를 실행 한 다음 DTC가 필요하지 않습니다 .

셋째, RavenDB를 NServiceBus의 전송 수단으로 사용하려는 경우 ISendMessages 및 IReceiveMessages 인터페이스를 구현해야하지만 커뮤니티의 누군가가 이미 작업을 시작했다고 생각합니다. 그래서 당신은 그들과 힘을 합칠 수 있습니다.

마지막으로 나는 이미 자신의 ESB를 작성하는 것을 권하지 않습니다. 이미 많은 좋은 선택이있는 경우가 아닙니다. 커뮤니티 및 문서의 문제를 언급했습니다. 이러한 인프라는 독자적인 인프라를 작성할 때 최악의 상황으로 처리되는 경향이 있습니다.

+0

고마워. 만약 내가 그것이 1000이라는 숫자가 될 것이라는 것을 알았 더라면 나는 더 나은 무언가와 함께 할 수 있었다. :) 나는 까마귀 운송을 만들기에 더 깊이 들여다 보았다. 비트는 "토끼 구멍 아래로"주문 제작 단위를 만들었다. ESB의 핵심 문제는 그것이 합리적이라면 "통합 할 라이브러리"보다는 "사용할 시스템"이라는 것입니다. 이 특정 시스템에 대한 필요성은 다소 겸손 (일방적 인 메시지 대기열)하므로 내 자신을 구현하는 데 걸릴 것입니다. – flukus

+0

NServiceBus에는 이미 RavenDB에 대한 작업 단위 구현이 있습니다.이 노드를 플러그인하십시오. 어떤 경우 든 자신의 구현을 위해 작업 단위 인프라가 필요할 것입니다. –