在《什么是微服务》章节提到:好的架构不是设计出来的,而是演进出来的。下面仅以我个人的思考及参考一些书籍及文献,得出的微服务架构演进过程,记录于此。
初始阶段的网站架构
这个时候的网站架构比较简单,通常只有一台服务器,这台服务器上包含了网站运行所需要的所有程序及组件。其架构如下图所示:

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

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

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

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

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

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

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

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

528

被折叠的 条评论
为什么被折叠?



