2009-09-03 3 views
2

저는 주 웹 사이트에서 부하를 제거하고 웹을 통해 이미지/파일을 클라이언트에 제공 할 수있는 파일 서버 설계에 대해 작업 해 왔습니다. 파일 서버의파일 서버 디자인 방식

차 목표 :
- 기존 웹 서버의 코드 기반을 재사용하고 더 나은 유지 보수성
에 대한 코드/논리의 중복을 피하기 - - 사이트
를 호스팅하는 주 서버의 부하를 벗어 증가시키기위한 확장 성 인 다운로드
- 사용자로부터 실제 다운로드 URL 경로를 숨기기

위의 내용을 염두에두면 두 가지 접근 방법을 생각해 낼 수 있습니다. 이해의 용이성을위한 두 가지 접근법의 시퀀스 다이어그램 표현 [시퀀스 다이어그램의 비뚤어진 사용에 대한 사과]. 어떤 접근 방식도 내 모든 목표를 충족시키지 못합니다.

내 목표를 고려하여 이러한 접근법을 추천하는 방법은 무엇입니까?
더 나은 세 번째 방법이 있습니까?

차이의 일부를, 내가 생각할 수 :
이 - # 1은 유지 보수를 일으키는 BL 코드를 복제 초래 접근이 발행
- # 2 코드를 재사용하고 BL 줄이고 유지 관리를 중앙 집중화 할 접근 방식
문제 - 접근 # 1 # 2가 증가 할 때 네트워크 콜을 줄이겠다.

파일 서버의 개념, 다운로드의 확장 성, 대역폭 분배는 모두 지금 당분간 존재 해왔다. 생각을 공유하십시오! 업데이트]

alt text

: 완전히 주 서버 오프로드를 필요로
접근 # 1은 매우 매력적인 보입니다. # 1에서 다루어야 할 유일한 문제는 코드 중복 및 유지 관리 문제입니다. 이것은 웹 서비스와 파일 서버가 요구하는 기능을 포함하는 BL/DAC 용 프로젝트 하나만 있으면 극복 할 수 있습니다. 또한 웹 서비스 및 파일 서버 프로젝트에서 어셈블리/라이브러리를 참조하십시오. 이제는 유지할 BL/DAC 코드가 하나 뿐이며 접근 # 2에서 네트워크 호출을 피할 수 있습니다. 클라이언트에 이미지/파일을 제공함으로써

답변

1

, 당신은 대부분의 시간

이 간단한 솔루션은 최상의 솔루션, JS 등 정적 파일의 CSS를 의미 가정합니다. 다른 하위 도메인에있는 다른 서버 (예 : http://content.mydomain.com/img/xyz.jpg)에 호스팅하면됩니다. 퍼포먼스 (백본과 가깝습니다)를 제공하는 전용 서버의 데이터 센터에서 호스트를 호스팅 할 수 있으며 URL을로드 밸런싱하고 2 개 이상의 다른 데이터 센터에서 2 대 이상의 서버를 보유 할 수있어 재사용 성 및 확장 성을 제공합니다.

devt/uat 콘텐츠 경로를 라이브 콘텐츠 경로로 바꾸기 위해 살기 위해 사이트를 승격시킬 때 할일 바꾸기 작업을 수행해야합니다 (그럴 경우 css 파일에서만이 작업을 수행해야하므로 경로를 저장할 수 있습니다). 설정 데이터로 aspx 파일 내에서 사용되는 콘텐츠).

+0

@Jaimal : 파일로, 사용자가 업로드 한 webserver/db에 저장된 문서를 의미합니다. 목표는 나중에 데이터 센터에서 호스트하기 위해 확장 가능하도록 만드는 것입니다. – pencilslate

+0

@Pencilslate : 음, 업로드시 URL을 읽기 어렵게 만들고 고유 URL이 99.99 % 인 GUID로 파일 이름을 다시 쓰고 파일을 별도의 서버에 씁니다. 다른 메타 데이터 (파일 이름 크기, 업로드 날짜 등)와 함께 guidas를 인덱스 된 열을 db에 저장하십시오. 그런 다음 파일이 요청되면 guid를 사용하여 파일을 가져옵니다.repsonse 스트림을 보낼 때 파일 이름을 원래 파일로 빠르게 재 작성할 수 있습니다. 이렇게 고유 한 파일 이름을 이미 만들었으므로 고유 한 d/l url과 don은 요청시 생성해야합니다. –

관련 문제