2013-09-25 6 views
0

나는 서버 측의 DB에 이미지 또는 파일 시스템을 절약에 관한 많은 질문/의견을 읽었습니다. 그러나 나는 아직도 혼란 스럽다. 지금은 사용자가 이미지 (최대 10MB)를 업로드 할 수있게하고 서버 폴더에 이미지를 저장하고 해당 위치를 가리키는 Apache 컨텍스트 경로 구성을 통해 이미지를 제공합니다. 그러나 이미지 수가 많고 부하가 높기 때문에 우리는로드 밸런싱 및 장애 극복 기능을 제공하려고합니다. 그래서 2 가지 옵션이 있습니다.이미지 서버 성능

  1. 업로드 된 이미지를 모든 서버에 복제하거나 rsync를 사용하여 코드를 복제하는 코드를 추가하십시오.
  2. CouchDB 또는 MongoDB를 사용하여 이미지를 문서의 첨부 파일로 저장하십시오. 그래서 상자 복제 기능이 있습니다.

사람은 나에게 이러한 접근 방식의 장점/단점을 표시 할 수 있습니다. CouchDB/MongoDB는 파일 시스템에 비해 동일한 읽기 성능을 가질 수 있습니까?

답변

0

또한 분산 파일 시스템에서 파일을 저장할 수 있습니다. DB 지원 이미지 서버에 대한 이점은 응용 프로그램을 변경할 필요가 없다는 것입니다. 이미지를 포함하여 모든 데이터를 동일한 방식으로 저장하는 것이 이점 일 수 있지만 이미 작동중인 시스템의 아키텍처를 변경하는 것도 문제가 될 수 있습니다. 예를 들어

, GlusterFS는 당신에게 시스템 자체에 대한 변경을 최소화 분산 기능을 제공하는 "정상"파일 시스템의 상단에 설치할 수 있습니다. 클라우드 시스템에서 기대할 수있는 모든 기능 (복제,로드 밸런싱, 재배치 된 파트로의 파일 스트리핑 및 페일 오버)을 플러그인 (번역자)을 통해 지원할 예정입니다.

+0

예, 나는 또한 mogileFS, GlusterFS 또는 CODA와 같은 일부 오픈 소스를 살펴 보았습니다.하지만 오랜 학습 곡선을 시작하고 때로는 문서의 부족으로 어디서부터 시작해야할지 모르겠습니다. 내 간단한 솔루션은 여전히 ​​잘 작동하지만 밖으로 스케일 아웃하려는 문제가 발생합니다. CounchDB 또는 MongoDB를 사용하면 필요한 확장 성을 제공합니다. 그러나 나쁜 평판 때문에 이미지를 DB에 저장하는 것을 여전히 두려워합니다. –

0

CouchDB/MongoDB는 파일 시스템과 비교하여 동일한 읽기 성능을 가질 수 있습니까?

아니요, 파일 시스템 타이머와 데이터베이스 타이머간에 지연이 발생합니다. 이는 불행하게도 현실입니다.

내가 현재 설정, 부하와 내가 정말 무엇을해야하는지에 대한 조언을 할 수 있도록 성능을 아무 생각하지만, 아파치는 어쨌든 정말 좋은 이미지 서버가 아닙니다.

가장 좋은 이미지를위한 CDN 캐시에 볼 수 있습니다.

+0

친애하는 Sammaye, 내 응용 프로그램은 사용자가 이미지 (tif, jpg, png)를 업로드하고 나중에 사용할 URL을 반환 할 수 있습니다. 그래서 업로드 된 이미지를/home/hieulam/images와 같은 서버 측 위치에 저장하고 이미지를 제공하기 위해 해당 위치를 가리 키도록 하나의 컨텍스트 루트를 추가합니다. Nginx는 Apache에 비해 성능을 향상시킬 수 있습니까? –

+0

@HieuLam 예, 특히 올바른 캐시 메커니즘이 있습니다. – Sammaye