单点架构、集群架构、服务化架构、SOA、微服务到底有什么联系和关系?

news2024/11/30 12:40:31

本篇参考总结

  1. IT老齐的学习笔记 原视频
  2. SOA面向服务架构 原视频
  3. 智慧城市实践指南 (书籍-SOA概述)

最近我在负责研发智慧园区的智慧平台产品,目前需求阶段和设计阶段已经完成,正式开始开发阶段,但是作为一个算法类学习者,对于开发框架确实不够了解。作为甲方,也不想让乙方觉得我很傻hhh,特此来做一些学习和梳理,全篇都是小白的白话文,如果有任何问题,欢迎各位大佬及时提出意见!

单点架构、应用集群架构、服务化架构、SOA、微服务到底有什么联系和关系?

一、单点架构和应用集群架构

单点架构强调快速价值交付,主要是通过把计算机所有的应用程序部署到同一台服务器上面/应用程序单体运行,能够实现基础的业务,适用于中小型小型项目,交付快,成本低。
在这里插入图片描述

1.1 单点架构存在的问题

“鸡蛋放在一个篮子里面”。因为所有的东西都是单个服务器/物理机上面,所以会存在容错性很糟糕的现象,会容易一个地方崩溃整个系统都不能使用,同时由于所有的东西都堆在一起,增删查改的效率也很低。

在这里插入图片描述

1.2 应用集群架构

为了解决单点架构的问题从而引入了集群架构,通过部署应用集群,部署分布式的缓存,能够实现数据库高可用HA/读写分离改造。应用集群架构主要是通过一系列的冗余的节点为系统提供可用性。应用集群架构是大系统进行全量部署(主从数据一致,大系统全量部署,完整的系统应用),单点挂掉了是不会让系统成为整体性的崩溃的。
在这里插入图片描述
应用集群架构所有的业务都放在一个应用里面,如果需要对某一个小的业务板块进行更新升级,需要协调整个板块,可以看出来属于技术驱动而不是业务驱动。改进的思路需要对单个整模块切分形成小的单点模块,同时以业务驱动系统,基于此就有了服务化架构。
在这里插入图片描述

二、服务化架构、SOA、微服务

2.1 服务化架构

服务化架构就是对业务进行拆分,不同的业务进行独立部署。服务化架构主要以业务为核心,技术怎么落地有两种选型:以ESB企业服务总线(SOA)、微服务架构

2.1.1 SOA概念

