[我在stackoverflow.com上问这个,但是他们认为这个列表会更好]
我有一个从J2EE服务的dynamic网站正在慢慢发展。 服务器的响应时间和负载能力不足以满足客户的需求。 此外,临时请求可能会意外地影响在同一应用程序服务器/数据库上运行的其他服务。 我知道原因,短期内无法解决。 我理解HTTPcaching提示(expiry,etags ….),并且为了这个问题的目的,请假设我已经减less了减less负载的机会。
我正在考虑对系统中的所有URL进行蛮力遍历来初始化一个caching,然后将caching内容复制到客户端附近的地理分散caching服务器。 我正在考虑Squid或Apache HTTPD mod_disk_cache。 我想要初始化一个副本并(手动)复制caching内容。 我不需要奴隶之间的联邦或情报。 当数据改变时,使caching无效,我将刷新我的主caching并更新从版本,可能每晚一次。
有没有人build立一个httpcaching,然后复制它? 这是个好主意吗? 还有其他技术我应该调查吗? 我可以编程,但我更喜欢开源技术解决scheme的configuration。
谢谢
ps上下文:根本问题当然是:
响应时间通常是几十秒(请不要问)。 如前所述,我不能在短期内解决它们(或者说,我正在解决它们,但是它们中有很多,它们不是基于JSP的,…)。 我有与美国,欧洲和亚洲用户的客户,所以我非常想复制caching一旦我已经准备好了。 对于企业内部用户来说,Akamai就不合适了。 我想tar,压缩caching和FTP它回奴隶。 在其他情况下,caching服务器,但不是应用程序需要在DMZ上
从理论上讲,一个大的wget -r跟着一个tarballing可以做到这一点。 问题是,在实践中,如果你可以通过wget运行(没有实际的内容改变),你通常可以很容易地生成一个基本静态的站点(用静态页面replacedynamic页面)。
如果你对地理定位不太感兴趣,那么一个残酷的超高速caching清漆设置就可以完成这项工作 – 当支持caching页面的数据发生变化时,你可以使用清漆来实现与自动使caching项无效相关的奇妙function。 我不确定您的地理位置需要什么。 如果你认为这会把性能从“不可接受”转移到“可接受”,那是不太可能的。 而如果您需要地理位置的原因与您当前的性能困扰无关,可能是决定哪一个是两个恶意中较小的一个问题 – 使用清漆修复您的网站性能问题,或者修复任何应该用地理定位修复的问题。 对于需要花费几秒(!)渲染页面的站点来说,为了获得更高的优先级,必须是非常重要的。
我看到一个客户做了这个清漆技巧与一个可怕的效率低下的Tomcat网站运行一个网上商店; 他们将bejesuscaching在一切中(用ESI来做客户login的东西),并且当有人对产品价格或描述进行了修改时,pipe理界面prod varnish说“清除这些URL”。 这是丑陋的,但它运作良好,让他们漂浮,直到他们的应用程序被固定。
你有没有考虑过使用http://memcached.org/ ?