파일 (PDF 파일의 이미지 페이지)의 아티팩트를 처리하는 응용 프로그램이 있고 원본 PDF 파일이 S3에 저장되어 서버에 다운로드됩니다 클라이언트가 이미지를 생성 할 때 이미지를 생성합니다. 이 컴퓨터에는 각 PDF 파일을 한 번만 다운로드하는 로컬 캐싱 메커니즘이 있습니다.특정 리소스 경로를 기반으로 가능한로드 균형 조정을 수행하는 방법
따라서 고객이 요청할 때 pdf 123.pdf 페이지 1을 제공합니다.이 캐시가 체크되어 있고 거기에 pdf 파일이 없다면 S3에서 다운로드되어 로컬 캐시에 저장되고 프로세스는이 페이지 1을 생성하고 이미지를 클라이언트에 다시 보냅니다.
클라이언트 자체는 특수 서버에 연결되어 있다는 것을 모릅니다. 웹 서버에 액세스하는 것처럼 보이지만, 성능 향상을 위해이 클라이언트가 항상 대상으로 지정됩니다. 첫 번째 요청을 처리 한 동일한 파일 서버 (S3에서 파일을 다운로드 함)
나는 특정 파일 서버에서 항상 다운로드하도록 클라이언트에 쿠키를 설정할 수 있지만 클라이언트에 배치하면 부적절한 사용으로 이어질 수 있습니다. 일부 사용자는 많은 문서를 열고 일부는 그렇지 않기 때문입니다. 리소스 수준 (PDF 문서)에서이로드 균형 조정을 수행하고 싶습니다.
각 문서에는 고유 한 ID (데이터베이스의 정수 기본 키)가 있으며 첫 번째 솔루션은 Redis를 사용하고 문서 ID를 키로 저장했으며 값은 현재 캐시 된이 문서가있는 서버 컴퓨터의 호스트입니다. 하지만 Redis를 제거하거나 다른 곳에서 키를 찾을 필요가없는 간단한 구현 방법을 찾고 싶습니다.
또한 정의 된 알고리즘이나 아이디어로 더 많은 파일 서버를 추가 할 수 있다면 좋을 것입니다.
자원을 기준으로 한 유사성으로 이러한 종류의로드 균형 조정을 수행하는 가장 좋은 방법은 무엇입니까?
단지이 응용 프로그램은 Ruby, java 및 Scala가 혼합 된 것입니다.