为什么要提升服务性能?
慢、体验差、响应时间过长、高峰期无法访问等等。
如何提高服务性能、方式有哪些?
1,缓存
在程序中加入redis或memcache缓存,web服务器nginx文件缓存等。
2,减少业务DB操作。
减少查库、非实时数据可适量缓存。
减少写库、非必需数据可异步同步写入。
3,减少非必要请求、系统分布部署。
对常见网站来说基本分为三部分:API系统、web系统、后台管理系统。
web系统:请求里包含大量的css、js、html、图片、视频等静态资源,可分开访问,避免请求全都访问同一个服务。
例如:debug-assets.domain.com、debug-images.domain.com、debug-video.domian.com等。
API系统:客户端减少请求量,万年不变的信息可做浏览器缓存。
4,请求分流。
5,水平扩容、垂直扩容。
垂直扩容:提高单服务的性能(redis,mysql),提升内存、CPU、IO等。
水平扩容:多台机器、数据库、redis或提高多个应用实例(php1、php2、php3)。
水平扩容和垂直扩容包含方向很广,例如云主机、数据库、redis等。
6, 提高IP带宽。
7, 提升服务器规格。
8, 提高负载均衡(SLB)规格。
slb每秒QPS也有上线,达到一定量后就会丢弃流量、造成业务不可访问,可提升slb规格或扩容多个slb提供服务(dns负载实现)。
9, DNS负载均衡。(请求分流)
基于DNS配置负载均衡是一种比较简单但十分有效的实现方式,其原理对某一个域名配置多条A记录,指向不同的IP地址。当用户访问时,DNS服务器会根据不同地理位置的用户返回不同的IP。比如南方的用户返回深圳的IP地址,北方的用户返回北京的IP地址。
在这个模式下,用户就相当于实现了按照「就近原则」将请求分流了,既减轻了单个集群的负载压力,也提升了用户的访问速度。 摘抄来源
单SLB负载均衡示例图
DSN负载均衡示例图