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

初步认识了解分布式系统

背景认识:我们要学习redis,还是得了解一下什么是分布式。为什么呢?因为redis只有在分布式系统中才能发挥它最大的作用,也就是领域展开,所以接下来我们就简单过一下什么是分布式系统

一些术语认识:

(1)应用(Application)/系统(System)

一个服务器程序

(2)模块(Module)/组件(Component)

 一个应用中有许多的功能,每一个单独的功能就是一个模块/组件

(3)分布式(Distributed)

引入多个主机/服务器,协同配合完成一系列的工作(物理上的主机)

(4)集群(Cluster)

引入多个主机/服务器,协同配合完成一系列的工作(逻辑物理上的主机,范围更大)

(5)主(Master)/从(Slave)

分布式系统中一种比较典型的结构。多个服务器节点,其中一个为主,其他都是从;从中的数据都需要从主节点同步过来

(6)中间件(Middleware)

中间件是和业务无关的服务,比如数据库、缓存、消息队列

(7)可用性(Availability)

系统整体可用的时间/总的时间,衡量系统的第一标准

(8)响应时长(Response Time RT)

衡量服务器的性能的指标,响应时长越小越好

(9)吞吐(Throughput)vs 并发(Concurrent)

衡量系统的处理请求的能力,衡量性能的一种方式


其实分布式,就是对一个系统引入更多的硬件资源,也是从一台机器逐步演变过来的。下面的七个步骤,也就是一个庞大分布式系统慢慢演变过来的大致步骤。

1.单机架构

(1)介绍

所谓的单机架构,也就是只有一台服务器,这台服务器完成所有的功能,包括应用服务、数数据存储等,大致如下面的图

(2)优点

绝大多数的产品都是此种架构,不需要过多的机器就可以应对大多数的业务场景,因此成本也就更加的低

(3)缺点

如果业务越来越多,用户和数据都逐步提高,那么只有一台服务器就无法满足需求,就只能引入更多的主机进行应付。

因此,下一个等级也就是进行数据库和应用分离。

2.数据库和应用分离

(1)介绍

上述的单机架构只有一台服务器,负责管理应用和数据库。因此到这里,就可以将它们分开进行管理。得出下面的图

(2)优点

进一步提高系统的稳定性和承载能力

(3)缺点

机器进一步增多,成本增加,包括人力成本、时间和金钱成本。

3.引入负载均衡

(1)介绍

当服务器逐步增多后,可以处理业务的服务器也不止一台,因此就需要有一个“leader”进行任务的分发,所以也就引入了负载均衡,负责业务的分配,使得每一台服务器都能平衡的处理业务,不会让一台机器干到冒烟。

(2)优点

不再是一台服务器处理所有的请求,服务器所承担的任务进一下下降;即时某一台服务器挂了,也不会影响全局

(3)缺点

成本更高

4.数据库读写分离

(1)介绍

处理请求的服务器的虽然多了,但是数据库承担的压力还是很大,因此采取读写分离。在日常中,读的次数远远大于写的次数,因此也能进一下降低数据库服务器的压力。

(2)优点

更快

(3)缺点

产生了主从关系,数据更新需要及时同步

5.引入缓存(Redis返回的地方)

(1)介绍

虽然读的次数远大于写,但是有时候只有大部分的数据会被频繁读写,成为热点数据,所以还可以进行拆分。把热点数据放入缓存中,访问数据的速度还能进一步提高。

(2)优点

只需要20%的数据,就能满足80%的访问量

(3)缺点

成本高

6.数据库分库分表

(1)介绍

有时候某个数据库或者数据表存放的数据很庞大,因此还可以将一个库或者表拆分,分别存储到多个机器上。

(2)优点

能存储的数据量更大了

(3)缺点

成本高

7.引入微服务

(1)介绍

所谓微服务,就是将一个业务功能拆分成多个,分发给更多的人去完成。

