首页 > 编程知识 正文

soa架构,soa架构与普通架构的区别

时间:2023-05-03 09:29:21 阅读:24227 作者:3695

1.SOA体系结构与微服务体系结构的区别首先是在3358www.Sina.com/和SOA之间,然后是微服务架构和http://

3358 www.Sina.com/http://www.Sina.com /他包含多个服务,是通过服务间相互依存最终提供一系列功能的设计方法。 服务通常以独立于操作系统进程的形式存在。 每个服务之间通过网络调用。

ESB其实与SOA体系结构相似。 微服务是在SOA上进行的升华,微服务体系结构强调的一个重点是“业务需要彻底的组件化和服务化”,现有的单业务系统是多个可以独立开发、设计和运行的小APP序列这些小APP应用程序之间通过服务进行交互和集成。

微服务架构=80%的SOA服务架构思想100%的组件化架构思想80%的区域建模思想

微服务网关ESB和微服务API网关。 1 .企业服务总线(ESB )简单地说,ESB是用于连接每个服务节点的管道。 为了集成到不同系统、不同协议的服务中,ESB进行消息的转换解释和路由工作,使不同的服务互联; 3358 www.Sina.com/http://www.Sina.com/API网关是服务器,是进入系统的唯一入口。 从面向对象设计的角度看,它类似于外观图案。 API网关封装系统内部的体系结构,并为每个客户端提供定制的API。 还可能具有其他角色,如身份验证、监视、负载平衡、缓存、请求切片和管理以及静态响应处理。 API网关方式的核心是所有客户端和消费端通过统一的网关访问微服务,在网关层处理所有非业务功能。 网关通常还提供对REST/HTTP的访问API。 服务端通过API-GW注册和管理服务。

3.SOA体系结构特点:

站在1.系统的角度,解决企业系统之间的通信问题,将原本零散的、未经规划的系统之间的网络结构组织成规则的、可管理的系统之间的星形结构。 这个步骤往往需要引进ESB、技术规范、服务管理规范等产品。 这一步要解决的中心问题是【秩序】

SOA(Service Oriented Architecture)“面向服务的架构”:功能的角度,将业务逻辑抽象为可复用、可组装的服务,通过服务组织实现业务的快速播放。 目的:将原有业务功能转化为通用业务服务,实现业务逻辑快速复用; 这个步骤要解决的中心问题是【复用】

2.微服务架构::从企业的角度,将企业功能抽象为可复用可组装服务的原本功能化的企业结构转变为服务化的企业结构,进一步提高企业的对外服务能力“前两个步骤都是从技术层面进行整合在第3步中,由业务驱动的业务部门封装在一个服务中。 这一步要解决的中心问题是【高效】

4 .微服务体系结构特点:2.

开发人员不再需要调整其他服务部署对本服务的影响。

2.API网关

开发者可以自由选择开发技术,提供API服务

:

每个微服务都有自己的数据库持久化业务数据每个微服务只能访问自己的数据库而不能访问其他服务的数据库某些业务场景需要在一个事务中更新多个数据库在这种情况下,也不能直接访问其他微服务的数据库,而是对微服务进行操作。 数据中心化进一步降低了微服务之间的耦合度,并且可根据服务使用不同的数据库技术(SQL、NoSQL等)。 在复杂的业务场景中,如果包含多个微服务,则通常在客户端或中间层(网关)进行处理。

系统集成

的Java EE部署体系结构通过表示层打包WARs,将业务层划分为JARs,最后作为EAR部署。 另一方面,微服务打开了这个黑匣子,将APP应用程序分割成一个个服务。 应用Docker技术,独立于服务器和数据模型,是整个堆栈APP应用程序,可以通过自动化独立部署,每个服务都在自己的流程中运行。 轻量级通信机制始终基于HTTP资源API,这些服务基于业务能力,可以集中管理(因为服务太多或不集中管理就无法进行DevOps )。 5 .主要区别是:

功能

SOA

微服务

组件大小

大型商业逻辑

个别任务或小业务逻辑

偶联反应

通常为松散耦合

总是松散耦合

公司体系结构

所有类型

专注于功能交叉团队的小型

管理

重点。

中央管理

着重分散管理

目标

确保应用能够交互操作

执行新功能、快速拓展开发团队

 

6.Dubbo服务的最佳实践

 分包

服务接口、请求服务模型、异常信息都放在api里面,符合重用发布等价原则,共同重用原则api里面放入spring 的引用配置。 也可以放在模块的包目录下。

粒度

尽可能把接口设置成粗粒度,每个服务方法代表一个独立的功能,而不是某个功能的步骤。否则就会涉及到分布式事务服务接口建议以业务场景为单位划分。并对相近业务做抽象,防止接口暴增不建议使用过于抽象的通用接口  T T<泛型>,接口没有明确的语义,带来后期的维护

版本

每个接口都应该定义版本,为后续的兼容性提供前瞻性的考虑 version (maven -snapshot)建议使用两位版本号,因为第三位版本号表示的兼容性升级,只有不兼容时才需要变更服务版本当接口做到不兼容升级的时候,先升级一半或者一台提供者为新版本,再将消费全部升级新版本,然后再将剩下的一半提供者升级新版本

预发布环境

推荐用法

在provider端尽可能配置consumer端的属性比如timeout、retires、线程池大小、LoadBalance

 配置管理员信息

application上面配置的owner 、 owner建议配置2个人以上。因为owner都能够在监控中心看到

配置dubbo缓存文件

注册中心的列表服务提供者列表


参考文献: 

http://www.uml.org.cn/zjjs/201708083.asp

https://zhidao.baidu.com/question/1899225333752310100.html

http://blog.sina.com.cn/s/blog_493a84550102wq50.html

 

 

 

 


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。