【redis】服务器架构演进

架构演进

  • 单机架构
  • 应用数据分离架构
  • 应⽤服务集群架构
  • 读写分离 / 主从分离架构
  • 冷热分离架构
  • 垂直分库
  • 微服务架构

单机架构

所有的应用服务、业务所需的数据、业务处理等都在一台服务器上。

在初期,用户访问量很少,对服务器的的性能和安全没有很高的要求,所以单机架构足以胜任。
在这里插入图片描述

⽤⼾在浏览器中输⼊ 网站名,⾸先经过 DNS 服务将域名解析成 IP 地址 ,随后浏览器访问该 IP 对应的应⽤服务。

应用数据分离架构

随着用户访问量的增加,已经逐渐逼近了系统的极限,需要进行系统重构,我们将应用服务和数据库服务分开部署到不同的服务器上,显著提高两者各自性能。
在这里插入图片描述

应⽤服务集群架构

我们上线的服务受到用户的欢迎,用户访问量暴增,单台服务器已经无法满足需求。
服务器应用首先遇到瓶颈,商讨后,有两种解决发案:

  1. 垂直扩展 / 纵向扩展:通过购买性能更优、价格更⾼的应⽤服务器来应对更多的流量。
    这种⽅案的优势在于完全不需要对系统软件做任何的调整;但劣势也很明显:硬件性能和价格的增⻓关系是⾮线性的,意味着选择性能 2 倍的硬件可能需要花费超过 4 倍的价格,其次硬件性能提升是有明显上限的。

  2. ⽔平扩展 / 横向扩展:通过调整软件架构,增加应⽤层硬件,将⽤⼾流量分担到不同的应⽤层服务器上,来提升系统的承载能⼒。
    这种⽅案的优势在于成本相对较低,并且提升的上限空
    间也很⼤。但劣势是带给系统更多的复杂性,需要技术团队有更丰富的经验

当然也可以进行软件优化来解决问题,但是这对程序猿的要求很高,需要通过性能测试区对症下药,也同样是有上限的。

我们选择了水平扩展方式,但是,为了保证用户的请求被平均的分配的每一台应用服务器上,需要⼀个专⻔的系统组件做流量分发-----负载均衡,这就可以说是分布式系统了。

引入分布式后,系统的复杂程度大大提高,出bug的概率也会更高。

在这里插入图片描述
负载均衡软件:Nginx、HAProxy、LVS、F5 等

读写分离 / 主从分离架构

我们通过水平扩展方式,引入多台应用服务器并设计好了负载均衡服务器后,我们解决了用户请求量增加的问题,但是,这些请求最终都会从数据库读写数据,到⼀定程度之后,数据库服务器就会达到极限,称为系统承载能⼒的瓶颈点。
我们可以像扩展应⽤服务器⼀样扩展数据库服务器么?答案是否定的,因为数据库服务有其特殊性:如果将数据分散到各台服务器之后,数据的⼀致性将⽆法得到保障。

所谓数据的⼀致性
此处是指:针对同⼀个系统,⽆论何时何地,我们都应该看到⼀个始终维持统⼀的数据。想象⼀下,银⾏管理的账⼾⾦额,如果收到⼀笔转账之后,⼀份数据库的数据修改了,但另外的数据库没有修改,则⽤⼾得到的存款⾦额将是错误的。

我们采⽤的解决办法是这样的,保留⼀个主要的数据库作为写⼊数据库,其他的数据库作为从属数据库。从库的所有数据全部来⾃主库的数据,经过同步后,从库可以维护着与主库⼀致的数据。然后为了分担数据库的压⼒,我们可以将写数据请求全部交给主库处理,但读请求分散到各个从库中。

在这里插入图片描述

冷热分离架构

随着访问量继续增加,发现业务中⼀些数据的读取频率远⼤于其他数据的读取频率。我们把这部分数据称为热点数据,与之相对应的是冷数据。针对热数据,为了提升其读取的响应速度,可以增加本地缓存,并在外部增加分布式缓存。

