面试题:系统访问量很大的情况下收应该优化 MVC 哪层?
请详细说明一下思路。
面试题:系统访问量很大的情况下收应该优化 MVC 哪层?
请详细说明一下思路。
个人觉得应该是C层,如果C层处理的好可以通过各种缓存来加快速度
其实我觉得应该先profile... 如果真的有比较傻的瓶颈可能不花钱就解决了.
如果一定要0知识判断就M, 这个搞定后另外两个scale out容易些. 花钱加机器能解决总好过花钱也不能解决.
M层。
首先,最耗资源的一般都是对数据库的查询。
其次,数据库服务器也是最贵的。
最后,view层是关系到用户体验的,不建议最先优化。
为什么总有这么操蛋的面试题,你他妈不说瓶颈在哪,就是一本正经地瞎扯淡。。。
控制器层,尽量减少请求数,请求意味着链接,线程,内存等资源的开销,比如tomcat使用nio。合并图片,js等静态资源,使用浏览器缓存,cdn加速等。靠,话说我吧控制器跟试图层搞混了。
应该从最容易着手的View层下手,解决用户的访问体验,先保证系统正常运行
加大服务器的访问带宽,设置系统访问缓存系统,调整WEB服务器的性能问题,调整负载均衡服务器等~~~
然后调整数据库访问,调优SQL,读写分离,分表分库,设置数据1、2级缓存~~~
然后再去检查代码是否有不合理等地方~~~~
个人觉得在MVC框架中,当访问量上升,最先优化的是M层,其次是C层。
原因:
当访问量上升所遇到的性能瓶颈一般会在数据库方面,而跟数据库最有关系的就是M层,想要治本就得从M层着手了,读写分离、调优sql等等都是解决方法。
而C层的优化就包括更优的缓存部署方案,业务代码优化等等。