先简略回顾一下。对于互联网产品的高性能架构设计通常包括以下几个大方面:
Web浏览器高性能设计
App客户端高性能设计
高性能的网络和硬件
后台服务高性能设计
后端服务一般指用户直接看到的远程服务,涉及到网络硬件、逻辑计算、通信协议和数据存储等部分。下面我们将着重介绍高性能后台服务的设计方法和策略。
一、高性能的网络和硬件
网络硬件是提供实现高性能服务的先决条件,如果网络硬件失败,再优秀的团队也是“巧妇难为无米之炊”。互联网产品在网络硬件方面经常需要使用的高性能方案有如下几种:
CDN加速技术。CDN加速将网站的内容缓存在网络边缘(离用户接入网络最近的地方),然后在用户访问网站内容的时候,通过调度系统将用户的请求路由或者引导到离用户接入网络最近或者访问效果最佳的缓存服务器上,由该缓存服务器为用户提供内容服务;相对于直接访问源站,这种方式缩短了用户和内容之间的网络距离,从而达到加速的效果。
足够的带宽。带宽应该满足在网站峰值的情况还能足够快速的使用,所以网络带宽应该大于峰值流量 = 峰值QPS * 平均请求大小。只有在保证带宽的情况才能实现高性能服务。
服务器性能。服务器性能主要从CPU、内存和磁盘三个方面来考虑,CPU核心数量能尽量多点,内存大小最好大一点,利用到磁盘存储的话SSD会优于机械磁盘。
硬件负载均衡设备。对于有条件的团队可以采购硬件负载均衡设备,加强后台服务负载均衡的能力,比如F5。
二、后台服务高性能设计
后台服务的高性能设计是互联网产品高性能架构设计中最重要的一环,对服务整体性能起到决定性的作用。我们来看看设计高性能后台服务的方法:
1分布式缓存。
缓存的本质是通过key-value