第884章 贏得生前身后名!
“张教授,陆向阳的回答对不对啊?”
班里有同学忍不住问了一句。
张铭不动声色的沉吟片刻,点点头道:
“我只能说是很好的答案,但陆向阳的回答属於典型的性能优化思路。
属於治標不治本,只能让系统多撑一会儿。”
说完,他看向其他同学发问道:
“你们也可以想想这个问题!
在动资料库之前,有没有更根本的,属於『设计』和『架构』层面的事情要做?”
有同学这时举起了手:“张教授,我认为可以增加伺服器,扩容解决。”
张教授微微摇头,目光依旧带著鼓励:
“增加伺服器扩容,这確实是应对用户量增长的一种常见手段,但它和资料库优化一样,同样属於性能层面的调整,並非从设计架构根本上去解决问题。
大家再深入思考一下,当用户量从几百人暴增到十万人级別,系统在架构设计上首先要確保的是什么?”
教室里一片安静,大家都在努力思索。
过了一会儿,有个同学试探著说:
“是不是要先对系统架构进行重新评估和规划,看看现有的架构能不能支撑这么大的用户量,如果不行,就得重新设计?”
张教授露出讚许的神色:
“这个思路对了一部分,不过还不够全面。
从软体工程架构设计层面来看,面对用户量如此巨大的增长,系统第一个,也是最迫切需要做的事情是进行系统的可扩展性设计。
这意味著要从整体架构上考虑如何让系统能够方便地扩展,以应对未来可能出现的更大规模用户增长。
比如採用分布式架构,將不同的功能模块分布到不同的伺服器上,这样当某个模块压力过大时,就可以单独对该模块进行扩展,而不会影响到整个系统。
同时,还要考虑系统的容错性和高可用性设计,確保在部分伺服器出现故障时,系统依然能够正常运行,不会导致大量用户无法使用。”
说完,张教授又看向陆向阳:
“陆向阳,你之前从性能优化角度回答很不错,现在结合我刚刚说的,再谈谈你的想法?”
突然,陆向阳眼睛一亮:
“张教授,我明白了。
(请记住 看书就来 101 看书网,101??????.??????超方便 网站,观看最快的章节更新)
第一件最迫切的事,不是去优化某个具体部件,而是对系统进行拆分。
系统现在是一个庞大的单体架构,所有功能都挤在一起。
用户、商品、订单、消息这些模块高度耦合。
一旦某个功能出问题,或者需要扩展,会牵一髮而动全身。”
张教授脸上露出鼓励的微笑:
“你继续说。”
陆向阳点了点头: “所以,当用户量暴增十万后,首先要做的是架构重构,將单体应用拆分为微服务架构。
把用户服务、商品服务、订单服务、支付服务等都拆分成独立的,可以单独部署和扩展的服务。
这样,我们就可以针对访问量最大的服务,比如商品瀏览,进行独立扩容,而不会影响到其他服务,比如订单支付。
这样……才是从根本上解决问题的办法。”
“好啊!陆向阳的回答非常好!!!”
张教授笑容绽放,终於满意地点点头:
“这就是我今天想强调的,软体设计要先於代码实现。
你们作为大三的学生,不能只满足於写出能跑通的代码,更要开始思考系统层面的问题。
在项目初期,快速叠代用单体架构没问题,但一个有生命力的產品,必须在其成长过程中不断审视和重构它的架构。
工程师的价值,不在於写了多少行代码,而在於做出了多少正確的技术和架构决策。”
全班同学:“?????”
玛德!
人生的参差也太大了吧!
他们这些人第一次感觉到人与人之间的不同。
跟著,下课铃声响起。
张教授不徐不疾,转向全班最后总结道:
“陆向阳同学最后的回答,正是软体工程的精髓所在,要在正確的阶段,做出正確的权衡。
本章未完,点击下一页继续阅读。