SOA(面向服务的架构)
什么是SOA
百度百科
通俗的来讲:SOA是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于操作系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行通信。
什么是SOA服务
SOA服务是独自包含单独的系统。就像黑盒子,我们不需要了解业务服务的内部工作细节只需要关注输入和输出。
主要特点
- SOA组件是松耦合的。每一个服务都是独自包含单独存在的逻辑可以由不同的系统。
- SOA服务都是自定义的。
- SOA服务是黑匣子。服务隐藏有内在的复杂性。他们只使用交互消息,通过虚拟化一个服务为黑盒子。
- SOA服务保持在一个中央存储库。应用程序可以在中央存储库中搜索服务,并调用相应服务。
- SOA服务可以编排和链接实现一个特定功能:例如使用SOA可以松散耦合的方式管理服务之间的工作流。
SOA和微服务的区别
微服务是面向服务架构发展的下一步。这种架构类型是开发软件,Web或移动应用程序作为独立服务套件的一种特殊方式 - a.k.a微服务。创建这些服务仅用于一个特定的业务功能,例如用户管理,用户角色,电子商务购物车,商品展示 ,搜索引擎,社交帐号登录等。此外,它们之间完全相互独立,这意味着它们可以用不同的编程语言并使用不同的数据库,集中式服务管理几乎不存在,微服务使用轻量级HTTP,REST或Thrift API互相进行通信。
SOA和微服务的区别,即微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化,微服务是SOA的一种轻量级的解决方案,其本质还是SOA,只是更容易落地而以。微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端webui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。
功能 | SOA | 微服务 |
组件大小 | 大块业务逻辑 | 单独任务或小块业务逻辑 |
耦合 | 通常松耦合 | 总是松耦合 |
公司架构 | 任何类型 | 小型、专注于功能交叉团队 |
管理 | 着重中央管理 | 着重分散管理 |
目标 | 确保应用能够交互操作 | 执行新功能、快速拓展开发团队 |
企业服务总线(EnterpriseServiceBus,ESB)
企业服务总线,即ESB全称为Enterprise Service Bus,指的是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素,ESB构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分。
ESB和微服务API网关
ESB(企业服务总线),简单 来说 ESB 就是一根管道,用来连接各个服务节点。为了集 成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通。
API网关:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。
参考原文:https://blog.csdn.net/zpoison/article/details/80729052