0

masstransit 메시징을 사용하여 asp.net mvc 응용 프로그램을 만드는 방법을 example 님이 보았습니다.대기열을 통해 DAO를 공유합니다. 별도의 읽기/쓰기. maststransit

내가 undersatnd 할 것 :

  • asp.net mvc controllers 이벤트를 pusblish하기위한 것입니다;
  • 응답은 SignalR/또는 다른 전송을 통해 별도의 어셈블리에서 호스팅되는 다른 (rabbitmq) 대기열에서 나옵니다.
  • 각 큐 (작업, db 쓰기, 응답)는 별도의 콘솔 프로젝트/windows 서비스에서 호스팅됩니다.

내가 undersatnd하지 않습니다 무엇 :

읽기와 쓰기의 분리가 필요한지 여부를
  • ?
  • 이 예제에서는 여전히 사용할 수있는 mongodb을 사용합니다. 따라서 별도의 읽기 및 쓰기조차도 문제가되지 않습니다. 그러나 SQL Server/EF은 어떨까요? 여러 어셈블리에서 db 액세스를 빌드/공유하려면 어떻게해야합니까? 각 대기열 어셈블리가 자체적으로 DbContext을 호스트해야합니까?

답변

1

그렇다면 SQL Server와 EF를 사용하는 경우 각 프로세스는 데이터베이스에 액세스하기 위해 자신의 DbContext 인스턴스를 소유하게됩니다. 모든 프로세스에서 동일한 공유 유형입니다. 그것은 전혀 문제가되지 않습니다. 공유 어셈블리에서 EF 도메인을 정의 할 것입니다. 읽기와 쓰기를 깨뜨리는 것은 전혀 문제가되지 않습니다.

읽기와 쓰기를 분리하는 것은 꼭 필요하지 않습니다. 처음에. 그러나 규모를 확장하고 다른 문제가 혼합되거나 추가 규모가있을 때 필요하게 될 수 있습니다. 읽기와 쓰기를 분리하면 작성해야하는 소프트웨어를 모델링 할 때 유용한 도구 일뿐입니다. 전혀 요구 사항이 아닙니다.

관련 문제