-
提高硬件能力、增加系统服务器(当服务器增加到某个程度的时候,系统所能提供的并发访问量几乎不变,所以不能从根本上解决问题)
-
使用缓存(本地缓存:可以使用 JDK 自带的 Map、Guava Cache;分布式缓存如:Redis、Memcache。本地缓存并不适用于提高系统并发量,如 Spring 是把已经初始过的变量放在一个 Map 中,下次再要使用这个变量的时候,先判断 Map 中有没有,这也是系统中常见的单例模式实现)
-
消息队列 (解耦+削峰+异步)
-
采用分布式开发 (不同的服务部署在不同的机器节点上,且同一个服务也可以部署在多台机器上,然后利用 Nginx 负载均衡访问,这样就解决了单点部署 (All In) 的缺点,大大提高了系统的并发量)
-
数据库分库(读写分离)、分表(水平分表、垂直分表)
-
采用集群 (多台机器提供相同的服务)
-
CDN 加速 (将一些静态资源比如图片、视频等等缓存到离用户最近的网络节点)
-
浏览器缓存
-
使用合适的连接池(数据库连接池、线程池等等)
-
适当使用多线程进行开发
网友评论