软件架构演进过程

在《什么是微服务》章节提到:好的架构不是设计出来的,而是演进出来的。下面仅以我个人的思考及参考一些书籍及文献,得出的微服务架构演进过程,记录于此。

初始阶段的网站架构

这个时候的网站架构比较简单,通常只有一台服务器,这台服务器上包含了网站运行所需要的所有程序及组件。其架构如下图所示:

    应用与数据分离架构

    随着业务的不断发展,单台服务器渐渐无法满足需求,这是就需要将应用与数据分离来提升系统性能,其架构如下:

    使用缓存改善网站性能

    通常80%的业务访问会集中在20%的数据上(2/8法则:业务访问通常遵循帕累托原则,80%的请求集中在20%的数据上。将高频访问的20%数据存储在高速存储介质(如内存),减少对数据库的直接访问,从而提升整体性能。),可以使用缓存来优化访问性能。通过缓存可以减轻对数据库的压力,提升网站性能。其架构如下图所示:

    使用应用服务器集群

    以上架构的应用服务器只有一台,并发能力有限,容易成为性能瓶颈点。可以使用多台应用服务器,并使用负载均衡,分散应用服务器压力。其架构如下:

    数据库读写分离架构

    随着业务规模的扩大,数据库将很快成为性能瓶颈,这时可以使用数据库的主从复制、读写分离功能,降低数据库负载。其架构如下:

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

    使用分布式文件系统及分布式数据库,可进一步提高系统可用性,并提升响应速度,其架构如下:

    使用NoSQL和搜索引擎

    当系统中有海量数据存储及检索时,可以使用nosql数据库来支持海量数据的查询和存储,其架构如下图所示:

    业务拆分和分布式服务

    大型网站面对日益复杂的业务,通过拆分服务,使得各个功能模块分而治之,协调完成对应的业务需求,此实的架构如下图所示:

    好难画,取了别人的一张图:

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值