(2)优点

每个业务的功能更加单一,也解决了人的问题

(3)缺点

成本高


小结:分布式系统,就是尽可能的引入更多的机器。

相关文章:

初步认识了解分布式系统

背景认识:我们要学习redis,还是得了解一下什么是分布式。为什么呢?因为redis只有在分布式系统中才能发挥它最大的作用,也就是领域展开,所以接下来我们就简单过一下什么是分布式系统 一些术语认识: &#x…...

react 为什么不能学习 vue3 进行静态节点标记优化性能?

因为 React 使用的是 JSX,而 JSX 本质上就是 JS 语言,是具有非常高的动态的,而 Vue 使用的 template 则是给了足够的约束,比如说 Vue 的 template 里面使用了很多特定的标记来做不同的事情,比如说 v-if 就是进行变量判…...

Elasticsearch黑窗口启动乱码问题解决方案

问题描述 elasticsearch启动后有乱码现象 解决方案: 提示:这里填写该问题的具体解决方案: 到 \config 文件下找到 jvm.options 文件 打开后 在文件末尾空白处 添加 -Dfile.encodingGBK 保存后重启即可。...

Logtus IT员工参加国际技术大会

Logtus IT的员工参加了国际技术大会,该大会致力于在金砖国家框架内开发俄罗斯的技术。该活动包括一个展览,俄罗斯开发商展示了他们的信息技术、电子和电信成就。展示了面向国内和国际市场(包括政府机构)的解决方案、产品和平台。 …...

ant design vue组件中table组件设置分组头部和固定总结栏

问题:遇到了个需求,不仅要设置分组的头部,还要在顶部有个统计总和的栏。 分组表头的配置主要是这个,就是套娃原理,不需要展示数据的直接写个title就行,需要展示数据的字段才需要详细的配置属性。 const co…...

2024年信息安全企业CRM选型与应用研究报告

数字化的生活给人们带来便利的同时也带来一定的信息安全隐患,如网络侵权、泄露用户隐私、黑客攻击等。在互联网高度发展的今天,信息安全与我们每个人、每个组织甚至每个国家都息息相关。 信息安全行业蓬勃发展。根据智研咨询数据,2021年&…...

【后端开发】JavaEE初阶——计算机是如何工作的???

前言: 🌟🌟本期讲解计算机工作原理,希望能帮到屏幕前的你。 🌈上期博客在这里:【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解) 🌈感兴趣的小伙伴看一看小编主…...

Linux(Ubuntu)源码安装postgresql16.3

文章目录 Linux(Ubuntu)源码安装postgresql016.3下载程序包编译安装软件初次执行configure错误调试1:configure: error: ICU library not found再次执行configureBuild 设置环境初始化数据库启动数据库参考 Linux(Ubuntu)源码安装…...

Python 入门教程(7)面向对象 | 7.6、多态

文章目录 一、多态1、鸭子类型2、实现多态的机制2.1、鸭子类型2.2、继承与重写 3、Python多态的优势4、总结 前言: 在面向对象编程(OOP)中,多态(Polymorphism)是一种非常重要的概念,多态就是同一…...

Cilium + ebpf 系列文章-什么是ebpf?(一)

前言: 这篇非常非常干,很有可能读不懂。 这里非常非常推荐,建议使用Cilium官网的lab来辅助学习!!!Resources Library - IsovalentExplore Isovalents Resource Library, your one-stop destination for ins…...

RabbitMQ08_保证消息可靠性

保证消息可靠性 一、生产者可靠性1、生产者重连机制(防止网络波动)2、生产者确认机制Publisher Return 确认机制Publisher Confirm 确认机制 二、MQ 可靠性1、数据持久化交换机、队列持久化消息持久化 2、Lazy Queue 惰性队列 三、消费者可靠性1、消费者…...

恶意Bot流量识别分析实践

