저는 지난 9 개월 동안 무거운 학습 곡선이었던 CQRS 프로젝트 (첫 번째 작업)에 참여했습니다. 현재 JOliver의 우수한 EventStore를 쓰기 모델로 사용하고 있으며 PostGresSql을 읽는 모델로 사용하고 있습니다.Redis MQ를 사용하는 CQRS
내 읽기 및 쓰기 데이터베이스가 동일한 시스템에 있으므로 쓰기 데이터베이스가 변경되면 동일한 동기 호출에서 읽기 모델이 변경됩니다. 내가 CQRS를 배우는 것처럼
가 나는 등 MassTransit, NServiceBus 같은 메시지 큐/서비스 버스 프레임 워크와 아무 경험이 없기 때문에이 갈 수있는 가장 좋은 방법이라고 생각
나는의 대부분 지점에서 지금이다 내 아키텍처는 메시지 큐 프레임 워크를 소개합니다.
오늘 저는 ServiceStack의 일부인 Redis MQ를 보았습니다. 나머지 레퍼토리 기반 HTTP 클라이언트에 이미 ServiceStack을 사용하고 있기 때문에 이것이 올바른 방법이라고 생각됩니다.
내 질문은 Redis MQ를 구현하기 위해 내가 알아야 할 (또는 오해가있는 경우) 필요한 정보와 Redis MQ가 올바른 선택인지에 대한 질문입니다.
이제 Redis MQ를 쓰기 및 읽기 데이터베이스 사이의 내구성 큐로 사용할 것입니다. 내 이벤트 저장소가 내 도메인에서 어떤 일이 발생했음을 기록하면 Redis MQ에 게시합니다. 이벤트/메시지를 수신하는 서비스는 Redis MQ로부터 이벤트/메시지를 수신하고 일단 처리 (예 : 읽기 모델에 대한 업데이트 또는 쓰기)하면 알림/응답이 이벤트 저장소로 돌아가서 이벤트 저장소에 메시지가 청취자/가입자에 의해 수신되고 처리된다.
소리가 맞습니까?
또한 Redis MQ 아키텍처는 NSB, RavenDB, MassTransit 등이 제공하는 모든 것을 제공합니까?
또한 Windows 2008 및 2003 서버에 배포 할 예정입니다. Redis는 이러한 OS에서 안정적입니까?
귀하의 모든 도움에 감사드립니다. 내 경우에는 어떤 내구성 메시징 대기열을 사용해야할지 결정해야하지만, 며칠을 보내고 여전히 최선의 것을 배우는 것이 필요하다고 생각합니다. 너는 무엇을 제안 하겠는가? :) –
프로덕션에서 가장 많이 사용한 것은 NSB + MSMQ이지만 MT는 동등하게 기능 할 수 있지만 워드 프로세서가 부족합니다. NSB의 라이센스가 일치하는지 확인하십시오. 레디 스 MQ는 흥미롭지 만 논평 할 수는 없습니다. 전반적으로 메시징이 인프라 관련 문제인지 더 잘 이해할 수 있도록 몇 가지 다른 방법을 시도해 보시고 앱의 나머지 부분에서 많이 익숙해 져서는 안됩니다. – eulerfx
다시 한번 당신의 지혜에 감사드립니다. :) NSB가 제공하는 아이디어가 있습니다. Redis MQ가 실패한 메시지를 다시 시도하는 방법, 실패한 메시지를 보는 방법 또는 어떤 메시지를 처리해야하는지 확인하는 메시지 대기열을 보는 방법 등을 알아야합니다. NSB 라이센싱을 살펴볼 필요가 있습니다. 많은 메시징이 필요 없으며이 단계에서 읽기 및 쓰기 데이터베이스가 동일한 시스템에 있습니다. –