本文介绍: 随着项目使用者范围用户体积的不断扩大,最原始的单体项目已经无法很好地支撑现代项目所需的要求。因此,项目的架构也随之不断演进本文介绍架构演进过程初步了解微服务架构


前言

随着项目从使用者范围用户体积的不断扩大,最原始的单体项目已经无法很好地支撑现代项目所需的要求。因此,项目的架构也随之不断演进本文介绍架构演进过程初步了解微服务架构

一、项目扩展

AKF扩展立方体,取自畅销书《The Art of Scalability》,是AKF公司技术专家应用扩展的精妙总结
在这里插入图片描述

这一理论为我们揭示了单体系统无限扩展的三个重要维度

X轴,通过水平复制可以增加系统的节点数量,实现负载均衡故障容忍。这种扩展方法提高系统可用性和可伸缩性,又增强了系统弹性可靠性
Y轴,通过业务拆分可以将系统拆分多个服务,实现服务化架构和微服务架构。这种扩展方式可以提高系统的模块化程度,降低系统间的耦合度,从而更好地应对复杂业务需求和变化。
Z轴,通过数据分片,增加单个节点处理能力提高系统的性能吞吐量。这种扩展方式能够轻松地满足系统的需求,同时也降低了系统复杂度维护成本

单纯的定义可能不是很好理解这里我们举个例子大家应该都用过打车软件比如滴滴
假设这个打车软件从开始就是一个单体应用。在司机和乘客不多的时候,都可以正常使用。但是到了下班高峰期或者旅游高峰期,数据量忽然增长,打车软件出现问题这个时候可以通过水平复制来进行处理,多加几套相同的服务,支撑住用户请求即可。为了让打车软件收益更多,推出了很多招揽司机和给乘客发送红包的促销活动,单个地区的数据量又再次暴涨。这时,就需要将目前的单体应用切分,推出乘客服模块司机服务模块订单模块,投诉模块等等。以此来应对客户的各项需求。但随着用户群体的不断扩大,这个打车软件已经覆盖了不止一座城市数据量再次增加。这个时候可以通过地区进行切分,每个地区使用自己独立数据库

总之,AKF扩展立方体为我们呈现了一种系统化的应用扩展方法。遵循这三个扩展模式,我们能够构建一个无限扩展的单体系统,从而实现系统的持续增长优化

二、架构演进

通过以上的示例可以明显地观察到,在项目的扩展过程中,架构的不断演进不可避免的。从单体用到微服务应用,也是ORM到SOA的转变。
在这里插入图片描述
下面看下图框架的一些基本特点。

ORM框架

MVC框架

RPC框架

SOA框架

通过上面打车软件例子结合几个框架的特点,不难看出,在项目构建初期,由于用户人数不足、服务过于单一,仅通过简单的ORM架构或者MVC架构就可以满足初期的项目需求。但随着业务扩大,用户增多,RPC架构和SOA架构逐渐取代之前的架构,以便满足更加丰富的用户需求每个架构的演进,都是为了解决一个架构带来的问题

其实面向服务的SOA架构,已经有了微服务架构的雏形。微服务架构是一种更加轻量化面向服务的架构风格,它将应用程序分为一组小型服务单元每个服务单元具有自己独立部署运行监控能力。微服务架构的出现解决SOA架构在大型组织中的复杂问题。SOA架构演进成为微服务架构的关键是将服务分解为更小的服务单元,并使用容器化的方式进行部署运行


总结

通过对AKF扩展立方的阐述,说明了单体系统不断扩展的三个方向。随着项目的扩展,底层框架也在不断演进,来适应新的需求。为了项目有更好的可扩展性可维护性可靠性,同时也是为了可以从容应对技术栈的升级,微服务架构也就应运而生,成为原生中的一员。

原文地址:https://blog.csdn.net/moon_ly/article/details/134718368

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_42218.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注