1、摘要 随着互联网的发展,自动化工具和脚本(Bots)的使用越来越普遍。虽然一些善意 Bots 对于网站的正常运行和数据采集至关重要,但恶意 Bots 可能会对网站带来负面影响,如爬取敏感信息、恶意注册、刷流量等。因此&am…...

Java2 实用教程(第6版)习题2 第四题

【源文件的命名与书中的不同】 四、阅读程序题 1、上机运行下列程序&#xff0c;注意观察输出的结果。 public class E2_1 {public static void main(String args[]){for(int i20302;i<20322;i){System.out.println((char) i);}} } 运行结果&#xff1a; 低 住 佐 佑 佒…...

HashMap和ConcurrentHashMap的区别

1.是什么 HashMap和ConcurrentHashMap都是Java集合框架中的成员&#xff0c;它们用于存储键值对&#xff0c;但它们在并发场景下的表现和行为有很大的不同。以下是它们之间的一些主要区别&#xff1a; 1. 并发安全性 HashMap: HashMap不是线程安全的。如果多个线程同时访问Has…...

css 下拉框展示:当hover的时候展示下拉框 z-index的用法解释

代码如下&#xff1a; <template><div class"outer"><div class"left"></div><div class"aTest2"><div class"box">显示方框</div><div class"aTest3"></div></…...

spring装配笔记

spring装配是个大课题&#xff0c;能懂一点是一点吧。 关于代码链路&#xff0c;最后的方式就是倒序摸索&#xff0c;正序那么多逻辑&#xff0c;没有一百万也差不多少&#xff0c;所以就用倒序。 .(点号)和#井号是一个意思&#xff0c;下面代码可能不详细区分&#xff0c;复…...

vscode【实用插件】Notes 便捷做笔记

安装 在 vscode 插件市场的搜索 Notes点 安装 安装成功后&#xff0c;vscode 左侧栏会出现 使用 初次使用 需先选择一个本地目录 重启 vscode 后&#xff0c;得到 切换笔记目录 新建笔记 快捷键为 Alt N 默认会创建 .md 文件 配合插件 Markdown Preview Enhanced 预览 .md…...

中间件:maxwell、canal

文章目录 1、底层原理&#xff1a;基于mysql的bin log日志实现的&#xff1a;把自己伪装成slave2、bin log 日志有三种模式&#xff1a;2.1、statement模式&#xff1a;2.2、row模式&#xff1a;2.3、mixed模式&#xff1a; 3、maxwell只支持 row 模式&#xff1a;4、maxwell介…...

postman控制变量和常用方法

1、添加环境&#xff1a; 2、环境添加变量&#xff1a; 3、配置不同的环境&#xff1a;local、dev、sit、uat、pro 4、 接口调用 5、清除cookie方法&#xff1a; 6、下载文件方法&#xff1a;...

Spring Boot 中整合 Kafka

在 Spring Boot 中整合 Kafka 非常简单&#xff0c;Spring Kafka 提供了丰富的支持&#xff0c;使得我们可以轻松地实现 Kafka 的生产者和消费者。下面是一个简单的 Spring Boot 整合 Kafka 的示例。 1. 添加依赖 首先&#xff0c;在 pom.xml 中添加 Spring Kafka 的依赖&#…...

RTX 5090功耗600W:高功耗显卡的系统级挑战与实战装机指南

1. 项目概述&#xff1a;从一则功耗新闻到显卡生态的深度解构最近&#xff0c;一则关于英伟达下一代旗舰显卡RTX 5090功耗可能高达600W的消息&#xff0c;在硬件圈和AI计算领域激起了不小的波澜。对于普通玩家而言&#xff0c;这或许只是一个“电老虎”又升级了的谈资&#xff…...

Claude-Code-Board:构建AI编程工作台,提升开发效率与协作

