当前位置: 首页 > news >正文

技术架构 - 应用数据分离,应用服务集群架构

前言

    上一篇文章介绍了单机架构,由于性能瓶颈,满足不了高访问量,所以演化出了数据分离架构。

这种架构也很简单只是将应用服务和数据库服务分离开来,避免单一架构的资源争夺的情况。

一、 应用数据分离架构

1. 简介

    应用服务和数据库服务使用两台服务器进行分别部署,应用服务就是对外提供服务的,数据库服务就是用来存储数据的。

2. 出现原因

    单机架构存在严重的资源竞争,导致网站访问速度变慢。

3. 架构工作原理

    以电子商城网站为例,用户访问淘宝网站,开始还是先访问 DNS 服务器,之后拿到 淘宝服务器的 IP 之后就去请求这个服务器的资源,此时的应用服务和数据库服务两台服务器是通过网络进行通信的,所以在请求商品信息的时候还是访问服务层,服务层再去查询数据库,只是这个操作是经过网络来完成交付的,和单一架构就这一点有区别。

4. 架构优缺点

    优点:1. 成本比单机架构高一点,但是相对来说是可控的(原来部署一台服务器,现在部署两                      台服务器)

               2. 性能比单机架构提升了一点。

               3. 数据库是单独存在的,如果如果应用层出现了一个 bug,这个 bug 会导致数据库的数                     据损坏,此时不会因为这个 bug 而弄丢数据库的数据。具有一定的容灾能力。

    缺点:1. 仍然不支持高并发、高访问量的场景,就算是部署两台服务器,性能也只是提高了一                       点,如果是大量的并发请求,应用数据分离架构还是难以支持的。

               2. 硬件成本增高,原来部署一台服务器,现在部署两台。

 二、 应用服务集群架构

1. 简介

    加入了负载均衡技术,应用是以多个服务器的方式(集群)运行,通过负载均衡技术避免单一节点(服务器)负载过大,达到资源利用的最优解。

2. 出现原因

    上述的架构仍然不满足海量的并发请求,通过 负载均衡 + 集群 的方式来处理高并发。

3. 架构工作原理

    以电子商城为例,如下图所示:用户在访问服务器时,先通过负载均衡技术将请求发送给对应的服务器节点,负载均衡再根据分配策略将请求发送给合适的服务器,然后再去查询商品,数据库和应用之间还是以网络的方式进行通信,之后服务层把拿到的数据返回给用户(这里负载均衡有两种模式,一种是返回的流量经过负载均衡,一种是流量不经过负载均衡)

4. 架构优缺点

    优点:1. 高可用:一个服务器节点挂了之后其他的还可以继续工作。

               2. 高性能:因为和数据库通信时经过网络的,需要一定的时间成本,所以如果不是和访                                      问数据库相关的操作,性能是很高的,而且集群中计算节点很多,所以支持                                    高并发的请求。

               3. 支持横向扩展:如果这个集群中的节点不够用了,可以继续增加服务器节点来保证上                                                述优点。

    缺点:1. 服务器是集群,但是数据库是单点,所以数据库的性能是有限的.

               2. 硬件成本高。

               3. 运维部署成本高,服务器节点增多,之后就需要快速部署,需要开发工具开发更快                          捷。

相关文章:

技术架构 - 应用数据分离,应用服务集群架构

前言 上一篇文章介绍了单机架构,由于性能瓶颈,满足不了高访问量,所以演化出了数据分离架构。 这种架构也很简单只是将应用服务和数据库服务分离开来,避免单一架构的资源争夺的情况。 一、 应用数据分离架构 1. 简介 应用服务和…...

YOLO目标检测——树叶检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:生物多样性研究、林业管理、环境监测和教育科研等方面数据集说明:树叶分类检测数据,真实场景的高质量图片数据,数据场景丰富,总共十个类别。标签说明:使用lableimg标注软件标注,标…...

ubuntu 20通过docker安装onlyoffice,并配置https访问

目录 一、安装docker (一)更新包列表和安装依赖项 (二)添加Docker的官方GPG密钥 (三)添加Docker存储库 (四)安装Docker (五)启动Docker服务并设置它随系…...

Vue 模板语法 v-bind

红色框里面的都是vue的模板。有了模板就得有模板的特殊语法。上面只是简单的双括号加上表达式,这种叫做插值语法,除了这种语法还有其他语法吗? 插值语法实现的功能很单一,就是将指定的值放到指定的位置。还有一种叫做指令语法&am…...

定义宏,字符串、枚举、接口类绑定

在项目中,有一些接口处理类,比如 "value1"对应的类处理使用class Cvalue1 "value2"对应的类处理使用class Cvalue2 使用 X-Macros 技术能够很大程度上帮助我们,减少代码量并且使得代码简洁。 如果我们需要对每一个字…...

