【Docker】常见概念|技术架构演进之路|八大架构|单机架构|应用数据分离架构|应用服务集群架构

news2024/9/9 7:47:01

目录

一、常见概念

应用(Application) / 系统(System)

模块(Module) / 组件(Component)

分布式(Distributed)

集群(Cluster)

主(Master) / 从(Slave)

中间件(Middleware)

容器(Docker)

容器编排(K8S)

评价指标(Metric)

可用性(Availability)

响应时长(Response Time RT)

吞吐(Throughput) vs 并发(Concurrent)

二、架构演进

单机架构

1.简介

2.出现原因

3.架构工作原理

4.技术案例

5.架构优缺点

6.相关软件

应用数据分离架构

1.简介

2.出现原因

3.架构工作原理

4.技术案例

5.架构优缺点

应用服务集群架构

1.简介

2.出现原因

3.架构工作原理

4.技术案例

5.架构优缺点


一、常见概念

应用(Application) / 系统(System)

        为了完成一整套服务的一个程序或者一组相互配合的程序群。生活例子类比:为了完成一项任务,而搭建的由一个人或者一群相互配的人组成的团队

模块(Module) / 组件(Component)

        当应用较复杂时,为了分离职责,将其中具有清晰职责的、内聚性强的部分,抽象出概念,便于理解。生活例子类比:军队中为了进行某据点的攻克,将人员分为突击小组、爆破小组、掩护小组、通信小组等

分布式(Distributed)

        系统中的多个模块被部署于不同服务器之上,即可以将该系统称为分布式系统。如 Web 服务器与数据库分别工作在不同的服务器上,或者多台 Web 服务器被分别部署在不同服务器上。生活例子类比:为了更好的满足现实需要,一个在同一个办公场地的工作小组被分散到多个城市的不同工作场地中进行远程配合工作完成目标。跨主机之间的模块之间的通信基本要借助网络支撑完成

集群(Cluster)

        被部署于多台服务器上的、为了实现特定目标的一个/组特定的组件,整个整体被称为集群。比如多个 MySQL 工作在不同服务器上,共同提供数据库服务目标,可以被称为一组数据库集群。生活例子类比:为了解决军队攻克防守坚固的大城市的作战目标,指挥部将大批炮兵部队集中起来形成一个炮兵打击集群

        分布式 vs 集群:通常不用太严格区分两者的细微概念,细究的话,分布式强调的是物理形态,即工作在不同服务器上并且通过网络通信配合完成任务;而集群更在意逻辑形态,即是否为了完成特定服务目标

主(Master) / 从(Slave)

        集群中,通常有一个程序需要承担更多的职责,被称为主;其他承担附属职责的被称为从。比如 MySQL 集群中,只有其中一台服务器上数据库允许进行数据的写入(增/删/改),其他数据库的数据修改全部要从这台数据库同步而来,则把那台数据库称为主库,其他数据库称为从库

中间件(Middleware)

        一类提供不同应用程序用于相互通信的软件,即处于不同技术、工具和数据库之间的桥梁。生活例子类比:一家饭店开始时,会每天去市场挑选买菜,但随着饭店业务量变大,成立一个采购部,由采购部专职于采买业务,称为厨房和菜市场之间的桥梁

容器(Docker)

        Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。可以理解为一个集装箱,集装箱里面是每个用户的货物,整体打包

容器编排(K8S)

        kubernetes,简称 K8s,是用 8 代替名字中间的 8 个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用, Kubernetes 的目标是让部署容器化的应用简单并且高效。可以理解为一个货船,安装集装箱的大小,货物情况合理的来组织集装箱完成整体货物的搬运

评价指标(Metric)

可用性(Availability)

        考察单位时间段内,系统可以正常提供服务的概率/期望。例如: 年化系统可用性= 系统正常提供服务时长 / 一年总时长。这里暗含着一个指标,即如何评价系统提供无法是否正常,我们就不深入了。平时我们常说的 4 个 9 即系统可以提供 99.99% 的可用性, 5 个 9 是 99.999% 的可用性,以此类推。我们平时只是用高可用(High Availability HA)这个非量化目标简要表达我们系统的追求

响应时长(Response Time RT)

        用户完成输入到系统给出用户反应的时长。例如点外卖业务的响应时长 = 拿到外卖的时刻 - 完成点单的时刻。通常我们需要衡量的是最长响应时长、平均响应时长和中位数响应时长。这个指标原则上是越小越好,但很多情况下由于实现的限制,需要根据实际情况具体判断