对于大多数的业务来说,通常会出现 二八现象,80%的访问量是冲着那20%的热点数据去的,我们将热点数据放入缓存,能把绝⼤多数请求在读写数据库前拦截掉,⼤⼤降低数据库压⼒。

在这里插入图片描述

相关软件:
Memcached、Redis 等缓存软件

垂直分库

随着业务的数据量增⼤,⼤量的数据存储在同⼀个库中已经显得有些⼒不从⼼了,所以可以按照业务,将数据分别存储。

在这里插入图片描述

微服务架构

随着⼈员增加,业务发展,我们将业务分给不同的开发团队去维护,每个团队独⽴实现⾃⼰的微服务。
将之前的复杂的服务器拆分成更多的,功能较为单一,更小的服务器。降低了维护服务器的难度,但是服务器的数量和种类更多了。
也会降低业务整体的性能,因为各个拆分出来的服务要进行网络通信,而网络通信的速度可能会比硬盘的读取速度还慢。

在这里插入图片描述

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

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

相关文章

验证回文串——算法思路

题目链接:125. 验证回文串 - 力扣(LeetCode) 主要是将大写字母转换成小写(将字母异或32即可转换大小),并将数字也存入数组,除去其他字符。反转是通过list反相输入再比较实现的。 public static …

踩了一天Prophet的fbprophet坑

pip怎么安装Prophet 安装了这个不行,要安装fbprophet 然后安装不起 哦豁 anaconda虚拟环境安装好将其导入pycharm from fbprophet import Prophet 然后不报错了,很稀奇对吧,不报错了 但是运行还是给你显示 没有fbprophet 绝望了,找人吧 通过官方网站安装最新版Prophet,但是…

2024年全球生成人工智能全景图【中文】

2024年全球生成人工智能全景图【中文】 在过去的一年中,产生式人工智能(GenAI)无疑成为了全球各行各业的热门话题。特别是ChatGPT的发布,激发了公众对GenAI强烈的兴趣和激动,唤醒了我们对其变革潜力的认知。 虽然我们…

keepalived高可用

负载均衡集群 底层协议:VRRP协议 优点: 工作原理: 体系结构图 内核空间:IPVS模块 NETLINK模块 用户空间:I/O模型 内存管理方法:Memory mngt 控制面板(配置文件解析器) 核心组件…

国自然提交状态,NSFC已审核 ≠ 申请书被受理!!!

本 期 推 荐 【SciencePub学术】2024年度国家自然科学基金集中受理期项目申请受理工作已基本结束。到底什么状态才算申请书被NSFC接收成功呢? 01 申请书状态 申请人登录ISIS系统,至此,绝大部分申请人的系统状态为下面三种: …

安科瑞ANET智能物联网网关 通信管理机-安科瑞 蒋静

概述 本系列智能通信管理机是一款采用嵌入式硬件计算机平台,具有多个下行通信接口及一个或者多个上行网络接口,用于将一个目标区域内所有的智能监控/ 保护装置的通信数据整理汇总后,实时上传主站系统,完成遥信、遥测等能源数据采集…

2024公认口碑最好的洗地机有哪些?若看重清洁力,这四款最值得买

每当我们要清洁卫生时,是否总是感到腰酸背痛、疲劳不堪,甚至头昏眼花?地板是家中的重要门面,不容忽视的卫生焦点。如今,我们终于多了一位家务打扫的救星——家用洗地地机。一次操作,即可完成扫地除尘、地除…

【Java开发过程中的流程图】

流程图由一系列的图形符号和箭头组成,每个符号代表一个特定的操作或决策。下面是一些常见的流程图符号及其含义: 开始/结束符号(圆形):表示程序的开始和结束点。 过程/操作符号(矩形)&#xff…

