分布式微服务架构:原理与实战
上QQ阅读APP看书,第一时间看更新

1.2 SOA服务化架构

当水平分层应用越来越多时,应用之间的交互不可避免,我们需要将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心。同时将公共API抽取出来,作为独立的公共服务供其他调用者消费,以实现服务的共享和重用,降低开发和运维成本。应用拆分之后会按照模块独立部署,接口调用由本地API演进成跨进程的远程方法调用,具体如图1-4所示。

图1-4 SOA服务化原理图

应用和服务之间的远程调用或者服务之间的远程调用通常有两种方式,即基于HTTP的远程调用和基于RPC的远程调用。

1.2.1 SOA概述

SOA(面向服务的架构)将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。

SOA是一种粗粒度、松耦合的服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。SOA可以看作是B/S模型以及Web Service技术之后的自然延伸。

SOA面向服务架构是站在一个新的高度理解企业级架构中的各种组件的开发、部署形式的,它将帮助企业系统架构者更迅速、更可靠、更具重用性地架构整个业务系统。SOA架构能够更加从容地面对业务的急剧变化。

1.2.2 SOA的特征

SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化作用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:

  • 可从企业外部访问。
  • 随时可用。
  • 粗粒度的服务接口分级。
  • 松散耦合。
  • 可重用的服务。
  • 服务接口设计管理。
  • 标准化的服务接口。
  • 支持各种消息模式。
  • 精确定义的服务契约。

1.2.3 SOA面临的问题

SOA是一种粗粒度、松耦合的服务架构,随着业务的不断发展,服务数量越来越多,服务治理、服务运维、服务日志在线搜索查询、服务性能、面向服务后服务数量暴增对运维人员的挑战等一系列问题接踵而来。基于这些问题,分布式微服务架构应运而生。