面向服务架构设计理论与实践

SOA 与微服务的区别

(1)微服务相比于 SOA 更加精细,微服务更多地以独立的进程的方式存在,互相之间并无影响。
(2)微服务提供的接口方式更加通用化,例如 HTTP RESTful 方式,各种终端都可以调用,
无关语言、平台限制。
(3)微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。

SOA架构以ESB链接各个子系统,是集中式的技术架构,应用服务间相互依赖导致部署复杂,应用间交互使用远程通信,降低了响应速度。
微服务架构是SOA架构的进一步优化,去除了ESB,是去中心化的分布式架构,降低了微服务之间的耦合程度,不同的微服务采用不同的数据库技术,服务独立,数据源唯一,应用极易扩展和维护,同时降低了系统复杂度。

SOA 主要协议和规范

Web 服务最基本的协议包括 UDDI、WSDL、SOAP
(1)UDDI 协议:统一描述、发现和集成协议。包含了服务描述与发现的标准规范,它使得商业实体能够彼此发现;定义它们怎样在 Internet 上互相作用,并在一个全球的注册体系架构中共享信息。
(2)Web 服务描述语言(WSDL):WSDL 是一个用来描述 Web 服务和说明如何与 Web 服务通信的 XML 语言。描述了 Web 服务的 3 个基本属性。
1)服务做些什么——服务所提供的操作(方法)。
2)如何访问服务——和服务交互的数据格式以及必要协议。
3)服务位于何处——协议相关的地址,如 URL。
(3)SOAP 协议:SOAP 是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML 的协议。
(4)REST 规范:为了让不同的软件或者应用程序在任何网络环境下都可以进行信息的互相传递。微服务对外就是以 REST API 的形式暴露给调用者。RESTful 即 REST 式的,是对遵循REST 设计思想同时满足设计约束的一类架构设计或应用程序的统称,这一类都可称为 RESTful。

标准

通信协议标准。SOA 服务用消息进行通信,该消息通常使用 XML Schema 来定义(也称作 XML Schema Definition,XSD)。

SOA的作用与设计原则

设计原则

1)无状态。以避免服务请求者依赖于服务提供者的状态。
2)单一实例。以高内聚的实现方法,来避免功能冗余。
3)明确定义的接口。服务的接口由 WSDL 定义,用于指明服务的公共接口与其内部专用实
现之间的界线。
4)自包含和模块化。服务封装了那些在业务上稳定、重复出现的活动和组件,实现服务的功
能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。
5)粗粒度。服务数量不应该太大,依靠消息交互而不是远程过程调用(Remote Procedure Call,
RPC),通常消息量较大,但是服务之间的交互频度较低。
6)服务之间的松耦合性。服务使用者看到的是服务的接口,其位置、实现技术和当前状态等
对使用者是不可见的,服务私有数据对服务使用者是不可见的。
7)重用能力。服务应该是可以复用的。
8)互操作性、兼容和策略声明。为了确保服务规约的全面和明确,利用策略来定义可配置的
互操作语义,来描述特定服务的期望、控制其行为。利用策略声明确保服务期望和语义兼容性方面的完整和明确。

SOA 的设计模式

服务注册表模式
企业服务总线模式
微服务模式

微服务架构围绕业务领域将服务进行拆分,每个服务可以独立进行开发、管理和迭代,彼此之间使用统一接口进行交流,实现了在分散组件中的部署、管理与服务功能,使产品交付变得更加简单,从而达到有效拆分应用,实现敏捷开发与部署的目的。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值