GET 요청에서 이미지를 전달하는 API가있는 서블릿이 있습니다. 서블릿은 GET 요청의 매개 변수를 기반으로 CAD 명령의 데이터 파일을 작성합니다. 이 데이터 파일은 파일 시스템에 이미지를 만드는 이미지 파서로 전달됩니다. 서블릿은 이미지를 읽고 응답의 바이트를 반환합니다.Java를 사용한 동적 이미지 캐싱
이미지 파서 프로그램의 모든 IO 및 호출은 매우 부담이 될 수 있으며 로컬 시스템에서 약 80kb의 이미지가 3-4000ms 렌더링됩니다.
약 20 개의 매개 변수가 GET 요청을 구성합니다. 각각은 이미지의 다른 부분과 관련이 있습니다. 따라서 가능한 이미지의 조합이 매우 큽니다.
로딩 시간을 줄이기 위해 렌더링 된 이미지의 BLOB를 데이터베이스에 저장할 계획입니다. GET 요청이 이전에 실행 된 요청과 일치하면 캐시에서 가져옵니다. 그렇지 않으면, 나는 새 것을 렌더링 할 것이다. 이것은 "최초"실행을 수정하지 않지만 "n + 1 실행"을 도울 것입니다.
성능 향상 방법에 대한 다른 아이디어가 있습니까?
wget을 사용하고 이미지를 스크립트를 통해로드 한 다음 첫 번째 요청이 들어 왔을 때 사용하는 방법은 어떻습니까? 비동기 프로세스로 주기적으로 wget을 호출하는 스케줄러를 실행할 수도 있습니다. – dinukadev
그건 내 첫 번째 본능이기도하다. 그러나 필요한 이미지의 수는 엄청납니다. 나는 정확한 양을 모르지만 확실히 1t보다 크고 지속적으로 확장하고 있습니다. –
해시 코드로 이미지를 인덱싱하고 스케줄러를 사용하여 일반적으로 많이 사용되는 이미지를 데이터베이스에 자동으로 미리 캐싱했습니다. 지금까지 성과는 견디고 있습니다. –