0

나는 목록을 가지고 모든 메시지는 이미지를 가지고 있으며, 목록 지금은 모든 메시지병렬 이미지를 Azure BLOB로 업로드하면 더 나은 옵션이 될 수 있습니까?

솔루션 1 이미지 및 첨부 파일에 대한 블롭 URL을 업데이트해야합니다 전화 이미지 UploadBlob과 및 호출 각 첨부 파일에 대해 UploadBlob을 작성한 다음 Blob URL을 사용하여 DB의 메시지 개체를 업데이트하십시오.

해결책 2 이미지와 모든 첨부 파일을 한 번에 업로드하고 병렬 업로드를 사용하고 Blob URl을 업데이트하고 DB에 메시지를 저장하면 모든 메시지에 고유 ID 그래서 Blob에 업로드하는 동안 나는이 blob url을 생성하기 위해이 id를 설정할 수 있습니다. 독특한, 그래서 메시지 ID를 포함합니다 내가 물방울 URL을 메시지 ID를 매핑 할 필요가 메시지를 업데이트

당신은

답변

1

확실하지 코드의 가독성과 성능 PLS 조언을 높이기 위해 다른 솔루션이있는 경우 완전히 나는 경우 질문을 이해하지만 ... 각 메시지에는 이미지와 0 개 이상의 첨부 파일이 있고 메시지 개체에는 이미지 및 관련 첨부 파일에 대한 참조가 필요합니다.

올바른 해석 인 경우 : 각 업로드는 자체 BLOB로 들어갑니다. 위의 솔루션 # 2를 사용하더라도 모든 업로드 후에 여러 개의 Blob URI로 끝납니다.

업로드하는 데스크톱 앱이든 최종 사용자의 이미지와 첨부 파일을 가져 오는 웹 앱이든 관계없이이 앱이 어디에 적합한 지 말할 수 없습니다. 데이터베이스 레코드 기록). 이 후자의 경우 : 나는 다음과 같은 제안하십시오 : 각각의 이미지 나 첨부 파일을 수신 할 때

  1. 은 (아마도 당신에게 다시 고유 한 ID의 몇 가지 유형을 줄 것이다) 메시지 기록을 쓰기를
  2. , BLOB 저장소에 업로드 결과 URI로 메시지 업데이트

병렬 작업을 시작하여 각 이미지 또는 첨부 파일을 업로드 한 다음 메시지 레코드를 업데이트 할 수 있습니다. 대역폭을 보유하고있는 한 병렬 업로드는 최대로 활용할 수 있습니다. 각 저장소 계정에는 처리량 제한이 있습니다 (초당 5,000 트랜잭션 및 3Gbps).

메시지 업데이트를위한 큐를 도입하거나 CQRS 패턴을 사용하는 것과 같은 확실한 대안이 있습니다. 결정의 일부는 앱의 아키텍처를 기반으로합니다 (명시된 바와 같이, 이것이 맞는지는 알 수 없습니다). 업로드를 수행하는 데스크톱 응용 프로그램, 블롭 저장소 또는 업로드를 수행하는 웹 서버).

+0

안녕하세요 데이비드는 WCF 서비스에 요청을 보내고 WCF는 내가 블롭에 업로드하는 메소드를 구현 한 비즈니스를 호출하는 웹 앱입니다. XML에서 가져 오는 메시지를 제어 할 수 없으며 1000 개를 포함 할 수 있습니다. 메시지와 각 메시지는 여러 첨부 파일을 포함 할 수 있습니다. xml을 생성하는 응용 프로그램은 첨부 파일의 크기가 Kb –

0

내 이해를 바탕으로 솔루션 2가 더 나은 것으로 보입니다.

작업 병렬 라이브러리의 도움으로 여러 파일을 병렬로 업로드 할 수 있습니다 : http://msdn.microsoft.com/en-us/library/dd460717.aspx. 비동기 패턴 (Begin/End 메서드 호출)을 사용할 수도 있습니다. 그러나 동시에 너무 많은 파일을 업로드하지 않는 것이 좋습니다. 보류중인 웹 요청이 너무 많이 발생하면 그 중 일부가 실패 할 수 있습니다. 예를 들어 10 개의 작업을 만들고 1 개가 끝날 때까지 기다린 다음 11 번째 작업을 만들도록 선택할 수 있습니다.

감사합니다.

Ming Xu.