| 
	
	
		
		
		
		
		 Я почти реализовал через такую схему. У нас в кэше есть файлы, к каждому файлу привязан массив данных о нём, в него входят: массив файла, последнее изменение фала, дата добавления, размер, сжат ли он в кэше. К этим данным мы привязываем хеш заголовка запроса, хеш генерируется из параметров запроса, которые могут влиять на ответ(сжатие, ласт модифед, метод), но так же к этому хешу мы добавляем число, которое указывает на индекс добавленных заголовков ответа, в кэше, то есть к файлу добавляются вот такие строки: 
 
hash_requst+"#"+index_ready_resp  
 
де hash_requst это, например, вот такой хеш: 
String hash_requst = HASH.MD5(requs.getHeader("Accept-Encoding")+requs.getHeader("If-Modified-Since")); 
 
а index_ready_resp, это индекс который мы получим при добавлении в кэш готовых заголовков: 
int index_ready_resp = serverManage.docCache.add(SERVER_RESPONSE,file_nam  e); 
 
Потом при запросе ищем файл в кэше, потом проверяем ли есть вообще хешы запросов для файла, если есть, то генерируем хеш текущего запроса и сверяем с теми что имеем с кэша, если находим нужный, берем вторую часть строки, то бишь, индекс, и обращаемся к кэшу для полученния готовых заголовков. Но тут есть косяк, мы не знаем надо ли потом выдать ещё файл, или сжатий файл, или вообще ничего, получается нам потом надо работать с готовыми заголовками что бы это узнать, то есть все равно хунта))  
 
Можно по-другому, соединить полностью кэш файлов и заголовков, то есть иметь готовый ответ для различных запросов. Некое подобие ХешМапы, то есть значению хеша будет отвечать готовый результат, с телом, полностью, но для такого тогда надо полностью переделать очень большой кусок моей системы, но при этом выгоду от такой схемы можно поиметь только при ОЧЕНЬ ВЫСОКИХ нагрузках, и то за счёт ОЗУ. И при этом, надо иметь возможность отключения такой системы, чтобы сервер имел гибкость, а так же всёравно должен быть отдельный поток который будет работать с этим кэшом, обновлять, очищать, добавлять. То есть система должна быть автономной и саморегулируемой, чтобы сервер сам, при больших нагрузках, создавал готовые ответы для файлов с низким интервалом запросов, а когда интервал между запросами для файла увеличивается, то система его очищала его из кэша, у меня сейчас такая система уже работает но она кэшурует и работает только с файлами, то есть с телом ответа, но стоить всё-таки к ней добавлять заголовки?... 
		
	
		
		
		
		
		
			
				__________________ 
				java.Uprise.*
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Slawaq, 10.01.2012 в 03:36.
				
				
			
		
		
	
		
		
	
	
	 |