“张教授,陆向阳的回答对不对啊?”

班里有同学忍不住问了一句。

张铭不动声色的沉吟片刻,点点头道:

“我只能说是很好的答案,但陆向阳的回答属於典型的性能优化思路。

属於治標不治本,只能让系统多撑一会儿。”

说完,他看向其他同学发问道:

“你们也可以想想这个问题!

在动资料库之前,有没有更根本的,属於『设计』和『架构』层面的事情要做?”

有同学这时举起了手:“张教授,我认为可以增加伺服器,扩容解决。”

张教授微微摇头,目光依旧带著鼓励:

“增加伺服器扩容,这確实是应对用户量增长的一种常见手段,但它和资料库优化一样,同样属於性能层面的调整,並非从设计架构根本上去解决问题。

大家再深入思考一下,当用户量从几百人暴增到十万人级別,系统在架构设计上首先要確保的是什么?”

教室里一片安静,大家都在努力思索。

过了一会儿,有个同学试探著说:

“是不是要先对系统架构进行重新评估和规划,看看现有的架构能不能支撑这么大的用户量,如果不行,就得重新设计?”

张教授露出讚许的神色:

“这个思路对了一部分,不过还不够全面。

从软体工程架构设计层面来看,面对用户量如此巨大的增长,系统第一个,也是最迫切需要做的事情是进行系统的可扩展性设计。

这意味著要从整体架构上考虑如何让系统能够方便地扩展,以应对未来可能出现的更大规模用户增长。

比如採用分布式架构,將不同的功能模块分布到不同的伺服器上,这样当某个模块压力过大时,就可以单独对该模块进行扩展,而不会影响到整个系统。

同时,还要考虑系统的容错性和高可用性设计,確保在部分伺服器出现故障时,系统依然能够正常运行,不会导致大量用户无法使用。”

说完,张教授又看向陆向阳:

“陆向阳,你之前从性能优化角度回答很不错,现在结合我刚刚说的,再谈谈你的想法?”

突然,陆向阳眼睛一亮:

“张教授,我明白了。

(请记住 看书就来 101 看书网,101??????.??????超方便 网站,观看最快的章节更新)

第一件最迫切的事,不是去优化某个具体部件,而是对系统进行拆分。

系统现在是一个庞大的单体架构,所有功能都挤在一起。

用户、商品、订单、消息这些模块高度耦合。

一旦某个功能出问题,或者需要扩展,会牵一髮而动全身。”

张教授脸上露出鼓励的微笑:

“你继续说。”

陆向阳点了点头: “所以,当用户量暴增十万后,首先要做的是架构重构,將单体应用拆分为微服务架构。

把用户服务、商品服务、订单服务、支付服务等都拆分成独立的,可以单独部署和扩展的服务。

这样,我们就可以针对访问量最大的服务,比如商品瀏览,进行独立扩容,而不会影响到其他服务,比如订单支付。

这样……才是从根本上解决问题的办法。”

“好啊!陆向阳的回答非常好!!!”

张教授笑容绽放,终於满意地点点头:

“这就是我今天想强调的,软体设计要先於代码实现。

你们作为大三的学生,不能只满足於写出能跑通的代码,更要开始思考系统层面的问题。

在项目初期,快速叠代用单体架构没问题,但一个有生命力的產品,必须在其成长过程中不断审视和重构它的架构。

工程师的价值,不在於写了多少行代码,而在於做出了多少正確的技术和架构决策。”

全班同学:“?????”

玛德!

人生的参差也太大了吧!

他们这些人第一次感觉到人与人之间的不同。

跟著,下课铃声响起。

张教授不徐不疾,转向全班最后总结道:

“陆向阳同学最后的回答,正是软体工程的精髓所在,要在正確的阶段,做出正確的权衡。

本章未完,点击下一页继续阅读。

其他类型小说相关阅读More+