最近有位粉丝问了我一个问题:如何设计一个高并发系统?

这是一个非常高频的面试题,面试官可以从多个角度,考查技术的广度和深度。

今天这篇文章跟大家一起聊聊高并发系统设计一些关键点,希望对你会有所帮助。

1 页面静态化

对于高并发系统的页面功能,我们必须要做静态化设计。

如果并发访问系统的用户非常多,每次用户访问页面的时候,都通过服务器动态渲染,会导致服务端承受过大的压力,而导致页面无法正常加载的情况发生。

我们可以使用FreemarkerVelocity模板引擎,实现页面静态化功能。

以商城官网首页为例,我们可以在Job中,每隔一段时间,查询出所有需要在首页展示的数据,汇总到一起,使用模板引擎生成到html文件当中。

然后将该html文件,通过shell脚本,自动同步到前端页面相关的服务器上。

2 CDN加速

虽说页面静态化可以提升网站网页的访问速度,但还不够,因为用户分布在全国各地,有些人在北京,有些人在成都,有些人在深圳,地域相差很远,他们访问网站的网速各不相同。

如何才能让用户最快访问到活动页面呢?

这就需要使用CDN,它的全称是Content Delivery Network,即内容分发网络。

使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

CDN加速的基本原理是:将网站的静态内容(如图片、CSS、JavaScript文件等)复制并存储到分布在全球各地的服务器节点上。

当用户请求访问网站时,CDN系统会根据用户的地理位置,自动将内容分发给离用户最近的服务器,从而实现快速访问。

国内常见的CDN提供商有阿里云CDN、腾讯云CDN、百度云加速等,它们提供了全球分布的节点服务器,为全球范围内的网站加速服务。

3 缓存