2014-06-13 6 views
1

수천 명의 사용자가 태블릿에서 콘텐츠 관리 시스템으로 이미지를 업로드 할 수있는 시스템을 설계하고 싶습니다. 하나의 업로드에서 각 사용자는 한 번에 최대 12 개의 이미지를 업로드 할 수 있으며 하루에 최대 20,000 개의 업로드가 가능합니다. 숫자는 하루에 < 240,000 이미지이므로 피크 시간대에 병목을 방지하는 최선의 방법이 무엇인지 궁금해했습니다.태블릿에서 서버로 수백만 개의 이미지 업로드

웹 서버 팜 (IIS)을 사용하여 HTTP POST를 통해 이미지를 업로드하는 방법을 생각해 봅니다. 각 이미지의 크기가 200kB 미만이고 이미지를 파일 시스템에 저장할 수 있습니다. 하루 48GB, 연간 16TB입니다.

그런 다음 이미지 메타 데이터를 다른 텍스트 데이터와 함께 SQL Server DB에 저장할 수있었습니다. 나중에 사용자는 추후 처리를 위해 이미지 및 기타 (텍스트) 데이터를 DB에서 태블릿으로 회수하려고합니다.

작은 규모로도 문제가 없지만 하루에 이렇게 많은 수의 이미지/레코드를 업로드/검색하는 모든 사람들이 생각하는 것에 관심이 있습니다.

+0

당신이 활용할 수있는 서비스가 있습니다. 처음부터 그러한 시스템을 구축하는 데에는 몇 달이 걸릴 것이고 여전히 뒤쳐 질 것입니다. –

+0

안녕하세요 어떤 서비스가 있습니까? – DeadlyDan

+0

Uploadcare를 제안했지만 편향되었습니다. –

답변

1

피크 시간대에 병목을 방지하는 최선의 방법이 무엇인지 궁금해했습니다.

충분한 하드웨어. 기간.

HTTP POST를 사용하여 웹 서버 팜 (IIS)을 사용하여 이미지를 업로드하는 방법을 생각해 봅니다.

언급 할 가치가있는 대안이 없습니다.

이것은 하루 48GB이고 연간 16TB입니다.

예.

그럼 내가 다른 텍스트 데이터와 함께 SQL 서버 DB의 이미지 메타 데이터를 저장할 수), 현대 저장은 환상적이다.

이것은 매우 작고 ldatbase가 좋게 만듭니다. 결국 이미지 저장 장치에 문제가 있음을 의미하므로 데이터베이스가 그렇게 크지는 않습니다.

작은 규모에

이 아무 문제가 없지만, 나는 하루에 이미지/기록과 같은 많은 수의 검색/업로드에 대한 가장 좋은 방법입니다 생각하는지 모두에 관심이 있어요?

아직 큰 규모가 아닌 것은 확실합니다. 문제는 다음과 같습니다.

  • 파일 수 여러 개의 폴더로 분할하고 데이터베이스의 버킷 개념을 가장 잘 이해해야하므로 여러 개의 버킷으로 나눌 수 있으므로 각각의 서버가 장기간 유지 관리에 좋습니다.

  • 백업/복원은 문제이지만 위와 같이 (a) 테이프와 (b) 버킷을 사용하면 백업/복원이 훨씬 적어 문제가 거의 없을 수 있습니다.또한 "별도의 컴퓨터에 3 ~ 4 부"가 충분히 잘 작동 할 수 있습니다. 버킷 문제를 제외하고

- 즉 요 간단한 폴더에 모든 파일을 넣을 수없는, 즉 seirously unwieldely 수 iwll - 당신은 완전히 정상입니다. 이것은 엄청나게 큰 것은 아닙니다. 웹 백 레벨을 무 상태로 유지하여 저장 백엔드 에서처럼 확장 할 수 있도록 한 다음 데이터베이스를 사용하여 모두 묶어서 15 분 동안처럼 FREQUENT 데이터베이스 백업을 수행하십시오.

+0

예 여러 로컬 서버에 수백만 개의 파일을 저장하는 문제는 저에게 새로운 영역입니다. 최선의 접근법을 찾기 위해 내가 읽을 수있는 배경 이론이 있습니까? – DeadlyDan

+0

내가 아는 것은 아니다. 기본적으로 많은 시간이 소요됩니다. 파일 시스템에 따라 엄격한 제한이있을 수 있습니다. 그러나 예를 들어 Windows는 - 폴더에있는 백만 개의 파일에 문제가 없습니다. 탐색기에서 어떤 이유로 폴더를 열지 않는 한 ... UI는 폴더에있는 백만 개의 파일로 디자인되지 않습니다.) 많은 경우 도구. 여기서 샤딩이 필요합니다. – TomTom

1

가능한 방법 중 하나는 클라이언트에서 Amazon S3로 직접 업로드하는 것입니다. 그것은 확장되고 그것에 던져진 파일의 어떤 양을받습니다. S3에 업로드가 완료되면 DB에 유용한 메타와 함께 S3 오브젝트에 대한 링크를 저장하십시오. 이 설정에서는 파일 업로드 병목 현상을 피할 수 있으며 DB에 하루에 ~ 240,000 개의 레코드 만 저장하면되므로 문제가되지 않습니다.

파일 업로드시 값을 추가하고 실제로 많은 시간을 절약하는 서비스를 구축하려면이 특정 문제를 해결하기 위해 빌드 된 기존 타사 솔루션을 사용하는 것이 좋습니다. 예 : Uploadcare 및 일부 경쟁 업체.

관련 문제