Go语言高并发与微服务实战 - 学习笔记 第2章 微服务概述 2.1 系统架构的演进 2.1.3 SOA面向服务架构

Go语言高并发与微服务实战 - 学习笔记

文章目录

      • Go语言高并发与微服务实战 - 学习笔记
      • 第2章 微服务概述
        • 2.1 系统架构的演进
          • 2.1.3 SOA面向服务架构

第2章 微服务概述

2.1 系统架构的演进

2.1.3 SOA面向服务架构

当垂直架构拆分的应用越来越多,就会出现多个应用都依赖的业务逻辑组件,并且各个应用进行交互的需求越来越频繁。

此时,就需要将部分通用的业务组件独立出来,并定义好服务间交互的接口,向外提供能力,让其他服务调用。恰巧这时出现了大型的网络服务提供商,这些企业依靠出售自身软件能力来赚取盈利,其他小型企业可以使用这些企业的对外服务,所以SOA面向服务架构应运而生。

它带来了模块化开发分布式扩展部署和服务接口定义等相对宽泛的概念。

SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

SOA中的接口独立于实现服务的硬件平台操作系统和编程语言,采用独立的方式进行定义。这使得构建在各种各样系统中的服务可以以一种统一和通用的方式进行交互。

实施SOA 的关键目标是实现企业IT资产的最大化作用,也就是建立企业服务总线,外部应用通过企业总线调用服务。

要实现这一目标,就要在实施SOA的过程中牢记以下特征:可从企业外部访问、随时可用、粗粒度的服务接口分级,松散耦合、可重用的服务、服务接口设计管理、标准化的服务接口、支持各种消息模式和精确定义的服务契约,如下图所示。

Go语言高并发与微服务实战 - 学习笔记 第2章 微服务概述 2.1 系统架构的演进 2.1.3 SOA面向服务架构_第1张图片

SOA服务架构都具有平台独立的自我描述XML文档,例如 Web 服务描述语言(WSDL, Web Service Description Language) 。

每个服务都使用 该语言描述自身提供的能力,并将自身注册到服务登记中心( Registry) 上。

服务消费者( Service Consumer ) 则从服务登记中心寻找并调用某一服务。

统一定义和集成(UDDI,Universal Description, Definition,and Integration)是服务登记的标准。

在上面那个示意图中,服务消费者可以通过发送消息来调用服务,这些消息由一个服务总线(Enterprise Service Bus)转换后发送给适当的服务实现。

这种服务架构可以提供一个业务规则引擎(Business Rules Engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础架构(Service Management Infrastructure),用来管理服务,提供类似审核、列表(billing)、日志等功能。

此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(Regulatory Requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。

SOA 架构的优点:

  • 将重复的功能抽取为服务,提高开发效率,提高系统的可重用性和可维护性。可以针对不同服务的特点制定集群及优化方案。
  • 采用 ESB 减少系统中的接口耦合。
  • 借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序 和业务流程

SOA 架构适用于大型软件服务企业对外提供服务的场景,对于一般业务场景并不适用,其服务的定义、注册和调用都需要较为繁琐的编码或者配置实现,并且业务总线也容易导致系统的单点风险并拖累整体性能。

你可能感兴趣的:(非零基础自学Go,微服务,架构,系统架构)