JAVA全系列 教程
3762个小节阅读:7089.1k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
一般的业务服务系统大体上就是通过网络远程对DB进行读写。如果流量突然飙高,总有一个资源会遇到瓶颈。按照经验出问题的概率从大到小排列依次是DB、连接数、内存、磁盘IO、CPU、带宽其中的一个或几个。不同的业务,不同的系统设计,出问题的地方会有所不同。如果流量增大数倍,势必某个资源会在瞬间被榨干,然后所有的服务都会罢工,引起用户的投诉。而解决问题的关键,是在问题发生时,尽量减少出问题的资源被访问。
首先可以对硬件资源进行扩充,现在云平台都支持服务器实时扩容和缩容,出现流量高峰,可以及时的对瓶颈资源进行扩容,可以横向或纵向扩容。横向扩容就是单台服务器的配置不变,增加服务器的数量;纵向扩容是指服务器数量不变,单纯提高配置,比如,平时是4核8G,出现流量高峰后,立即提到8核16G或更高的配置。此处,在系统架构上要有高可靠、高可用的设计考虑,可以从下面几个方面入手:
缓存,就是用内存来顶替一部分DB的查询+数据的处理。这应该是所有业务开发人员的必修课。业务上大致可以把缓存分为三类:浏览器缓存,CDN和服务器业务缓存。
服务降级,是指通过降低服务质量的方法,达到节省资源的目的。简单来说就是弃车保帅。比如你的服务有ABC,平时消耗差不多的资源。突发事件时,A的请求量极大的增高了,B和C没有变化。那么可以比如减少或者暂停B和C的服务,省出资源给A用。
限流,即限制用户的请求流量。具体的做法有计数器、滑动窗口、漏桶、服务token、请求队列化等办法。
数据存储优化,包括读写分离、索引优化,这些措施实施起来,效果好、成本低、见效快。 但随着时间的推移和数据的积累,可能有新的性能瓶颈显露出来,因此需要再次对系统进行了升级,升级措施主要包括垂直拆分、水平拆分、冷热数据分离等。