ad

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.8.3 面向服务架构

admin 76 2023-10-26

【摘要】 本书摘自《Java架构之完美设计 实战经典》一书中第2章,第8节,由颜廷吉编著。

2.8.3 面向服务架构

1. 面向服务概述

面向服务 (Service Oriented Architecture,SOA) 是一种体系结构,目标是在软件交互中获得松散耦合。 一个服务是服务提供者为服务消费者获得其想要的最终结果的一个工作单元面向对象编程的特征是将数据与操作绑定,是一种紧耦合模型。而面向服务思想明 显不同于面向对象编程,为了减少异构性、 互操作性和应对不断改变的需求问题,而具 有松耦合、位置透明、协议独立等特征。

基于这样的面向服务的体系结构,服 务使用者甚至不必关心与之通信的特定服 务,因为底层基础设施或服务“总线”将 代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术,特别是来自不同实现技术(如J2EE 或 .NET) 的规范不应该 影响面向服务用户。如果已经存在一个服务实现,可以重新考虑用一个“更好”的服务实 现来代替,新的服务实现必须具有更好的服务品质。

因为面向服务架构实现不依赖于具体技术,因此能够使用REST、SOAP、RPC-XML、 RMI、CORBA、DCOM等不同的技术实现。

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.8.3 面向服务架构

2.微服务架构

(1)概念

微服务 (Microservice) 是以专注于单一责任的小型功能模块为基础,通过 API 相互通 信的方式来完成复杂业务系统的一种架构设计思想。也就是指开发多个小型但有业务功能的 服务,每个服务都有自己的处理和轻量通信机制,可以部署在单个或多个服务器上。换句话 说,是把一个大型的单个应用程序和服务拆分为多个微服务。微服务也指一种松耦合的、有 一定上下文的面向服务架构,是近年来新兴的面向服务架构的升级版。

微服务系统要提供一套基础的架构,这种架构使得微服务可以独立部署、运行、升级, 不仅如此,这个系统架构还让微服务与微服务之间在结构上松耦合,而在功能上则表现为一 个统一整体。所谓的统一整体主要表现在以下几方面,目的就是有效地拆分应用,实现敏捷 开发和部署。

1)统一的风格界面。

2)统一的权限管理。

3)统一的访问入口。

4)统一的发布过程。

5)统一的日志方式。

6)统一的安全策略。

(2)优点

1)易于迭代

按业务拆分服务,这是水平拆分;在技术层面的前后分离,属于垂直拆分。这样经过横 纵的拆分,就把大的单一应用拆分成网状的小块应用,每个小块应用就可以由不同团队独立 开发,互不影响,加快推出产品的速度。这是微服务中“微”思想的体现。

2)独立部署

每个微服务既可以部署在不同的单独服务器,也可以部署在同一个服务器,而且服务之 间还可以互相隔离。这种松耦合的设计,充分体现了“我为人人、人人为我”的完美设计 理念,这是微服务中“服务”思想的体现。

3)交互轻便

轻量的通信协议和简单的数据结构即轻量API 通常采用HTTP+JSON 的方式。这样做使 得服务之间不再需要关心对方的模型,仅通过事先约定好的接口来进行数据流转即可。每个 微服务可通过最佳编程语言与工具进行开发,能够做到有的放矢地解决针对性问题。这是微 服务中“解耦”思想的体现。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.5.12 责任链模式
下一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.6.3.2. 主动与被动 MVC模式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×