SOA体系架构
https://zhuanlan.zhihu.com/p/399488651
SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论。服务是SOA的主体,服务之间的关系构成了SOA软件架构。将服务比作砖石,那么SOA软件架构必然是参天大厦,而大厦不同的楼层,代表着服务之间的相互依赖、连接关系。即,SOA软件架构中,隐含着分层思想,服务是可分层的服务。上层服务使用下层服务,下层服务给上层提供能力支撑。通过将不同上层服务的需求抽离聚合,形成一个个下层服务,逐步迭代,最终形成SOA软件服务的分层架构。
从广义上来看,SOA是指一种新的企业应用架构和企业IT基础架构,它可以使企业实现跨应用、跨部门、跨企业甚至跨行业之间的离散系统实现互连。
而狭义的SOA是指一种软件架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。
简单的理解,面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
所有基于SOA软件架构的服务开发,其接口必须是充分暴露出来的,任何人都可以使用。
缺点:
1)性能方面:SOA软件架构将共通的功能逻辑下沉封装成服务,这就意味着将原本的一个功能主体拆分成不同的服务,共同编排组合形成业务功能。服务间通过网络通信,增加了系统的复杂度,对性能略有影响。
2)基于SOA软件架构开发的服务,都是独立部署,相较于传统的功能块部署,增加了复杂度,每个服务都需要独立的配置、部署、监控、日志收集等,运维成本将有所提升。
3) 一个完整的功能,通常是需要多个服务协同完成。这就涉及到服务间的依赖关系测试以及服务异常的容错处理机制,对服务开发过程有相对较高的要求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了