聊聊高并发系统之HTTP缓存
|
4、假设商品详情页异步加载的一些数据使用的是Last-Modified进行的过期控制,而服务端做了逻辑修改但内容是没有修改的,即内容的最后修改时间没变,如果想过期这些异步加载的数据,可以考虑在商品详情页添加异步加载数据的版本号,通过添加版本号来加载最新的数据,或者将Last-Modified时间加1来解决;而这种情况比较适合使用ETag; 5、商品详情页异步加载的一些数据,可以考虑更长时间的缓存(比如1个月而不是几分钟),可以通过MQ将修改时间推送商品详情页,从而实现按需过期数据; 6、服务端考虑使用内存缓存(tmpfs)、SSD缓存;考虑服务端负载均衡算法,如一致性哈希提升缓存命中率; 7、缓存KEY要合理设计(比如去掉参数/排序参数保证代理层缓存命中),要有清理缓存的工具,出问题时能快速清理掉问题KEY; 8、AB测试/个性化需求时应禁用掉浏览器缓存,但考虑服务端缓存; 9、为了便于查找问题,一般会在响应头中添加源服务器信息,如访问京东商品详情页会看到ser响应头,此头存储了源服务器IP,以便出现问题时知道哪台服务器有问题. 参考 https://www.w3.org/Protocols/HTTP/1.0/spec.html https://www.w3.org/Protocols/rfc2616/rfc2616.html http://nginx.org/en/docs/http/ngx_http_headers_module.html#expires http://nginx.org/en/docs/http/ngx_http_core_module.html#if_modified_since http://nginx.org/en/docs/http/ngx_http_core_module.html#etag http://nginx.org/en/docs/http/ngx_http_proxy_module.html 文:张开涛 文章出处:开涛的博客(订阅号ID:kaitao-1234567) (编辑:网站开发网_盐城站长网 ) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