吞吐(Throughput) vs 并发(Concurrent)

        吞吐考察单位时间段内,系统可以成功处理的请求的数量。并发指系统同一时刻支持的请求最高量。例如一条 2 车道高速公路,一分钟可以通过 20 辆车,则并发是 2,一分钟的吞吐量是 20。实践中,并发量往往无法直接获取,很多时候都是用极短的时间段(比如 1 秒)的吞吐量做代替。我们平时用高并发(Hight Concurrnet)这个非量化目标简要表达系统的追求


二、架构演进

单机架构

1.简介

应用服务和数据库服务共用一台服务器

2.出现原因

出现在互联网早期,访问量比较小,单机足以满足需求

3.架构工作原理

以电子商城为例,可以看到通过应用(划分了多个模块)和数据库在单个服务器上协作完成业务运行

4.技术案例

5.架构优缺点

(1)优点:部署简单,成本低

(2)缺点:存在严重的性能瓶颈,数据库和应用互相竞争资源

6.相关软件

Web 服务器软件: Tomcat、 Netty、 Nginx、 Apache 等

数据库软件: MySQL、 Oracle、 PostgreSQL、 SQL Server 等


应用数据分离架构

1.简介

应用服务和数据库服务使用不同服务器

2.出现原因

单机存在严重的资源竞争,导致站点变慢

3.架构工作原理

以电子商城为例,可以看到应用(划分了多个块)和数据库在各自的服务器上通过网络协作完
成业务运行

4.技术案例

5.架构优缺点

(1)优点:成本相对可控;性能相比单机有提升;数据库单独隔离,不会因为应用把数据库搞坏有一定的容灾能力

(2)缺点:硬件成本变高;性能有瓶颈,无法应对海量并发


应用服务集群架构

1.简介

引入了负载均衡,应用以集群方式运作

2.出现原因

单个应用不足以支持海量的并发请求,高并发的时候站点响应变慢

3.架构工作原理

以电子商城为例,可以看到应用不再是一个,而是变成了多个,通过负载均衡来支持海量的并发

4.技术案例

5.架构优缺点

(1)优点:应用服务高可用:应用满足高可用,不会一个服务出问题整个站点挂掉;应用服务具备一定高性能:如果不访问数据库应用相关处理通过扩展可以支持海量请求快速响应;应用服务有一定扩展能力:支持横向扩展

(2)缺点:数据库成为性能瓶颈,无法应对数据库的海量查询;数据库是单点,没有高可用;运维工作增多,扩展后部署运维工作增多,需要开发对应的工具应对快速部罢;硬件成本较高

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

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

相关文章

python调用MATLAB函数的一个诡异的问题,数据类型问题

记一次python调用MATLAB函数的诡异问题 说明(废话)解决方案总结 说明(废话) 这个问题的起因是python调用MATLAB函数的问题,归根结底,主要还是因为不同语言对于不同的数据表达的方式不同造成的问题。 pytho…

在Postman中引用JS库

前言 在做接口测试时,出于安全因素,请求参数需要做加密或者加上签名才能正常请求,例如:根据填写的请求参数进行hash计算进行签名。postman作为主流的接口调试工具也是支持请求预处理的,即在请求前使用JavaScript脚本对…

界面组件DevExtreme v24.2将发布一系列新组件、支持.NET 9

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac&#xff0c…

中小企业选择数字工厂管理系统需要注意哪些问题

在当今数字化转型的大潮中,中小企业作为经济体系的重要组成部分,正积极寻求通过引入数字工厂管理系统来提升生产效率、优化资源配置、增强市场竞争力。然而,面对市场上琳琅满目的数字工厂管理系统解决方案,中小企业在选择时往往面…

HarmonyOS鸿蒙- 延时执行

一、延时执行一次 3000 表示秒,可根据需求修改 //2秒后执行打印setTimeout(() > {console.log(Timer is end)},3000) 取消延时执行 // 3秒后执行打印 let timerId setTimeout(() > {console.log(Timer is end)},3000)// 取消timerId的延时 clearTimeout(timerId) 二、…

设计师的素材管理神器,eagle、千鹿大测评

前言 专业的设计师都会精心维护自己的个人素材库,常常需要耗费大量时间用于浏览采集、分类标注、预览筛选、分享协作,还要管理字体、图片、音视频等各类设计素材 如果你作为设计师的话,今天,就为大家带来两款热门的素材管理工具…

构建基于数据驱动的应用程序与Llamaindex——理解大型语言模型

