1. 服务注册表模式

1.1 服务注册表

  • 服务注册表

    • Service Registry
    • 适用:主要在SOA 设计时段
    • 该注册表能够有效地支持SOA治理过程中服务合同、策略、元数据的开发、发布与管理工作
  • 策略执行点

    • Policy Enforcement Point
    • 负责在运行时对服务请求进行策略检查和执行
  • 服务注册厂商分类

    • 第一种:提供服务、策略、元数据注册表及信息库的纯SOA 厂商
    • 第二种:SOA 平台厂商:将注册表作为集成产品套件的一个组件

1.2 SOA治理功能

  • 服务注册

    • 务提供者向注册表公布服务的功能
    • 主要公布:服务合同
  • 服务位置

    • 帮助开发者查询符合要求的注册服务,并提供务合同
  • 服务绑定

1.3 注册表中的配置文件

  • 过程
    • 注册表中包含多个配置文件
    • 服务通过使用不同配置文件在不同生命周期移动
  • 意义:SOA 治理中最佳实践之一

2. 企业服务总线(ESB)模式

  • 概念
    • ESB (Enterprise Service Bus)
    • 由中间件技术实现的支持面向服务架构的基础软件平台
    • 支持异构环境中的服务以基于消息和事件驱动模式交互(而不是点对点)
    • 并且具有适当的服务质量和可管理性

《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-05-SOA设计模式-LMLPHP

  • ESB中以事件驱动的交互过程:

    • 由服务请求者触发一次交互过程,产生一个服务请求消息,并将该消息按照ESB 的要求标准化
    • 标准化的消息被发送给服务总线
    • ESB 根据请求消息中的服务名或者接口名进行目的组件查找,将消息转发至目的组件
    • ESB并最终将处理结果逆向返回给服务请求者
  • 事件驱动的优势

    • 最大限度上解耦了组件之间的依赖关系
    • 降低了软件系统互连的复杂性
  • ESB的核心功能:

    • 提供位置透明性的消息路由和寻址服务
    • 提供服务注册和命名的管理功能
    • 支持多种消息传递范型(如请求/响应、发布/订阅等)
    • 支持多种可以广泛使用的传输协议
    • 支持多种数据格式及其相互转换
    • 提供日志和监控功能
  • ESB的优点

    • 企业内部、外部系统之间可以很容易地进行异步或同步交互
    • 具有很强的扩展性、灵活性
    • 提高开发效率、降低了成本

3. Synchro ESB

  • 概念
    • 协同企业服务总线
    • 基于 SOA体系结构的服务整合软件平台 (国产软件)
  • 包含:
    • 集中式管理工具
    • 可视化应用程序开发界面
      《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-05-SOA设计模式-LMLPHP

3. 微服务模式

3.1 概述

  • 概念:
    • 微服务架构围绕业务领域将服务进行拆分
    • 每个服务可以独立进行开发、管理和迭代
    • 彼此之间使用统一接口进行交流
  • 意义
    • 使产品交付变得更加简
    • 实现敏捷开发与部署

《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-05-SOA设计模式-LMLPHP

  • 优点

    • 复杂应用解耦
    • 独立
    • 技术选型灵活
    • 容错
    • 松耦合,易扩展

3.2 微服务架构模式方案

3.2.1 聚合器微服务

1)概述
  • 概念
    • 聚合器调用多个微服务实现系统应用程序所需功能
  • 两种形式
    • 将检索到的数据信息进行处理并直接展示
    • 对获取到的数据信息增加业务逻辑处理后,发布成新的微服务
2)几种特殊的聚合微服务
  • 代理微服务

    • 聚合器微服务的一个变种
    • 仅进行委派请求和数据转换工作(不聚合数据)
  • 分支微服务器模式

    • 是聚合器微服务的一种扩展
    • 允许同时调用两个相互独立的微服务链

3.2.2 链式微服务

  • 概念:
    • 客户端或服务在收到请求后,会返回一个经过合并处理的响应,该模式即为链式微服务设

3.2.3 数据共享微服务

  • 概年:当服务之间存在强耦合关系时,可共享缓存、数据库存储

3.2.4 异步消息传递微服务

  • 方法:使用消息队列代
  • 缺点:可能会降低系统可用性,增加系统复杂性
  • 常用中间件:ActiveMQ、RabbitMQ、RocketMQ、Kafka

3.3 微服务架构面临的问题与挑战

  • 微服务架构分布式特点带来的复杂性
  • 微服务架构的分区数据库体系,不同服务拥有不同数据库
  • 系统测试的挑战
  • 大规模部署的挑战

《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-05-SOA设计模式-LMLPHP

04-25 10:17