假设我们现在有一个系统,需要满足用户根据不同商品进行下单的操作,简而言之。我们需要三个服务,商品,用户,订单。以及对应三个服务的存储。

单应用架构

一个机器,部署三个服务,同时数据也部署在服务器上,整体系统就是一个应用。


[分布式]分布式架构的演化_分布式架构的演化

image.png

应用服务器与数据服务器隔离

将数据的存储单独放置,变成两个服务器,应用服务器与数据服务器


[分布式]分布式架构的演化_分布式架构的演化_02

image.png

应用服务器集群

在单机压力到达瓶颈后,使用集群来处理业务请求,将应用部署在多台服务器上。


[分布式]分布式架构的演化_分布式架构的演化_03

image.png

应用服务器负载均衡

解决服务负载不均衡问题,充分利用服务器集群的性能

[分布式]分布式架构的演化_分布式架构的演化_04

image.png

读写分离

读写分离,解决数据库压力。


[分布式]分布式架构的演化_分布式架构的演化_05

image.png

搜索引擎

进一步降低数据库压力,引入搜索引擎,辅助数据检索


[分布式]分布式架构的演化_分布式架构的演化_06

image.png

引入缓存

以mysql举例,mysql 3000qps,无法完成更高的数据请求,引入缓存可以有效阻挡数据库的访问。


[分布式]分布式架构的演化_分布式架构的演化_07

image.png

数据库拆分

单数据库存储数据较多会导致耗时增长,通过分库分表可以减少单数据库数据总量,减少耗时。

[分布式]分布式架构的演化_分布式架构的演化_08

image.png

应用拆分

将商品、订单、用户拆分为三个应用,各个应用完成各自的本质工作,解耦关联。


[分布式]分布式架构的演化_分布式架构的演化_09

image.png

服务化

将不同应用组建为服务,整合不同功能模块,统一收口,由不同的中心进行处理。


[分布式]分布式架构的演化_分布式架构的演化_10

image.png