在没有提出微服务之前,我们的业务系统能力集成出现问题,单点集群和多点集群都是以技术的角度来开发,不明白业务逻辑,同时整个系统呈现烟囱式(简单来说就是的独立管理,所以出现了SOA的概念,也就是面向业务的架构。

SOA:service oriented architecture 面向服务的架构
“服务”:通过规范的描述来表征,对外提供访问地址,并可被重复使用的业务单元
“面向服务”:通过一组有联系的服务的组合和集成对软件系统进行分析,设计和实现的思想,就跟面向对象一样,面向对象是很多属性的集合成了一个个体,也就是对象,面向服务也是有各类服务集成的系统。
“面向服务的体系架构(SOA)”:遵循面向服务原则,具有松耦合特征的体系结构风格
从应用的角度来说,SOA作为一种IT系统和软件的体系结构规划和构建方法,贯穿IT系统规划、设计、构建和管理的各个阶段,并通过web服务,REST(其实有很多理解,初步的话我就简单的理解成一种通信方式)等技术来实现

企业服务总线如下图所示,设计理念就是以SOA为服务模式,

设计理念:将我们所有的外围系统接入到一个专用产品,也就是ESB(Enterprise Service Bus)

在这里插入图片描述
看下面的ESB架构图,可以看到在开发上形成一个共识,没有形成统一标准,在进行协议传输的适合,有的使用web serive,有的使用smtp,所以各个系统交互的时候就会显得特别麻烦,所以ESB就出现了。
ESB作为最核心的中枢,可以转换协议,实现标准化,分发端口等,可以看出来ESB承载了太多了,所有的协议都要通过它去转化,因此ESB也是非常重量级的。
在这里插入图片描述

2.1.2 SOA缺点

SOA的核心产品就是ESB,这个模式很快就没有使用了,因为成本很高,同时SOA各个子系统之间没有采用统一的通信标准,想要进行转换会特别的复杂,导致了系统间通信与数据交互之间变得异常复杂。

在这里插入图片描述
基于ESB过于“重”的问题,我们引入了微服务的架构标准,没有微服务之前,首先要明白的就是SOA它的价值,是为了找到当前遗留系统的复用的能力,不要盲目的进行微服务的使用,要思考自己本身的业务板块是否可以复用,SOA的三个特征就是“可复用”、“结耦”、“灵活组装”通过思考好了业务,再去思考编排流程BPM和上层的服务逻辑,不要造成太大的资源浪费!

2.1.3 微服务

微服务将单个应用程序开发为一组小型服务的方法,让每个小服务运行在自己的进程中,以轻量级(http等)的方法进行通信,这些服务是围绕业务形成的,由完全自动化的部署机构独立运行,用不同的编程语言编写。它解决了ESB统一标准的问题,现在最主流的就是用java语言编写的Sping Cloud。
在这里插入图片描述
有了标准之后大家在开发的时候就可以自发的完成的作业,用相同的规则去进行开发,服务之间我们通过API进行调用,服务提供的API是需要进行标准化的,但是每个服务本身是可以进行多元化的(可以使用不同的数据库),目前微服务架构也是分布式系统开发最常用的方式。
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redies基本数据结构

nosql数据库 和sql结构的数据库 1.结构化的,不设置表之间的结构 2.没有主外键约束,之间没有关联 3.nosql,其他的数据库不能使用redies的语法 4.没有事务,不符合ACID 5.redies存储在内存中,速度非常快 是一个键值…

Docker入门学习:基本概念、安装、命令、简单使用

前言 一、基本概念 1、Docker镜像 镜像就是一个文件,例如我们的应用镜像、环境镜像(例如nginx、mysql等),镜像是创建Docker容器的基础。 2、Docker容器 Docker容器类似于一个沙箱(例如做支付的时候的支付宝的沙箱…

【Java|golang】1668. 最大重复子字符串

给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重…

系统学习SpringFramework:SpringBean的注入方式

本篇内容包括:Spring 容器简介(什么是容器、容器如何工作)、SpringBean 注入方式(SpringBean 注入方式分类、Autowiring 自动绑定)以及 获取 Spring Bean 的工具类! 一、Spring 容器 1、什么是容器 Sprin…

薪资17K,在字节外包工作是一种什么体验...

我17年毕业于一个普通二本学校,电子信息工程学院,是一个很不出名的小本科。大学期间专业知识也没有去认真的学习,所以毕业的时候就随便找了一份工作,在一个小公司做功能测试。 记得那时候税前薪资大概是7k左右,因为是…

SpringBoot:(四)底层注解详解

笔记来源:【尚硅谷】SpringBoot2零基础入门教程(spring boot2干货满满) 文章目录4.1 Configuration详解总结4.2 Component、Controller、Service、Repository、Bean4.3 Import导入组件4.4 Conditional条件装配4.5 ImportResource导入Spring配…

刷题记录(NC20313 [SDOI2008]仪仗队)

NC20313 [SDOI2008]仪仗队 题目链接 关键点: 1、首先分析题目,对于只能看到的点,设原点坐标为(0,0),则除去横纵坐标上能看到的两点(0, 1)、(1, 0),和对角线上的(1, 1)&#xff0c…

Redis相关知识

目录 一,Redis的命令操作 1.Redis简介 2.Redis安装(按步骤执行以下步骤即可) 3.redis命令 二,java代码操作Redis 1.java连接Redis 2.java操作Redis 三,Spring注解式缓存Redis 1.Spring整合Redis 2.redis注解式缓…

2023年,前端开发未来可期

☆ 对于很多质疑,很多不解,本文将从 △ 目前企业内前端开发职业的占比; △ 目前业内开发语言的受欢迎程度; △ 近期社区问答活跃度; 等维度来说明目前前端这个职业的所处位置。 ☆ 还有强硬的干货,通过深入…

Flask快速白嫖

一、快速搭建 有前面Flask的学习,相信大家对flask已经有一个不错的了解,今天教大家如何快速搭建一个web网页!!!. 博主不是专门做软件的,但是需求里又有网站的需要,所以怎么办呢? 那…

python动态规划算法实例详解

文章目录python动态规划算法实例详解一、什么是动态规划?二、新视角:从斐波那契数列看动态规划三、实例扩展(爬楼梯)1. 题目描述2. 示例示例1示例23. 解析4. 代码实现四、结语💖💖💖&#x1f49…

特性Attribute

浅浅了解一下,可影响程序集的运行 [Obsolete]:生成表提示,有true报错提示,无true是提醒提示 是什么:特性就是一个类(可是自定义类),这个类直接/间接继承自Attribute类,一般类名以Attribute结尾&#xff0c…

ReentrantLock与ReentrantReadWirteLock 原理

ReentrantLock原理(**) 讲解除了FairLock部分是FairLock流程,其余均NonFairLock源码 (FairLock部分会讲解两者不同) 1. NonFairLock实现原理 加锁解锁流程 先从构造器开始看,默认为非公平锁实现 public …

Commvault+XSKY 推出基于 Object Lock 的防勒索病毒联合方案

从桶粒度到对象粒度随着对象存储的普及,对象存储已经成为最流行的备份目的(backup target) 存储。XSKY星辰天合作为国内领先的对象存储厂商,Commvault 作为全球领先的数据保护厂商,双方一直有紧密的合作。特别在 2020 年&#xff…

装了我这 10 个 IDEA 神级插件后,同事也开始情不自禁的嘚瑟了

CSDN 的小伙伴,大家好,我是二哥呀。 昨天,有读者私信发我一篇 CSDN 上的文章(就是这篇😂),说里面提到的 Intellij IDEA 插件真心不错,基本上可以一站式开发了,希望能分享…

【学习笔记】《Python深度学习》第一章:什么是深度学习

文章目录1 人工智能、机器学习与深度学习1.1 人工智能1.2 机器学习1.3 从数据中学习表示1.4 深度学习之“深度”1.5 用三张图理解深度学习的工作原理2 机器学习简史2.1 概率建模2.2 早期神经网络2.3 核方法2.4 决策树、随机森林与梯度提升机2.5 回到神经网络2.6 深度学习的不同…

清华学姐三年的测试成长经历,到最后的喜提高薪offer

上个礼拜刚好转正了,三个月试用期,五月份换的工作。 现在这份工作,相比上一份确实好很多,比如工资直接涨了一倍,7到14,13薪,朝九晚六,从不加班,项目也简单,包…

计算机毕业设计(附源码)python疫情下校园食品安全信息管理

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

stm32毕业设计 单片机MP3音乐播放器

文章目录1 简介2 绪论2.1 课题背景与目的3 系统设计3.1 系统架构3.2 软件部分设计3.3 实现效果3.4 部分相关代码1 简介 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始…

【网络原理】UDP和TCP协议重点知识汇总

目录 1.UDP协议: 2.TCP协议: 1.UDP协议: UDP协议的特点:无连接、不可靠传输、面向数据报和全双工。UDP报文最大长度是2个字节,2个字节表示的范围就是0~65535,也就是64kb。所以如果需要使用UDP传输一个比…