面对高并发高请求的大型JAVA应用场景,需要考虑到以下几个方面并并进行优化:
从最基础的做起,优化所写代码,减少不必要的资源浪费,比如:避免频繁的new对象,优先考虑使用单例模式、减繁去重,重用代码要归纳成公用方法,相关工具类使用静态方法访问、使用java中效率高的类等等;
当面对复杂的应用,用户大量访问的时候,一台数据很快无法满足需求,这时就需要使用数据库集群或者库表散列。
常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作,这样会大大减少数据库操作耗时;
我们可以把一些访问频次高但是变更不大的动态请求提前渲染生成html静态页面,然后每次用户再访问该请求时,就不要再调用服务器请求了,这样会大大减少高峰期时服务器的压力;
在静态资源例如图片、js、css等方面,我们可以将这些资源与核心应用和html资源分离开,建立合适的静态文件服务器,针对不同类型的静态资源对服务器进行优化配置,这样就不会再高并发时因为这些静态资源的问题而使整个页面崩溃了;
缓存:尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
可以考虑memcached缓存集群和静态HTML、Redis缓存
负载均衡:nginx(异步)、squid(同步)、lighttpd(异步)
存储:分布式的,如hadop等