当前位置:首页 > 服务端 > 架构师修炼系列【SOA架构】

架构师修炼系列【SOA架构】

2022年09月17日 17:58:14服务端6

SOA的背景

SOA 提出的背景是企业内部的 IT 系统重复建设且效率低下, 主要体现在:

  • 企业各部门有独立的 IT 系统,比如人力资源系统、财务系统、销售系统 ,这些系统可能都涉及人员管理,各 IT 系统都需要重复开发人员管理的功能
  • 随着业务的发展,复杂度越来越高,更多的流程和业务需要多个IT系统合作完成
  • 各个独立的 IT 系统可能采购于不同的供应商,实现技术不同,企业自己也不太可能基于这些系统进行重构

SOA详解

为了应对传统 IT 系统存在的问题, SOA 提出了 三个关键概念

  • 服务:所有业务功能都是一项服务,服务就意味着要对外提供开放的能力,当其他系统需要使用这项功能时,无须定制化开发,服务可大可小,可简单也可复杂
    例如,人力资源管理可以是一项服务,包括人员基本 信息管理、请假管理、组织结构管理等功能;而人员基本信息管理也可以作为一项独立 的服务,组织结构管理也可以作为一项独立的服务 。 到底是划分为粗粒度的服务,还是 划分为细粒度的服务,需要根据企业的实际情况进行判断
  • ESB:Enterprise Service Bus,中文翻译为“企业服务总线”。从名字就可以看出,ESB 参考了计算机总线的概念 。计算机中的总线将各个不同的设备连接在一起,ESB 将企业中各个不同的服务连接在一起。因为各个独立的服务是异构的,如果没有统一的标准,则各个异构系统对外提供的接口是各式各样的 。SOA使用ESB来屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务间高效的互联互通
  • 松糯合:松辑合的目的是减少各个服务间的依赖和互相影响 。因为采用SOA架构后,各个服务是相互独立运行的,甚至都不清楚某个服务到底有多少对其他服务的依赖。如果做不到松祸合,某个服务一升级,依赖它的其他服务全部故障,这样肯定是无法满足业务需求的,但实际上真正做到松辅合并没有那么容易,要做到完全后向兼容,是一项复杂的任务

典型的SOA架构

架构师修炼系列【SOA架构】 _ JavaClub全栈架构师技术笔记
SOA 架构是比较高层级的架构设计理念,一般情况下我们可以说某个企业采用了 SOA 的 架构来构建 IT 系统,但不会说某个独立的系统采用了 SOA 架构
例如,某企业采用 SOA 架构, 将系统分为“人力资源管理服务”“考勤服务”“财务服务”,但人力资源管理服务本身不会再使 用 SOA 进行设计,也不会再重新使用独立的一套 ESB

SOA解决了传统IT系统重复建设和扩展效率低的问题,但其本身也引入了更多的复杂性,SOA 最广为人垢病的就是 ESB, ESB 需要实现与各种系统间的协议转换、数据转换、透明的动态路由等功能 。例如,下图中ESB将JSON转换为Java
架构师修炼系列【SOA架构】 _ JavaClub全栈架构师技术笔记
下图中 ESB 将阻ST 协议转换为 RMI 和 AMQP 两个不同的协议
架构师修炼系列【SOA架构】 _ JavaClub全栈架构师技术笔记
ESB虽然功能强大,但现实中的协议有很多种,如JMS、WS、HTTP、RPC 等,数据格式 也有很多种,如 XML、JSON 、二进制、HTML等 。ESB要完成这么多协议和数据格式的互相转换,工作量和复杂度都很大,而且这种转换是需要耗费大量计算性能的,当ESB承载的消息太多时,ESB本身会成为整个系统的性能瓶颈

作者:Davieyang.D.Y
来源链接:https://blog.csdn.net/dawei_yang000000/article/details/108571258

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42539.html

标签: 架构师
分享给朋友:

“架构师修炼系列【SOA架构】” 的相关文章

高级工程师->架构师

高级工程师->架构师

1. 分解等级 技术人员典型的发展路径基本上都是下面的这个模式: 1) 0 ~1年:菜鸟,需要别人手把手来教 2)1 ~ 3年:初级,需要别人带你做 3)3 ~ 5年:高级,能独当一面,可以带初级技术人员了 4)5 ~ 8年:资深,能独挡多面 5)8...

明确技术方向,让你在面试中脱颖而出,早日成为架构师

作为一个Java程序员,因为技术繁杂,即使你很努力,如果方向错了,最终也可能收获甚微,长期处于【低水平勤奋】状态,这是很可怕的事情。 目前的我,应该就属于【低水平勤奋】状态,幸好我看到了韩顺平老师的一个视频,清晰透彻的讲解了Java程序员每个阶段应该了解什么样的技术,应该掌握到什...

架构书籍推荐:Java中高级、架构师值得一读!

架构书籍推荐:Java中高级、架构师值得一读!

上周我们免费送出了6本关于Python的重量级技术书籍,推出后反响特别强烈,有一个和最后一名仅差了一个赞,不过我们还是额外加送了一本送给这位朋友,以资鼓励,从另一面也可以看出Java程序猿对Python的热爱程序。 这次我们继续发力,送的书籍更贴近Java技术专业,更符合大部分J...

Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty

Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty

视频课程内容包含: 高级Java架构师包含:spring boot、Spring  cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Spring、MongoDB、ZeroMQ、Git、Nosql、Jvm、Mecached...

Java程序员如何进阶架构师?

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序...... 一、Java编程入门类:...

Java架构师必读的10本经典书

Java架构师必读的10本经典书

1. 《Thinking in Java》(Java编程思想) 作者:Bruce Eckel   Eckel将幽默、实践性强的实例和编程的思想融入书中。这本书全面的介绍了Java语言及其核心的API。尽管这本书面向的是初学者,但他的大部分章节仍对有...

怎么才能成为Java架构师

接触过2个架构师,都是很牛。也许可以给你点建议。 1.架构师不需要精通细节,因为我见过的两个架构师都有能力架构java路线的东西,但是他们其实都不了解细节; 2.架构师需要有很深的基础功底,这种功底不要误会为jdk源码什么的,而是内存管理,操作系统原理,各种通讯和...

java架构师学习之路

一:并发编程 + activemq + 实战案例并发编程基础篇 第一天 1、课程大纲简要介绍 2、线程基础概念、线程安全概念、多个线程多个锁概念 3、对象锁的同步和异步 4、脏读概念、脏读业务场景、Synchronized概念、Synchronized代码...

阿里架构师 478 页 Java 工程师面试知识解析笔记 pdf, 一份 2022 年通往阿里的面试指南

阿里架构师 478 页 Java 工程师面试知识解析笔记 pdf, 一份 2022 年通往阿里的面试指南

最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java 程序员高频面试解析及知识点体系笔记.pdf(实际上比预期多花了不少精力),包含集合,JVM,并发编程、Spring,MyBatis,微服务,Redis,Dubbo,设计模式,数据结构,分布式等!,由于篇...

架构师成长之路(1)--什么是架构师

架构师成长之路(1)--什么是架构师

转自:https://blog.csdn.net/hguisu/article/details/38385371 前言: 哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。 如果我们要成...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。