盘点30个Python树莓派源码Python爱好者不容错过

盘点30个Python树莓派源码Python爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1LA4cLunntKW3qO5aok3xAQ?pwd8888 提取码:8888 项目名称 PiCar-raspber…...

「Verilog学习笔记」用优先编码器①实现键盘编码电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 用此编码器实现键盘的编码电路。 注意:编码器的输出是低电平有效,而键盘编码电路输出的是正常的8421BCD码,是高电平有效。因此将编…...

APT攻击的特点及含义

APT(高级持续性威胁Advanced Persistent Threat)攻击是一种高级、持续性的攻击模式,通过先进的攻击手段对特定目标进行长期持续性的网络攻击,一般针对拥有敏感数据的大型企业及重要机构。 APT攻击的特点 一、目标性强 APT攻击并…...

使用html2canvas插件进行页面截屏

使用纯html实现过程 <!DOCTYPE html> <html><head><title>使用html2canvas生成网页截图</title><script src"https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script> </head><body><h1>…...

Java --- JVM的执行引擎

目录 一、执行引擎概述 1.1、执行引擎的工作过程 二、Java代码编译和执行的过程 三、解释器 3.1、解释器工作机制 3.2、解释器分类 3.3、解释器现状 四、JIT编译器 五、热点代码及探测方式 六、方法调用计数器 6.1、热点衰减 七、回边计数器 八、HotSpot VM设置程序…...

前端学习笔记--node.js

Node Node 可以理解成 ECMAScript 内置的模块组成的&#xff0c;引用第三方模块&#xff0c; npm系统 node package manager。 node是基于js的&#xff0c;前端来写服务端通过node是最方便的&#xff0c;node的性能问题 内部采用的多线程。 node中主线程还是单线程的 &#…...

DB2 常用命令及SQL语句

前言 DB2数据库是由IBM开发的关系型数据库管理系统&#xff08;RDBMS&#xff09;。它是一种功能强大、可扩展和可靠的数据库解决方案&#xff0c;用于存储和管理企业级应用程序的数据。 以下是一些关于DB2数据库的重要信息和特点&#xff1a; 数据模型&#xff1a;DB2数据库…...

spring-boot-starter-data-redis2.X连接redis7

由于redis7引入了acl机制&#xff0c;可以配置用户权限&#xff0c; 比如配置了一个普通用户 test&#xff0c;权限为 test_ 前缀的key可操作 springboot想要连接&#xff0c;并没有设置用户名的地方&#xff0c; 跟了源码&#xff0c;jedis客户端是支持的&#xff0c;但是s…...

PHP中$_SERVER全局变量

在PHP中&#xff0c;$_SERVER 是一个全局数组变量&#xff0c;它包含了有关服务器和当前脚本的信息。$_SERVER 数组中的每个元素都是服务器环境的一个参数&#xff0c;如请求的方法、请求的 URI、客户端 IP 地址等。 PATH 系统环境变量的值&#xff0c;包含了多个目录的路径…...

【ML】欠拟合和过拟合的一些判别和优化方法(吴恩达机器学习笔记)

吴恩达老师的机器学习教程笔记 减少误差的一些方法 获得更多的训练实例——解决高方差尝试减少特征的数量——解决高方差尝试获得更多的特征——解决高偏差尝试增加多项式特征——解决高偏差尝试减少正则化程度 λ——解决高偏差尝试增加正则化程度 λ——解决高方差 什么是…...

服务器数据恢复—服务器发生故障导致数据丢失如何恢复服务器数据?

服务器常见故障&#xff1a; 硬件故障&#xff1a;磁盘、板卡、电源故障等。 软件故障&#xff1a;操作系统崩溃、程序运行错误等。 入侵破坏&#xff1a;加密、删除服务数据等。 不可控力&#xff1a;浸水、火烧、倒塌等。 误操作&#xff1a;格式化、删除、覆盖等。 如何减少…...

SLAM中提到的相机位姿到底指什么?

不小心又绕进去了&#xff0c;所以掰一下。 以我个人最直观的理解&#xff0c;假设无旋转&#xff0c;相机在世界坐标系的(5,0,0)^T的位置上&#xff0c;所谓“位姿”&#xff0c;应该反映相机的位置&#xff0c;所以相机位姿应该如下&#xff1a; Eigen::Matrix4d T Eigen::M…...

《视觉SLAM十四讲》-- 后端 1(上)

文章目录 08 后端 18.1 概述8.1.1 状态估计的概率解释8.1.2 线性系统和卡尔曼滤波&#xff08;KF&#xff09;8.1.3 非线性系统和扩展卡尔曼滤波&#xff08;EKF&#xff09;8.1.4 小结 08 后端 1 前端视觉里程计可以给出一个短时间内的轨迹和地图&#xff0c;但由于不可避免的…...

