文章目录
- 1. 服务注册表模式
- 1.1 服务注册表
- 1.2 SOA治理功能
- 1.3 注册表中的配置文件
- 2. 企业服务总线(ESB)模式
- 3. Synchro ESB
- 3. 微服务模式
- 3.1 概述
- 3.2 微服务架构模式方案
- 3.2.1 聚合器微服务
- 1)概述
- 2)几种特殊的聚合微服务
- 3.2.2 链式微服务
- 3.2.3 数据共享微服务
- 3.2.4 异步消息传递微服务
- 3.3 微服务架构面临的问题与挑战
1. 服务注册表模式
1.1 服务注册表
-
服务注册表
- Service Registry
- 适用:主要在SOA
设计时段
- 该注册表能够有效地支持SOA治理过程中服务合同、策略、元数据的开发、发布与管理工作
“开发、发布与管理”修饰“服务合同、策略、元数据”
任何帮助注册、发现和检索服务合同、元数据和策略的信息库、数据库、目录或其他节点都可以被认为是一个注册表。
-
策略执行点
- Policy Enforcement Point
- 负责在运行时对服务请求进行策略检查和执行
PEP根据预定义的策略规则,对进入系统的服务请求进行验证和过滤,确保只有符合规定的服务能够被执行
-
服务注册厂商分类
- 第一种:提供服务、策略、元数据注册表及信息库的纯SOA 厂商
- 第二种:SOA 平台厂商:将注册表作为集成产品套件的一个组件
1.2 SOA治理功能
-
服务注册
- 务提供者向注册表公布服务的功能
- 主要公布:服务合同
包括:服务身份、位置、方法、绑定、配置、方案、策略等描述性属性
-
服务位置
- 帮助开发者查询符合要求的注册服务,并提供务合同
-
服务绑定
服务的消费者利用检索到的服务合同来开发代码,开发的代码将与生产者提供的注册在SOA的服务绑定,已实现互动
1.3 注册表中的配置文件
- 过程
- 注册表中包含多个配置文件
- 服务通过使用不同配置文件在不同生命周期移动
- 意义:SOA 治理中最佳实践之一
2. 企业服务总线(ESB)模式
- 概念
- ESB (Enterprise Service Bus)
- 由中间件技术实现的支持面向服务架构的基础软件平台
- 支持异构环境中的服务以基于消息和
事件驱动
模式交互(而不是点对点) - 并且具有适当的服务质量和可管理性
-
ESB中以事件驱动的交互过程:
- 由服务请求者触发一次交互过程,产生一个服务请求消息,并将该消息按照ESB 的要求标准化
- 标准化的消息被发送给服务总线
- ESB 根据请求消息中的服务名或者接口名进行目的组件查找,将消息转发至目的组件
- ESB并最终将处理结果逆向返回给服务请求者
-
事件驱动的优势
- 最大限度上解耦了组件之间的依赖关系
- 降低了软件系统互连的复杂性
-
ESB的核心功能:
- 提供位置透明性的消息路由和寻址服务
- 提供服务注册和命名的管理功能
- 支持多种消息传递范型(如请求/响应、发布/订阅等)
- 支持多种可以广泛使用的传输协议
- 支持多种数据格式及其相互转换
- 提供日志和监控功能
-
ESB的优点
- 企业内部、外部系统之间可以很容易地进行异步或同步交互
- 具有很强的扩展性、灵活性
- 提高开发效率、降低了成本
3. Synchro ESB
- 概念
- 协同企业服务总线
- 基于 SOA体系结构的服务整合软件平台 (国产软件)
- 包含:
- 集中式管理工具
- 可视化应用程序开发界面
3. 微服务模式
3.1 概述
- 概念:
- 微服务架构围绕业务领域将服务进行拆分
- 每个服务可以独立进行开发、管理和迭代
- 彼此之间使用统一接口进行交流
- 意义
- 使产品交付变得更加简
- 实现敏捷开发与部署
-
优点
- 复杂应用解耦
由于单个微服务功能单一、复杂度低,小规模开发团队完全能够掌握,易于保持较高的开发效率,且易于维护。
- 独立
独立开发、部署、测试
- 技术选型灵活
技术去中心化,每个微服务选择自己合适的技术和开发语言。
- 容错
- 微服务间相互独立,故障会被隔离
- 可通过重试、平稳退化等机制实现应用层的容错
- 松耦合,易扩展
3.2 微服务架构模式方案
是系统应用开发的一种设计思想,没有固定开发模式
3.2.1 聚合器微服务
1)概述
- 概念
- 聚合器调用多个微服务实现系统应用程序所需功能
- 两种形式
- 将检索到的数据信息进行处理并直接展示
- 对获取到的数据信息增加业务逻辑处理后,发布成新的微服务
即,提供一个更高层次的组合微服务
2)几种特殊的聚合微服务
-
代理微服务
- 聚合器微服务的一个变种
- 仅进行委派请求和数据转换工作(不聚合数据)
-
分支微服务器模式
- 是聚合器微服务的一种扩展
- 允许同时调用两个相互独立的微服务链
3.2.2 链式微服务
- 概念:
- 客户端或服务在收到请求后,会返回一个经过合并处理的响应,该模式即为链式微服务设
如,服务A 收到请求后会与服务B 建立通信,服务B 收到请求后会与服务C 建立通信,依次往下游发送请求,并对结果进行合并处理后作为请求响应返回上游服务调用者。
3.2.3 数据共享微服务
- 概年:当服务之间存在强耦合关系时,可共享缓存、数据库存储
3.2.4 异步消息传递微服务
- 方法:使用消息队列代
- 缺点:可能会降低系统可用性,增加系统复杂性
- 常用中间件:ActiveMQ、RabbitMQ、RocketMQ、Kafka
3.3 微服务架构面临的问题与挑战
- 微服务架构分布式特点带来的复杂性
- 微服务架构的分区数据库体系,不同服务拥有不同数据库
- 系统测试的挑战
- 大规模部署的挑战