【排序算法】实现快速排序值(霍尔法三指针法挖坑法优化随即选key中位数法小区间法非递归版本)

文章目录 📝快速排序🌠霍尔法🌉三指针法🌠挖坑法✏️优化快速排序 🌠随机选key🌉三位数取中 🌠小区间选择走插入,可以减少90%左右的递归🌉 快速排序改非递归版本&#x1…

瑞士百达资产管理有限公司拟增三大去中心化数字加密货币支付接口!

简介: 瑞士百达集团成立于1805年,欧洲第三大财富管理公司, 集团拥有约 5,300 名员工,其中包括 900 名投资经理。它在金融服务中心拥有 30 个办事处网络,包括在日内瓦、卢森堡、拿骚、香港和新加坡的注册银行,百达集团管理的资产总额达6380亿瑞士法郎(7670亿美元)。 瑞士百达资…

一键部署开源舆情系统

系统展示 部署 docker run -itd --name stonedt_yuqing -p 8085:8085 registry.cn-beijing.aliyuncs.com/stonedt_yuqing/stonedt_yuqing:1.0.6 登录 ip:8085 默认用户名:13900000000 ,密码:stonedt

C# Solidworks二次开发:获取主窗口API和创建新活动窗口API详解

今天要讲的是Solidworks中的两个API。 (1)Frame Method (ISldWorks):获取SOLIDWORKS主框架。 下面是API中给出的例子: public void Main(){ModelDoc2 swModelDoc default(ModelDoc2);Frame swFrame default(Frame);ModelWindow…

蓝桥杯算法心得——附近最小(优先队列+滑动窗口)

大家好,我是晴天学长,这题可以用贪心优先队列和滑动窗口来写,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .附近最小 问题描述 小蓝有—个序列a[1], a[2],...,a[n]。 给定—个…

软件测试经验与教训

大概在18年的时候,就看过《软件测试经验与教训》的纸制版,里面的一些观点深刻的影响了我,也影响了后来我对测试的思考。最近又一次快速阅读了电子版,还是收获满满。下面精选出10条,和大家分享。 一、测试人员是项目的…

混合云构建-使用 Azure ExpressRoute 建立从本地到 Azure 虚拟网络的专用连接

如果有大量业务数据需要在本地数据中心和azure私有网络进行传输,同时保证带宽和时延的情况需要使用 ExpressRoute 设置从本地网络到 Azure 中的虚拟网络的专用连接。以下是实操步骤供参考: 一、创建和预配 ExpressRoute 线路 登录 Azure 门户。 在页面…

YOLOv9解读

论文地址:https://arxiv.org/abs/2402.13616 Github地址:https://github.com/WongKinYiu/yolov9 一、引言 作者认为当前深度学习方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。本文基于深入研…

RK3568驱动指南|第十三篇 输入子系统-第145 章 输入子系统上报数据格式分析

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

PostgreSQL中控制文件的解析与恢复

最近遇到有人问起PG中控制文件的一些使用问题,总结了一下。 1、PG控制文件简介 1.1、存储的位置 它的路径位于: 相关信息,可以用命令pg_controldata得到: [10:41:27-postgres@centos2:/var/lib/pgsql/14/data/global]$ pg_controldata -D $PGDATA pg_control version …

深度学习十大算法之长短时记忆网络(LSTM)

一、长短时记忆网络(LSTM)的基本概念 长短时记忆网络(LSTM)是一种特殊类型的循环神经网络(RNN),主要用于处理和预测序列数据的任务。LSTM由Hochreiter和Schmidhuber于1997年提出,其…

自动驾驶建图--道路边缘生成方案探讨

自动驾驶建图–道路边缘生成方案探讨 一、背景 对于自动驾驶来说,建图是必不可少的,目前主流厂商技术都在从HD到"无图"进行过渡筹备中,不过想要最终实现真正的"无图"还是有很长的一段路要走。 对于建图来说,…