如果你在阅读这本书,你可能已经探索过大型语言模型(LLMs)的领域,并且已经认识到它们的潜在应用以及它们的缺陷。本书旨在解决LLMs所面临的挑战,并提供一本实用指南,教你如何使用LlamaIndex构建数据驱动的LL…

57_Redis与Springboot的集合应用

前提 要实现,使用Redis存储登录状态 需要一个完整的前端后端的项目 前端项目搭建 解压脚手架安装依赖配置请求代理选做: 禁用EsLint语法检查 Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法_lintonsave: false-CSDN博客 后端项…

C++和R穿刺针吸活检肿瘤算法模型模拟和进化动力学量化差异模型

🎯要点 🎯模拟肿瘤细胞增生进化轨迹 | 🎯肿瘤生长的随机空间细胞自动机模型 | 🎯模拟穿刺活检的收集空间局部的肿瘤块,模拟针吸活检采集长而薄的组织样本 | 🎯构建不同参数模拟合成肿瘤测试集 | &#x1f…

【TS】TypeScript函数类型:提升函数的类型安全性和可读性

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript函数类型:提升函数的类型安全性和可读性1. 引言2. 基本函…

vue3 基于elementui el-table封装 hooks (未使用ts版本)

elementui-table封装 hooks js-hooks import { ref, reactive, onMounted } from vue import { ElMessage, ElMessageBox, ElNotification } from element-plus /*** FileDescription: el-table 函数式组件hooks--实现一个表格的数据加载、分页、搜索、删除和导出等操作,* fu…

tesseract 图片识别引擎

什么是tesseract Tesseract是一款开源的光学字符识别(OCR)引擎,用于从图像中提取文本。它由Ray Smith在惠普实验室于1985年至1995年开发,并在2005年由惠普将其作为开源软件发布。之后,Tesseract的开发由Google主导&am…

如何理解低代码?怎么用好低代码

怎样理解低代码 理解一个概念最好的办法就是找相关概念进行类比,那么想要单独理解低代码这个概念是不太行的。我们还需要了解“零代码”以及“纯代码”开发的概念。那么什么是低代码?其与“零代码”和“纯代码”的关系又是如何? 零代码 也许…

IDEA资源文件中文乱码问题解决方法

目录 一、问题描述二、解决方法 一、问题描述 IDEA中打开资源文件出现乱码。 二、解决方法 进入“Settings” -> “Editor” -> “File Encodings”,按下图修改箭头所指的三个地方:

java类加载和双亲委派及加载恶意类代码应用

前面的CC1和CC6,都是在Runtime.exec执行命令。如果WAF过滤了Runtime就寄,而且用命令的方式写入shell进行下一步利用,在流量中一个数据包就能把你的行为全部看完,很容易被分析出来。 如果用恶意字节码加载的方式,我们的…

轮询系统的具体原理是什么

一般市面上的轮询系统,看似高深莫测,但都是大差不差的,没有太多的技术含量,都是通过你的订单情况,在数据库中找出一个可以收这个订单的支付方式,然后经过b站来实现与支付通道商交互。 这个过程看似复杂&am…

IP-GUARD文档云备份服务器迁移数据操作说明

一、功能简介 使用文档云备份过程可能出现需要迁移旧数据到新目录的情况(如一开始存储目录设置 不合理,之后变更存储目录),下面介绍迁移备份数据到新目录的方法,迁移后可正常查看、 下载、删除原备份文件。 二、同一计算机上迁移存储目录 当仅需要将存储目录迁移到同一计…

随机森林的可解释性分析(含python代码)

随机森林的可解释性分析 1.引言可解释性的重要性 2.随机森林的原理2.1 基本原理:2.2 随机森林的实现 3.随机森林的可解释性分析3.1 特征重要性3.2 特征重要性3.3 SHAP值3.4 部分依赖图(PDP)3.5 交互特征效应3.6 变量依赖图 4.结论5.参考文献 …

Android和iOS 测试五个最好的开源自动化工具

本文主要介绍Android和iOS 五个最好的开源自动化工具,这里整理了相关资料,希望能帮助测试软件的朋友,有需要的看下 自动化测试在产品测试上有着非常重要的作用。实现测试自动化有多种积极的方式,包括最大限度地减少测试执行时间&…

昇思25天学习打卡营第26天|munger85

ShuffleNet图像分类 和mobilenet一样,也是在资源有限的设备上进行神经网络来做ai图像分类的小模型,在保持精度的同时大大降低了模型的计算量。 是基本块 就是真正的网络,如果模型size是2,就是输出的时候多一些,精细一…