童话说说技术创业美文职业
快好知
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

系统重构小手术与伤筋动骨

12月24日 浅时光投稿
  所有的项目都需要重构吗?你知道在什么时机才需要进行项目重构吗?今天点融黑帮软件开发工程师Fisher来和大家分享一下系统重构的一点心得。
  重构的目的
  首先不是所有的项目都需要重构,就项目本身而言重构并不是一件很好的事情,不但不会带来很明显的效益,相反可能会对当前系统产生一定的风险。然而当你发现的你的系统已经不能支持快速发展的业务需求,QPS越来越高,数据库压力越来越大,很难在现有的系统中展开新的业务时,你就不得不考虑一下重构。
  动动小手术
  重构就像医生给病人做手术,根据病人病情来决定是否动手术,如果小手术就能解决的问题,就没必要进行大的操刀,系统也一样,越是底层的,框架级的越不要轻易重构;一旦伤筋动骨带来的影响就是毁灭性的。
  比如只是某个WEB页面响应时间过长,一般在应用层就可以解决,不涉及到架构或是框架层面,方法一般是先检查页面是渲染时间过长还是服务端响应过慢;如果是前者,可以考虑调整静态资源的加载顺序,减少无关的JS代码,延迟无需同步加载的JS,Img等。如果是后者,可以考虑前端是否可以异步调用后端请求,或者合并API减少调用次数,降低服务端响应时间,这里可以考虑优化API确定时间是消耗在复杂逻辑计算上,或是DB的数据查询上,还是网络间的通信上,对症下药。
  优化代码逻辑,减少不必要的冗余计算,或者减少DB查询次数,增加缓存,同步转异步等都是优化方向,根据不同业务需求选择不同的优化方向。
  伤筋动骨
  当你发现上述小的改动做完之后,服务器压力依然很大,CPU负载还是很高,DB压力依旧很大,单表数据还是猛增,这时候你该考虑做个大手术了。可以从系统架构入手。
  拆分
  除了增加服务器外,垂直拆分也是不错的选择,将服务器模块化,根据业务将不同的请求分发在不同的服务器上,不但可以降低单台服务器的访问压力,还可以降低风险等级,即使某个服务器宕了,也不会对其他服务器造成致命的影响
  SOA
  服务化可以让业务调用更加清晰,不但可以让复杂的业务碎片化,也可以更快的定位解决线上问题
  缓存
  因为DB的资源是极其宝贵的,降低DB压力必不可少,对于实时性能不高的响应,
  缓存绝对是不二的选择。本地缓存,Memcache,Redis等都是目前不错的方式。
  读写分离,分库分表
  当对DB的操作大部分都是read或者write操作时,可采用读写分离,这里需要考虑数据同步的问题,是否写操作需要实时显示。当写操作非常频繁或者随着时间的推移单表数据已经过于庞大达到千万级别时,需要考虑分库分表,提高单表的查询效率。
  由于篇幅所限,这里只做了概括性的描述,不能一一展开了。提醒一点很重要:一定要在保证系统的稳定性的前提下才能重构,万不能为了重构而重构,本末倒置得不偿失。
投诉 评论 转载

新人快速落实idea的步骤:优秀应用开眼的初步需求分析amp来自school的pm小学生,人人最近2个月更新的分章大部分都看了,非常感谢众多前辈的无私分享。这篇文章主要写给其他仍在摸索的新人,同时也希望能有前辈的指点。了解……易信的突围赛:堪忧的未来如何突围?QQ为微信充当了奶妈的角色为其熟人社交做了很多铺垫,因此微信能够得以迅速壮大,成为社交界的老大,但是易信不一样,易信没有这样的堪忧的未来从信息架构来看,易信的布局和……竞品分析与产品分析,清楚了吗?当年刚刚入产品经理的这一行当时候,第一节课学习的就是如何对产品进行分析。但是随着年龄的增长,时常感到自己对竞品分析与产品分析理解的浅薄,这里简单总结一下竞品分析与产品分析的理解……细数中国互联网用户的九大行为特征近半年持续关注了一些用户反馈和客服电话,从一些常见问题中总结出了八点互联网用户常见心理特征,在此共享,希望能共同努力提高用户体验。惯性用户:“你们的排序按钮为什么没……产品心理学:不是我们选择了“简约”,而是“简约”选择了我们德国工作设计之父DieterRams曾经曰:“优秀的设计是简洁的”,伟大的乔布斯也是一个极简主义。甚至我等这些产品汪们也在自己的产品中有的没的地追求起来极简主义,这是弄啥嘞……如何通过按键颜色的对比来引导用户你有没有过意外点错按键的时候?当用户没有被正确引导时往往会在模态窗口上做出错误的决策。很多模态窗口会在不明确不同行动区别的条件下就弹出来。不同按键之间明确的颜色对比能够引……HybridApp中原生页面VSH5页面其各自的优劣势也有很多前辈都已经总结过了,我稍微记录并归纳下(本文中的相对相比较都是针对这两种方式而言的)。原生页面优势:(1)运行速度比较快(2)能使……系统重构小手术与伤筋动骨所有的项目都需要重构吗?你知道在什么时机才需要进行项目重构吗?今天点融黑帮软件开发工程师Fisher来和大家分享一下系统重构的一点心得。重构的目的首先不是所有的项目……实战经验我们如何获取产品需求的?我们公司是做外汇交易平台的,用户是散户,但是客户却是外汇交易商,例如激石。一般跟合作伙伴打交道的都是老板,后期是技术支持人员,我们根本没有机会获取用户的第一手需求,也不知道他们……奇思妙想起床失败?让这款App拯救你听说有句话是“每天叫醒你的不是闹钟,而是梦想”,但是以小生上大学以来的经历,私以为应该是“每天叫醒我的不是闹钟,而是早课”。为了养成早起的习惯,小生多次设定闹钟,或是和室……从纵向到横向!给转向设备做设计的基础知识全科普编者按:本文译自以脱水干货知名的网站SMASHINGMAGZINE,聊聊当手机平板旋转时该如何设计,才能做到流畅无形,在交互和视觉上怎样创造更好的体验,全是基础知识,强烈建议学……实战案例使用iNPD创造突破性产品概述iNPD(integratedNewProductDevelopment):整合新产品开发,或成为一体化新产品开发。一种产品开发的方法,强调开发团队以用户需要、要求和……
做网页的公司要避免被一些问题误导如何做一个网页吸引访问流量如何做一个网页能被蜘蛛的青睐做网页对于重做的处理做法怎么样建设网站能增加回访率建设网站时要关注与收录有关的元素自己怎么做网站才有确保利于排名企业网站判断是否成功的几个因素如何做一个简单的网站可以在上面放文档建设网站如何得到大众的青睐公司网页建设要为以后的引流做准备如何建设一个网站才有理想的体验
我心中的桃花源我是一只白鹅程序员未来会成为非常内卷式的职业吗?关于挫折的话题作文精选合集怎样防止晚饭吃太多?孩子近视150度,练眼后得到恢复!爱尔康是哪个国家的品牌家有自闭症小朋友,家长心得《甄嬛传》中何眉庄为何要在去甘露寺前给温宜公主下药?热议聚热 祖坟风水的影响有多大起点学院互联网运营课程启动内测你敢错过吗顺产撕裂和侧切哪个伤害大

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界