南昌市西湖区棒球特色规划

西湖区棒球特色学校打造方案 一、项目背景 南昌市西湖区作为江西省的教育强区&#xff0c;一直致力于发展特色教育。近年来&#xff0c;棒球运动逐渐受到广泛关注&#xff0c;西湖区决定将棒球运动作为特色项目&#xff0c;打造一所具有国际水平的棒球特色学校。 二、目标与…...

nginx启动命令

普通启动 切换到nginx安装目录的sbin目录下&#xff0c;执行&#xff1a;./nginx 通过配置文件启动 ./nginx -c /usr/local/nginx/conf/nginx.conf /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c是指定配置文件,而且配置文件路径必须指定绝对路…...

C语言宏定义:嵌入式开发中的高效利器与避坑指南

1. C语言宏定义的基础与陷阱在嵌入式开发中&#xff0c;宏定义是C语言最强大的特性之一&#xff0c;但也是最容易踩坑的特性。让我们从一个简单的需求开始&#xff1a;如何用宏实现两个数的比较并返回较小值&#xff1f;初学者最常见的写法是这样的&#xff1a;#define MIN(a,b…...

Docker---容器编排工具Docker Compose

Docker Compose核心功能使用YAML文件定义多容器应用一键启动/停止/重建整个应用栈管理服务依赖关系与网络配置环境变量集中管理&#xff0c;适配多环境部署核心概念层级Service&#xff08;服务&#xff09;&#xff1a;一个应用组件&#xff0c;可包含多个相同镜像的容器实例P…...

YEDDA中文文本标注工具:零基础快速上手的高效标注解决方案

YEDDA中文文本标注工具&#xff1a;零基础快速上手的高效标注解决方案 【免费下载链接】yedda-py3 项目地址: https://gitcode.com/gh_mirrors/ye/yedda-py3 在人工智能和自然语言处理领域&#xff0c;数据标注是构建高质量模型的基础。YEDDA中文文本标注工具是一款专为…...

终极指南:如何在TensorFlow Rust中掌握while_loop循环结构

终极指南&#xff1a;如何在TensorFlow Rust中掌握while_loop循环结构 【免费下载链接】rust Rust language bindings for TensorFlow 项目地址: https://gitcode.com/gh_mirrors/rust/rust TensorFlow Rust是Rust语言与TensorFlow深度学习框架的绑定库&#xff0c;它允…...

Kimi-VL-A3B-Thinking开源大模型部署教程:MoonViT视觉编码器实测解析

Kimi-VL-A3B-Thinking开源大模型部署教程&#xff1a;MoonViT视觉编码器实测解析 1. 模型简介与核心能力 Kimi-VL-A3B-Thinking是一款创新的开源混合专家&#xff08;MoE&#xff09;视觉语言模型&#xff08;VLM&#xff09;&#xff0c;在多模态推理领域展现出卓越性能。这…...

掌握高效自动化抢票:3个专业策略突破90%成功率瓶颈

掌握高效自动化抢票&#xff1a;3个专业策略突破90%成功率瓶颈 【免费下载链接】ticket-purchase 大麦自动抢票&#xff0c;支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 大麦自动抢票开源工具是一款基于Sele…...

SEO的发展趋势会是什么样的

SEO的发展趋势会是什么样的 在互联网的快速发展中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;技术一直是网站排名和流量增长的关键。随着技术的不断进步&#xff0c;SEO的发展趋势也在不断演变。未来SEO的发展趋势会是什么样的呢&#xff1f;本文将从多个角度探讨这…...

Phi-4-mini-reasoning助力Java安装与环境配置:从JDK到IDE的智能指引

Phi-4-mini-reasoning助力Java安装与环境配置&#xff1a;从JDK到IDE的智能指引 1. 为什么需要智能指引来安装Java&#xff1f; 刚接触Java开发的朋友们&#xff0c;十有八九会在环境配置这一步卡壳。我见过太多初学者在JDK版本选择、环境变量配置这些环节反复折腾&#xff0…...

S2-Pro模型部署在CentOS7生产环境:系统调优与安全加固

S2-Pro模型部署在CentOS7生产环境&#xff1a;系统调优与安全加固 1. 引言 在AI模型生产环境部署中&#xff0c;系统调优和安全加固往往是被忽视却至关重要的环节。很多团队花费大量精力优化模型性能&#xff0c;却因为基础环境配置不当导致服务不稳定或安全漏洞。本文将手把…...

基于Python的多媒体信息共享平台毕业设计源码

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的多媒体信息共享平台&#xff0c;以满足现代网络环境下多媒体信息传播的需求。具体研究目的如下&#xff1a;构建一个高效、…...