1.架构的历程

四个大的架构发展阶段:
- 单体架构阶段
- 垂直架构阶段
- SOA 架构阶段
- 微服务架构阶段
1.1单体架构
1.无框架,直接调用底层api
以往是底层平台(操作系统)提供API让上层APP去调用。这样的软件控制权在APP上。这样使得系统的更新成本大,功能开发越多,维护的成本更大,导致了平台的发展局限性
2.简单的单层框架
代码层面没有拆分,所有的业务逻辑都在一个项目里打包成一个二进制的编译后文件,通过这个文件进行部署,并提供业务能力;
3.MVC 模式
系统内每个模块的功能组件按照不同的职责划分为模型(Model)、视图(View)、控制器(Controller)等角色,并以此来组织研发实现工作。
单层架构不足:
- 代码耦合,开发维护困难。
- 无法针对不同模块进行针对性优化。
- 无法水平扩展。
- 单点容错率低,并发能力差。
1.2垂直架构
当访问量逐渐增大,单一架构的应用已经无法满足需求,此时为了应对更高的并发和业务需求,我们需要根据需求对系统进行拆分。
垂直拆分优点:
- 系统拆分实现了流量分担,解决了并发问题。
- 可以针对不同模块进行优化。
- 方便水平扩展,负载均衡,容错率提高。
- 系统间相互独立。
不足:
- 服务之间相互调用,如果某个服务的端口或者ip地址发生改变,调用的系统得手动改变.
- 搭建集群之后,实现负载均衡比较复杂。
1.3 面向服务架构(SOA)
面向服务架构:面向服务架构(SOA)是一种建设企业 IT 生态系统的架构指导思想。以业务服务的角度和服务总线的方式,考虑系统架构和企业 IT 治理。SOA要解决的主要问题是:快速构建与应用集成。SOA能够在实际应用中获得成功基于两个重要的因素:灵活性和业务相关性。
五大特征:可重用性,松耦合,明确定义的接口,无状态的服务设计,基于开放标准。
1.4微服务架构
微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间的通信采用轻量级通信机制,这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务不可用的语言开发,使用不同的数据存储技术。
特点:
- 每个微服务都可以独立运行在自己的进程里。
- 一系列独立运行的微服务共同构建起整个系统。
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能。
- 微服务之间通过一些轻量的通信机制进行通信。
- 可以使用不同的语言与数据存储技术。
- 全自动的部署机制。
本文详细介绍了Java架构的发展历程,从最初的单体架构到垂直架构,再到面向服务架构(SOA),最后演变为微服务架构。单体架构面临耦合度高、扩展性差的问题,而垂直架构解决了部分并发问题但仍有服务调用的困扰。SOA强调业务服务和灵活性,而微服务架构则实现了服务的高独立性和轻量级通信,允许使用不同技术栈和数据存储。
4087





