欢迎访问分类目录网
快审联系QQ:158925126当前位置:分类目录网 » 站长资讯 » 网站建设 » 文章详细 订阅RssFeed

干货:大牛介绍互联网应用架构演进过程

来源:本站原创 浏览:802次 时间:2016-10-15

  互联网的普及促进了各种创新应用的涌现,不过,由于是创新的应用,在搭建这些应用时也出现了各种各样的误区,比如:

  想要搭建一个电子商务的应用,首先想到的是套用阿里的方案,其实由于公司业务方向不同,很难直接套用别人的方案,更合适的做法是让互联网的技术架构随着业务的发展而不断拓展,这样既节省成本又提升效率;

  还有一个明显的误区是,为了追求技术而技术,很多架构师为了尝鲜,喜欢采用最新的技术,而采用新技术一般需要付出更高的成本,更重要的是,新技术能否支撑业务也是一个未知数,因为互联网的架构和传统软件有较大区别,传统的应用软件在开始建设时就知道要实现的功能,但互联网应用都是创新的应用,刚开始时大家并不完全确定业务方向和具体功能,需要根据具体的业务摸索着前进,新技术能否随着业务的演进而演进也是要充分考虑的。

  那到底互联网应用的技术架构该如何演进呢?用友能源研发中心副总经理闫建伟在用友能源技术交流会上做了《互联网架构演化》的主题分享与沟通,对这一问题进行了详细的解读和分析,据他介绍,互联网创新应用技术架构的演进可以通过以下十步逐级实现:

  一、采用简单的LAMP架构

  要做一个互联网应用,我们首先想到的应该是快速地开发出这个应用,推向市场,让市场去对其进行验证。在这个阶段一般是采用简单的技术,简单的设备,通常的技术架构是采用LAMP架构,L是Linix 、A 是Apache、M是 Mysql、P是 PHP,可以看出整个技术架构比较简单,但可以快速上线。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  LAMP架构

  二、应用服务与数据服务分离

  随着业务增加和用户访问量的增加,一台应用服务器已经无法满足网站的正常运行时,怎么办呢?在技术上,通常的做法是把应用和数据分开进行独立部署,根据业务发展情况,可以将1台服务器分成3台服务器,分别运行应用程序、数据库和文件系统,这3台服务器部署不同,对性能要求也不同,比如应用服务器通常需要处理大量的应用逻辑,那就需要更强、更快的CPU;数据库服务器通常要做大量的检索,因而需要更大的内存和更快的硬盘响应速度;文件服务器通常需要存储大量的文件,所以需要很大的存储硬盘。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  服务器分离结构

  三、使用缓存改善网站性能

  上面讲到了对服务器的要求,而随着服务的增加,数据会变多,这会造成数据服务器压力过大,整个网站的应用性能下降。我们知道,客户访问一般也存在二八原则,大量的访问会集中到少量的数据上,比如我们通常会点击那些评价好、信用好的商家的货物,这样就会造成某几个商品的点击率特别高,我们的技术对策是把经常访问的数据放到缓存里,不让他访问数据库,这样可以加快数据的访问速度,同时减少数据库的压力。

  缓存主要分为:第一、应用服务器本地缓存,应用服务器的本地缓存是访问速度最快的一种方式,缺点是应用服务器的缓存不可能无限扩容;第二,远程分布式缓存,远程分布式缓存可以使用集群方式,这样大量的服务器可以作为缓存服务器,通过这种方式,在理论上,可以实现缓存的无限扩容,当然,具体情况需要具体分析。使用缓存后,数据库压力得到缓解,网站的性能得到整体提升。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  本地缓存与远程分布式缓存

  四、使用应用服务器集群改善并发能力

  而随着业务的发展,业务服务器随时面临高并发的问题,单一的应用服务器不再能支持业务的发展。此时,通常的做法是通过应用服务器集群来解决高并发的问题,而不是更换服务器,不管多强大的服务器都无法满足网站持续发展的业务需求,因此通过集群的方式来分担应用服务器的压力是最优的选择方案。通过负载均衡调度服务器,可以将用户的请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加上更多的应用服务器,从而解决高并发的问题。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  服务器集群方式

  五、数据库读写分离

  上面提到通过缓存、集群可以解决性能和高并发的问题,那如果出现缓存失效和缓存穿透,或有些必须访问服务器的服务,如何解决性能问题呢?一般情况下,我们的服务器都有主从热备的功能,相当于我们设置了服务器的主从关系,通过这个功能让数据从主服务器复制到从服务器,由此可以实现数据库读写分离,就是写数据的时候只写到主数据服务器,然后通过主从复制的功能,把数据从主服务器复制到从服务器,读的时候只读从服务器,这样每个服务器承载的压力下降,并发变小,通常会设置一个服务器的访问模块,这样可降低网站的耦合性。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  数据库读写分离

  六、使用反向代理和CDN加速网站响应

  我们知道,CDN和反向代理都是缓存,只不过CDN是部署在网络运营商的机房,反向代理是部署在我们服务器的中心机房,他的目的是把一些静态资源,比如图片放到缓存里,这样用户访问的时候是先访问CDN服务器,也就是用户是从离他最近的网络运营商的机房访问用户希望访问的数据,这样可以提高用户的体验。如果穿透了CDN,这时来到反向代理服务器,从方向代理来访问资源,也不会影响用户的体验。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  使用CDN和反向代理

  七、分布式文件系统和分布式数据库系统

  任何的单一的数据服务器都满足不了网站业务持续增长的需求,数据库经过读写分离后,从一台拆分成两台服务器,但随着网站的发展依然无法满足性能的要求,这时需要使用分布式数据库和分布式文件系统。常用的方法是按表拆分和按业务拆分,最常用的是按业务拆分,将不同业务的数据部署在不同的数据库服务器上。按表拆分是数据库拆分的最后手段,只有在单表规模非常大的时候才使用这种方法。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  分布式文件系统和分布式数据库

  八、使用NOSQL和搜索引擎

  随着网站业务越来越复杂,对数据库存储和检索的需求也越来越复杂,网站需要采用非关系型数据库如NOSQL和非数据库查询技术如搜索引擎来提升网站性能。NOSQL和搜索引擎是互联网广泛应用的技术手段,他们对可伸缩的分布式特性可以很好的支持,通过统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  NOSQL和搜索引擎的部署

  九、对系统进行业务拆分、独立部署

  大型网站为了应付日益复杂的业务场景,通常会将系统拆分成多个子系统进行独立部署。比如滴滴打车,他就分为乘客端、司机端、支付端、分析系统,通常是按业务系统来拆分,然后每个业务系统又独立部署,这样有利于系统维护,同时减少服务器并发,有利于应用架构的承载,各个系统通过超链接的方式进行界面的联通,数据层通常是采用消息队列来实现数据分发。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  对业务进行拆分和独立部署

  十、分布式服务

  随着业务拆分越来越小,整个系统越来越庞大,应用系统的整体复杂度增加,维护起来就越困难。通常每一个应用系统都需要执行许多相同的业务操作,比如用户管理、商品管理等,那么可以将这些共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供公用服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体操作。


