当前位置:首页 > 生活 > 正文

scale是什么意思?一篇文章帮你全面搞懂!

scale是什么意思?一篇文章帮你全面搞懂!

说起scale这玩意儿,以前我总觉得那都是大公司才要考虑的事儿,什么几百万几千万的并发,跟我们这种小打小闹的,能有啥关系?自己写个小程序、小网站,能跑起来就谢天谢地了,...

说起scale这玩意儿,以前我总觉得那都是大公司才要考虑的事儿,什么几百万几千万的并发,跟我们这种小打小闹的,能有啥关系?自己写个小程序、小网站,能跑起来就谢天谢地了,谁还会去想那些“高大上”的东西?直到有一次,我才结结实实地,吃了个人生中一个不大不小的亏,才彻底明白,这“能撑住”、“能扛住”到底是个什么意思。

那会儿我刚从一个项目脱身,有点时间,就寻思着自己在家捣鼓一个工具。想着给身边的朋友、老妈,平时处理点照片、或者简单记个账什么的,就那种很私人的小应用。反正就自己和亲近的人用,用户量撑死了也就几十个。所以当时我就想,越简单越能省钱就省钱。随便找了个最便宜的虚拟主机,数据库也是最基础的那种,代码也写得挺顺手,没几天,一个能跑起来的雏形就搭好了。

东西做出来嘛总归想给人用用看,听听反馈。我就把链接悄悄地扔到了几个小群里,都是那种熟人小圈子。大家试用之后,都说好用,功能虽然简单,但挺实用。结果,我万万没想到的是,这东西它竟然自己“长腿”跑了。不是那种一夜爆红的火,而是那种口口相传、默默扩散的。今天这个朋友推荐给那个朋友,明天那个朋友又推荐给他的同事。慢慢地,每天注册的用户就蹭蹭地往上涨,从几十个,到几百个,再到几千个。虽然跟那些动辄几百万几千万的肯定没法比,但对于我那台,原本只打算给几十个人用的破服务器来说,那就是个天文数字!

那段日子,真的是把我折腾得够呛。用户那边老是抱怨网站卡顿,图片加载不出来,甚至直接就打不开了。我的手机每天晚上不定时就会收到各种报错短信,半夜常常被电话吵醒,起来就是看服务器日志,重启服务,修修补补。搞得我整个人焦头烂额,精神衰弱。我妈都看不下去了,说我一个好好的程序员,怎么搞得跟个“消防员”似的,整天救火。女朋友也跟我闹了好几回,觉得我连个周末都陪不了她,约会的时候也老是盯着手机看。那段时间,头发掉了不少,人瘦了一大圈,脾气也变得很暴躁。我真是头一次觉得,做程序员也能做得这么窝囊,被自己写出来的东西反过来摁在地上摩擦。

scale是什么意思?一篇文章帮你全面搞懂!

后来我实在没办法了,再这么下去,我人都要废了。咬着牙,开始拼命查资料,在网上各种论坛里发帖问,拉下脸去求教那些真正有经验的老哥。当时才发现,我之前对“scale”的理解,根本就是个屁。不是说你代码写得逻辑处理得快就行的,也不是说你服务器配置高,CPU核数多就完事儿的。这背后有一套大学问,比我想象的要复杂得多。

我学到的第一课:分而治之

我学到的第一课就是,不能把所有鸡蛋都放一个篮子里。以前我就一台服务器,所有的东西——数据库、图片、网站前端、后台程序——全都堆在上面。一台机器,啥都管。用户量少的时候看不出来,用户一多,立马就乱套了。后来才知道,你得把这些不同的功能给它分开了。数据库专门搞数据库的活,图片专门存图片,网站前端就管显示,后台程序专门处理逻辑。每一样都自己管自己,一台服务器不行,就再加一台,大家一起干活。这就叫什么“水平扩展”,通俗点讲就是“人多力量大”。一台机器累了,就让它歇会儿,让别的机器顶上。这样就算一台机器出了问题,整个系统也不会一下子全垮掉。

第二课:有个调度员很有用

然后还得搞个“调度员”出来。用户请求来了,不是直接想去哪个服务器就去哪个,而是先到这个“调度员”这里。这个“调度员”就很聪明,它会看看现在哪个服务器空闲,哪个服务器压力小,然后就把这个任务派给它。这样就不会出现一台机器忙得要死,另外几台机器却闲着没事干的情况。后来我才知道,这玩意儿就是所谓的“负载均衡”。有了它,用户过来的请求才能均衡地分摊到每一台机器上,每台机器都能发挥作用,谁也不会过劳死。还有,有些东西用户老是重复问,每次都跑去数据库里翻一遍,那多慢。我就学着把那些经常被问到的东西,先存起来,下次再问的时候,直接从这个“临时仓库”里拿出来,不用每次都去数据库里慢慢翻找。这样一来,速度一下就快多了,用户体验也好了很多,抱怨声也少了很多。

scale是什么意思?一篇文章帮你全面搞懂!

一步一步这么折腾下来,我的系统慢慢地就能扛住更多的用户了。虽然还是个小应用,离那些大厂的系统差远了,但至少不再轻易“趴窝”了。我也开始养成了习惯,以后再做任何东西,无论是大是小,我都会先想一想:它如果火了,或者用户量突然翻倍了,我该怎么去应对?还会不会继续“趴窝”?还会不会把我搞得焦头烂额?

现在回过头来看,真是庆幸当时那段被折腾得死去活来的日子。要不是当时被逼到那个份上,我可能到现在都还觉得“scale”是别人的事,跟我没关系。我倒是觉得,理解和实践“scale”,对我这种想把东西做长久,并且希望它真正能为别人创造价值的人来说,是实打实的必修课。这道理,就跟人生一样,你总得给自己留条后路,不能把所有希望和压力都寄托在一个点上。你得让自己的路子广一些,能抗住各种意外和冲击。否则,就像我那会儿,一点风吹草动,系统就崩了,人也就跟着崩了。

最新文章