大家好,欢迎来到IT知识分享网。
SOA服务治理
为什么会出现SOA
系统架构演变
随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。
从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构。让我们来看一下它们各自的特点:
集中式架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。
存在的问题
· 代码耦合,开发维护困难
· 无法针对不同模块进行针对性优化
· 无法水平扩展
· 单点容错率低,并发能力差
垂直拆分
当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分:
优点:
· 系统拆分实现了流量分担,解决了并发问题
· 可以针对不同模块进行优化
· 方便水平扩展,负载均衡,容错率提高
缺点:
· 系统间相互独立,会有很多重复开发工作,影响开发效率
分布式服务
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,
使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式调用是关键。
优点:
· 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率
缺点:
· 系统间耦合度变高,调用关系错综复杂,难以维护
SOA
由上文,我们可以得知现如今的开发大都不采用集中架构, 垂直架构, 例如ssm开发的项目,多为分层的,controller层/service层/mapper层等, springBoot的开发将这些层级分成了模块, 但如果将每个服务, 分成模块就会产生很多的模块.
当服务越来越多, 容量的评估, 小服务资源的浪费便逐渐显现.所以,一个调度中心于多服务的系统而言显得十分有必要.
基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键
解决了什么问题
- 服务越来越多, 需要管理每个服务的地址
- 调用关系复杂, soa方便理清依赖关系
- 服务过多, 服务状态难以管理, 无法根据服务情况动态管理
服务治理要做什么
- 服务注册中心, 实现服务的自动注册和发现, 无需人为记录服务地址
- 服务自动订阅, 服务列表自动推送, 服务调用透明化, 无需关心依赖关系
- 动态监控服务状态, 人为控制服务状态
缺点
- 服务间会有依赖关系, 一旦某个环节出错, 会影响较大
- 服务关系复杂 , 运维/测试/部署困难, 不符合DevOps(开发部署等一体化)思想
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33077.html