目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7089.1k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(219)
赞(0)

17、华为二面,项目访问量比现在增加10倍,系统如何扩容?

一般的业务服务系统大体上就是通过网络远程对DB进行读写。如果流量突然飙高,总有一个资源会遇到瓶颈。按照经验出问题的概率从大到小排列依次是DB、连接数、内存、磁盘IO、CPU、带宽其中的一个或几个。不同的业务,不同的系统设计,出问题的地方会有所不同。如果流量增大数倍,势必某个资源会在瞬间被榨干,然后所有的服务都会罢工,引起用户的投诉。而解决问题的关键,是在问题发生时,尽量减少出问题的资源被访问。

首先可以对硬件资源进行扩充,现在云平台都支持服务器实时扩容和缩容,出现流量高峰,可以及时的对瓶颈资源进行扩容,可以横向或纵向扩容。横向扩容就是单台服务器的配置不变,增加服务器的数量;纵向扩容是指服务器数量不变,单纯提高配置,比如,平时是4核8G,出现流量高峰后,立即提到8核16G或更高的配置。此处,在系统架构上要有高可靠、高可用的设计考虑,可以从下面几个方面入手:

缓存,就是用内存来顶替一部分DB的查询+数据的处理。这应该是所有业务开发人员的必修课。业务上大致可以把缓存分为三类:浏览器缓存,CDN和服务器业务缓存。

服务降级,是指通过降低服务质量的方法,达到节省资源的目的。简单来说就是弃车保帅。比如你的服务有ABC,平时消耗差不多的资源。突发事件时,A的请求量极大的增高了,B和C没有变化。那么可以比如减少或者暂停B和C的服务,省出资源给A用。

限流,即限制用户的请求流量。具体的做法有计数器滑动窗口、漏桶、服务token请求队列化等办法。

数据存储优化,包括读写分离、索引优化,这些措施实施起来,效果好、成本低、见效快。 但随着时间的推移和数据的积累,可能有新的性能瓶颈显露出来,因此需要再次对系统进行了升级,升级措施主要包括垂直拆分、水平拆分、冷热数据分离等。

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2