Changes between Version 1 and Version 2 of Ticket #106
- Timestamp:
- 04/20/2012 10:14:15 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #106
- Property Status changed from new to closed
- Property Resolution changed from to fixed
- Property Summary changed from squid缓存不一致问题 to squid缓存不一致问题(已有方案,待实施)
-
Ticket #106 – Description
v1 v2 1 1 * 问题 2 报价库前台做了squid缓存,但是实际上会存在squid缓存不一致的情况,因为按照正常hash去某台squid的时候,这台squid有可能队列满、响应超时等,这时候会重新hash到另一台squid去,导致同一个url会同时在多台squid有缓存,那么我们在浏览器反复刷的时候,看到的内容可能会不一致,在某 段时间应用有异常的时候尤其明显。2 报价库前台做了squid缓存,但是实际上会存在squid缓存不一致的情况,因为按照正常hash去某台squid的时候,这台squid有可能队列满、响应超时等,这时候会重新hash到另一台squid去,导致同一个url会同时在多台squid有缓存,那么我们在浏览器反复刷的时候,看到的内容可能会不一致,在某个时间点应用有异常的时候尤其明显,反复刷有可能看到完全不同的内容。 3 3 {{{ 4 4 2012/04/15 08:56:42 [error] 9054#0: *1040065103 upstream timed out 110: Connection timed out) … … 10 10 }}} 11 11 12 * 解决方案(待续) 12 * 解决方案 13 要求:应用异常的时候,让squid短时间缓存例如5分钟,应用恢复后缓存异常页面的squid可以几分钟内就更新。 14 15 解决:原来的报价页面在squid之后是有mc缓存的,并且报价页有异常(不是真的没记录)的时候也是出一个没有记录的页面,200状态码,这样的话是做不到上面的要求,因为squid过期后来拿的还是mc里的异常页面,无法短时间更新。 16 17 最终的方法,xindex上了之后裸页面的加载时间也很快,所以可以去掉mc这一层,如果不去掉mc这一层,那么报价页必须对异常捕获后,做特殊处理不放到mc缓存。不管有无mc发生异常后都要设置response的max-age参数让squid只缓存几分钟,也不能完全去掉,否则有异常的那段时间里压力太大。 正常情况下确实没有记录的页面,按正常的squid、mc缓存处理。
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)