JAVA中高访问量高并发的问题怎么解决?
几点需要注意:
-
尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
-
用jprofiler等工具找出性能瓶颈,减少额外的开销。
-
优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。
-
优化数据库结构,多做索引,提高查询效率。
-
统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。
-
能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。
-
解决以上问题后,使用服务器集群来解决单台的瓶颈问题。
基本上以上述问题解决后,达到系统最优。
一、 web加速相关技术
1. 镜像站点
2. DNS负载均衡
3. CDN内容分发
二、 内网加速技术
1. 负载均衡(软件负载均衡、硬件负载均衡)
2. Web缓存服务器
3. Web/应用服务器分布式文件系统
4. 分布式数据库(数据库主从分布、数据库分割、数据库缓存)