面向服务架构
富客户端、客户端-服务器模式、基于 ESB 企业服务总线的 SOA 服务导向架构、microservices architecture 微服务架构,微服务架构是循着这条演进路线发展而来的。客户端-服务器模式可用于解释现行的很多架设,如 hsf 服务即包含客户端和服务端,此外还有微服务架构中的配置中心;redis 消息服务;sql 服务器和应用服务器的关系也是客户端-服务器模式。基于 ESB 企业服务总线的服务架构通常会聚焦于服务的注册和调用,未深入服务的集成、拓展和复用。如钟华在《企业IT架构转型之道》中所提到的,面向服务架构的核心在于服务的复用,微服务是 SOA 的一个演化。在面向服务架构中,系统的功能以服务的形态呈现,每一个服务来自于独立的服务器,便于水平扩展。
它的优点即为缺点,因为在低耦合的各服务单独部署的情况下,一方面会便于开发和水平扩展,另一方面众多的服务会造成其调用链路过长,影响性能,难于管理和失败回滚。
Software Architecture Patterns给出了下面这张微服务架构图。可是在实际工程中,结合业务所设计的微服务架构远不止这么简单:
![2c96bda04c3aca6133b63bad0ce4add8.png](https://img-blog.csdnimg.cn/img_convert/2c96bda04c3aca6133b63bad0ce4add8.png)
云架构
Software Architecture Patterns中称,云架构没有中央数据库,而是将数据复制到处理单元的内存中,再由处理单元执行其业务逻辑。云架构由两部分构成:
- 处理单元:实现业务逻辑。就笔者理解,实例比如云计算引擎中的服务器,或者 web 应用的线程。
- 虚拟中间件:负责通信、保持 sessions、数据复制、分布式处理、处理单元的部署。
- Messaging Grid 消息中间件:管理用户请求和 session。当一个请求抵达时,将其路由到对应的处理单元。
- Data Grid 数据中间件:将数据同步到每一个处理单元。
- Processing Grid 处理中间件:可选。当请求涉及多个处理单元时,该中间件负责协调处理单元。
- Deployment Manager 部署中间件:负责处理单元的启动和关闭(实现弹性伸缩),监控负载和响应时间。
![83db69b3cd28440ab60859bc206da9ba.png](https://img-blog.csdnimg.cn/img_convert/83db69b3cd28440ab60859bc206da9ba.png)
云架构模式即见于云计算引擎,如数据技术提到的。servlet 应用也可视为单机环境中的云架构。
分层架构
分层架构将系统功能划分为几个独立的层次,每一层只依赖下一层提供的服务和设施