干货:厉害的来了!大牛程序员告诉你互联网架构如何演进

  分布式部署

  到这一步,一个创新的互联网应用的业务基本都可以支撑了。


公司企业大全

推荐站点

  • 游软盟 游软盟

    游软盟是一个免费的应用下载网站,为用户提供好玩的手机游戏、实用的手机软件下载,我们也会及时

    app.ufolm.com
  • 股道边资源网 股道边资源网

    股道边网是国内拥有非常丰富齐全的股票期货指标公式量化模型资源分享中心,拥有丰富的股票指标公

    www.de6688.com
  • 任推帮 任推帮

    任推邦.地推产品中心,是BD邦是商务地推服务平台,BD邦通过汇集海量的商务合作信息,聚集各

    dt.bd.cn
  • 好完美 好完美

    完美国际私服【www.haowm.com】好完美每日更新国内好玩完美sf游戏,包括最新完美

    www.haowm.com
  • 宝鸡便民网 宝鸡便民网

    宝鸡便民网/宝鸡信息网/宝鸡生活网/0917/(www.0917.cn)宝鸡便民信息推广平

    www.0917.cn
  • 问答联盟 问答联盟

    问答客是一个回答各种问题的网站,在这里,也许你的疑惑可以得到解决

    ask.ufolm.com
  • 重庆自动化设备 重庆自动化设备

    重庆磊明工业自动化设备有限公司是一家专业从事非标自动化设备、自动化检测设备、自动化装配设备

    www.leimingauto.com
  • 音飞网 音飞网

    音飞网致力于翻译不同语种网民的网文,博文,评论,文章等,秉承\"各美其美,美人之美,美美与

    www.innfey.com
  • 稀土掘金 稀土掘金

    掘金是面向全球中文开发者的技术内容分享与交流平台。我们通过技术文章、沸点、课程、直播等产品

    juejin.cn