我们正在寻找 IIS/ISAPI 和 Coldfusion 之间的缓存层,这样如果整个页面都缓存在服务器上,则对该资源的其他请求不需要分配 Coldfusion 线程。我认为这几乎与 nginx + memcached 相同,但不幸的是我们没有使用它们的奢侈 =(。
以下是我设想的沟通途径的一个例子:
对 /hotels/?listingid=5 的 GET 请求 -> 缓存 -> 存在且新鲜 -> 服务
对 /hotels/?listingid=10 的 GET 请求 -> 缓存 -> 存在但已过期 -> Coldfusion -> 缓存 -> 服务
从 coldfusion 获得缓存的 GET 请求以清除 /hotels/?listingid=10。
对 /hotels/?listingid=10&nocache 的 GET 请求 -> Coldfusion
即使我必须编写一些 C++ 代码,我也不介意自己动手,但我甚至不知道从哪里开始。
答案1
只要您的 URL 中有查询字符串,就意味着内容是动态生成的。某些程序(在本例中为 ColdFusion)会评估查询字符串以确定如何处理它。我会对<cfcache>
基于的解决方案进行压力测试,以查看您是否遇到延迟。当我获得高流量网站时,我会关注以下方面:
- 数据库是否跟得上请求负载
- 数据库资源是否得到有效利用
- 负载平衡/故障转移/备用服务器
- 我可以为 Web 服务器获得更多内存吗
- CF 服务器日志怎么样
每种情况都不同,但页面请求线程生成速度一直没上来