1. 项目概述与核心价值最近在GitHub上看到一个名为“Claude-Code-Board”的项目&#xff0c;作者是cablate。这个项目标题直译过来就是“Claude代码板”&#xff0c;听起来像是一个与AI编程助手Claude相关的工具。作为一名长期在开发一线摸爬滚打的程序员&#xff0c;我对这类能…...

DIY LED眼妆:从电路原理到穿戴制作的完整指南

1. 项目概述&#xff1a;打造你的专属发光眼妆想为下一次Cosplay活动或万圣节派对增添一抹赛博朋克般的未来感吗&#xff1f;厌倦了千篇一律的商店货&#xff0c;渴望一件真正独一无二、能让你在人群中脱颖而出的发光装饰&#xff1f;这个DIY LED眼妆项目&#xff0c;正是为你准…...

奥里亚语语音合成准确率骤降?揭秘ElevenLabs最新v4.2模型在Odisha方言中的5大发音偏差与3步校准法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;奥里亚语语音合成准确率骤降现象全景透视 近期多个基于深度学习的奥里亚语&#xff08;Odia&#xff09;TTS系统在部署后出现显著性能退化&#xff1a;词级发音准确率从92.4%骤降至73.1%&#xff0c;尤…...

陕西省ICPC省赛总结

个人反思 我个人感觉还是练的少&#xff0c;学的不够系统。具体反应到题上&#xff0c;表现在看到题没有思路&#xff0c;并且也不知道这道题用到什么算法思想&#xff0c;导致拿的书和本子几乎用不上。其次是思考不够深入&#xff0c;我的队友都能进行深入的思考&#xff0c;但…...

告别3D-DNA的卡顿:用Chromap+Yahs快速搞定植物Hi-C辅助组装(附完整代码)

植物基因组Hi-C辅助组装新方案&#xff1a;ChromapYahs全流程解析 在植物基因组研究中&#xff0c;Hi-C技术已成为提升组装连续性的重要手段。然而传统3D-DNA流程在植物数据上的表现常令研究者头疼——运行速度缓慢、内存占用高&#xff0c;且对植物特有的重复序列处理效果欠佳…...

树莓派BlueZ源码编译安装与蓝牙协议栈深度配置指南

1. 项目概述与背景 如果你手头有一块树莓派&#xff0c;并且想用它来玩点物联网或者智能硬件项目&#xff0c;蓝牙功能几乎是绕不开的一环。无论是连接一个BLE温湿度传感器读取数据&#xff0c;还是控制一个蓝牙音箱&#xff0c;底层都需要一个稳定、功能完整的蓝牙协议栈来支…...

Gitee领跑本土化开发体验:深度解析国内代码托管平台的选择之道

在数字化转型浪潮中&#xff0c;代码托管平台已成为开发者团队不可或缺的基础设施。国内市场经过多年发展&#xff0c;已经从单一的海外平台依赖&#xff0c;逐步形成了多元化的平台选择生态。其中&#xff0c;Gitee凭借其本土化优势脱颖而出&#xff0c;成为众多国内开发团队的…...

企业无线准入实战:AC联动RADIUS与内置Portal构建安全访客网络

1. 为什么企业需要安全访客网络&#xff1f; 想象一下这样的场景&#xff1a;你的公司经常有合作伙伴、客户来访&#xff0c;他们需要临时使用Wi-Fi。如果直接开放内部网络&#xff0c;就像把家门钥匙随便发给陌生人&#xff1b;如果用简单密码共享&#xff0c;又像在公共场合大…...

别再只盯着P值了!用Stata做格兰杰检验后,这样解读结果才专业(含VAR模型与脉冲响应分析)

超越P值陷阱&#xff1a;格兰杰检验的深度解读与Stata实战指南 当屏幕上跳出那个熟悉的P值时&#xff0c;大多数研究者会条件反射般地做出二元判断——"显著"或"不显著"&#xff0c;然后匆匆写下结论。这种机械式的数据分析方式正在学术界和业界制造大量&q…...