java:大量访问页面如何处理?
很多人访问一个action,action访问数据库读取数据。 暂时不过多考虑框架方面,不想在数据库方面优化。最终找到2套解决方案。
1.内存缓存数据:把从数据库查询的数据存入servletContext里,做个线程定时器进行刷新servletContext,设计一个立即更新servletContext的方法。
2.物理硬盘存储:动态生成html静态页面,做个线程定时器进行刷新生成静态页,设计一个立即更新生成静态页方法。
这两天方案访问action 都以“计时器”间隔时间,判断是否访问数据库。通过立即更新方法保证必要数据的时时性。先说下我对这里个方案的评价。
1、由于访问数据放入内存,当客户端请求的时候可做最快的提取操作。不过依然进行jsp反射显示并生成(serlvet过程不详细说明)html发送到客户端。
2、生成静态页html放入硬盘,当客户端请求是要把返回目标指向html静态页位置进行返回。
这是我的基本想法,我觉得直接生成静态页方案更好一些。可是有人说存入servletContext里好。
只是一些简单优化方案,希望大家能一起交流下思想! 同时留下个疑问“可不可以直接把 压力过大页面直接放入缓存,每次读取直接内存返回?”
------解决方案--------------------很多人访问一个action。
如果你说的是Struts的action,那么立足点是错误的。action是ThreadLocal。
1. Memcache
2. StaticContext
都有现成的解决方案。
------解决方案--------------------
------解决方案--------------------