首页 > 其他分享 >【系统设计】系统设计相关课题的速成“葵花宝典”!

【系统设计】系统设计相关课题的速成“葵花宝典”!

时间:2024-03-24 20:58:58浏览次数:22  
标签:存储 缓存 字节 RAM 应用程序 速成 设计 葵花宝典 日志

目录

推荐超级课程:

这是一门关于系统设计面试概念的完全速成讲解,这些概念是您在实战或者面试系统设计师工作前需要了解的。
系统设计面试与编码无关,人们不想看到您编写实际代码,而是想看到您如何将整个系统组合在一起,
这正是我们将在本教程中涵盖的内容,我们将讨论所有您设计大规模分布式系统之前需要了解的概念。

在这里插入图片描述

计算机架构(磁盘存储、内存、缓存、CPU)

要了解个人计算机的高级架构,在计算机上不同部件如何共同执行我们的代码,计算机通过分层系统运行,每一层针对不同任务进行优化。
在这里插入图片描述
计算机只能理解二进制的0和1,这些被表示为比特,一位比特是计算中最小的数据单位,
可以是0或1,一个字节包含8个比特,用于表示单个字符比如一个数字。从这里扩展,我们有千字节,兆字节,吉字节和太字节来存储这些数据,我们有计算机磁盘存储来存储这些数据,其中保存主要数据,它可以是HDD或SSD类型。磁盘存储是非易失性的,它在没有电源的情况下保持数据,这意味着如果您关闭或重新启动计算机,数据仍将存在,它包含应用程序和所有用户文件,就容量而言,典型的磁盘范围从数百GB到多个TB,而SSD更昂贵,但提供比HDD快得多的数据检索速度比如,SSD可能每秒有500到3500兆字节,而HDD可能提供80到160兆字节每秒,磁盘之后的下一个即时访问点是RAM或随机访问内存(RAM),RAM用作主要的活动数据持有者,并且它保存当前正在使用或正在处理的数据结构,变量和应用程序数据。

当程序运行时,其变量,中间结果计算,运行时堆栈等存储在RAM中,因为它允许快速读写访问,这是一种易失性内存,这意味着它需要电源来保留其内容,重启计算机后可能数据不会被保存,就容量而言RAM在消费设备中为几GB,而高端服务器可能为几百GB,在读写速度上通常超过每秒5000兆字节,比甚至最快的SSD
硬盘速度都要快,但有时候即使是这种速度也不够,这就引出了缓存,缓存比RAM更小,通常以兆字节为单位,但与RAM相比,缓存内存的访问时间更快,L1缓存,CPU首先检查L1缓存中的数据,如果没有找到,它会检查L2和L3缓存,最后检查RAM缓存的目的是减少访问数据的平均时间,这就是我们在这里存储频繁使用的数据以优化CPU性能CPU是计算机的大脑,当您运行代码时,CPU处理在程序中定义的操作,在可以运行我们的代码之前,需要首先编译成像Java,C++,Python或其他语言一样的机器代码编译器执行此转换,一旦代码编译成机器代码,CPU可以执行它,可以从我们的RAM磁盘和缓存数据读取和写入数据。

最后主板,它是将所有组件连接在一起的组件,它提供路径允许数据在这些组件之间流动,现在让我们看一下生产应用程序体系结构(CI/CD、负载均衡器、日志记录和监控)

应用程序体系结构(CI/CD、负载均衡器、日志记录和监控)

在这里插入图片描述
生产就绪的应用程序架构我们的第一个关键领域是CI/CD流水线持续集成和持续部署,这确保我们的代码从代码库通过一系列测试和流水线检查直接到生产服务器,而无需任何手动干预,它配置为使用平台如Jenkins或GitHub actions自动化我们的部署过程,一旦我们的应用程序在生产中,它必须处理大量用户请求,这是由我们的负载均衡器和反向代理器管理如nginx,他们确保用户请求均匀分布在多个服务器上,维持平滑的用户体验,即使在流量激增期间我们的服务器还需要存储数据,为此我们还有一个不在在同一生产服务器上运行的外部存储服务器,而是通过网络连接,我们的服务器也可能与其他服务器通信,并且可以有许多此类服务,而不仅仅一个,以确保所有事情顺畅运行,我们有日志记录和监控系统保持对每个微交互的警觉,存储日志和分析数据是标准实践,将日志存储在外部服务上通常在我们的主要生产中心区之外,关于后端工具像pm2可用于日志记录和监控,前端平台像Sentry可用于实时捕捉和报告错误

当事情不按计划进行时,意味着我们的日志系统检测到请求失败或异常,首先它会激活我们的警报服务,然后将推送通知发送给用户在日志系统检测到错误的请求或异常之后,首先会出现我们的警报服务,然后会向用户发送推送通知,以便让用户了解,从一般的某事崩溃到具体的支付失败

有效的沟通使用户不被留在黑暗中,培养信任和可靠性,现代实践是将这些警报直接集成到常用的平台中,比如Slack,想象一个专门的Slack频道,当问题出现时,警报会立即弹出,这使开发人员几乎可以即刻采取行动,解决根本原因,之后开发人员需要首先调试问题首先必须确定问题,我们之前提到的日志是我们的第一通电话,开发人员会浏览这些日志,寻找可能指向问题来源的模式或异常,之后它需要在安全环境中复制此问题安全环境的黄金规则是永远不要在生产环境中调试,而是开发人员在分期或测试环境中重新创建此问题,这可以确保用户不会受到调试过程的影响,然后开发人员使用工具观看运行数据应用程序并开始调试,一旦bug修复,会发布热修补,这是一种快速临时修复,旨在使事物再次运行,这就像一个补丁,在实现更持久的解决方案之前,这就像具体用例的最佳解决方案,这意

标签:存储,缓存,字节,RAM,应用程序,速成,设计,葵花宝典,日志
From: https://blog.csdn.net/ouyangtianhan/article/details/136972635

相关文章

  • 国务院办公厅发布:政府类网站网页设计规范(试行)
    国务院办公厅于2019年12月发布了《政府类网站网页设计规范(试行)》。该规范的发布旨在统一政府类网站的设计风格和标准,提升政府网站的用户体验和可访问性,推动政府信息公开和服务的提升。该规范涵盖了政府类网站的各个方面,包括页面布局、导航结构、色彩和字体、图标和按钮、表格......
  • HMI界面之:上位机界面设计,一文扫盲
    一、什么是上位机上位机(SupervisoryControlandDataAcquisition,简称SCADA)是一种用于监控和控制工业过程的计算机系统。它通常由两个主要部分组成:上位机和下位机。上位机是SCADA系统中的主要控制中心,负责监控和控制整个工业过程。它通过与下位机通信,从下位机获取实时数据......
  • 一篇文章搞懂并设计循环队列
    目录1.为什么使用循环队列2.循环队列组成为什么要只使用size-1个空间存储?3.循环队列的元素进出3.1队尾加入元素3.2队头删除元素3.3取出队头元素3.4取出队尾元素1.为什么使用循环队列“假溢出”——》出队列会空出存储空间,无法再次利用如图:索引为0和1的空......
  • 【附源码】JAVA计算机毕业设计音乐豆瓣(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,音乐作为人们日常生活中不可或缺的一部分,其获取与分享方式也在不断地变革。传统的音乐获取途径,如购买唱片或到实体音乐店挑选......
  • 设计模式-单例模式(模拟面试官八股)
    一、请说下设计模式中,你熟悉的设计模式单例模式二、单例模式你有了解吗单例模式是创建型设计模式,该类负责创建自己的对象,他确保一个类只有一个实例,并且提拱了一个去全局访问点来访问该实例。二、单例模式有几种实现方式 1.饿汉式(静态常量)优点:写法容易,在类加载的时候就......
  • 【测试思考】设计测试用例时,你在想什么
    突然想写这篇文章是因为,前两天看到一篇文章【像用户一样测试】然后想起事儿 ..        想到在2020年上海爆发疫情后,开始频繁使用买菜软件,在一个深夜从某团紧急挑选加购商品,看到提醒自己账户还有一张满减优惠券,挺高兴的。    临近下单想起来还有一些面包没......
  • 如何实现一个电子表单设计器
    什么是电子表单设计器电子表单设计器是一种在线设计工具,可以用于创建和设计电子表单。电子表单设计器一般会提供可视化的交互操作,让用户可以轻松的拖放各种页面元素,如文本框、复选框、下拉框等,实现表单的布局和样式配置,用户也可以通过设计器配置表单的属性,如校验规则、数据绑......
  • c语言程序设计-实验报告2
    实验项目名称:实验报告2-数据描述实验项目类型:验证性实验日期:2024年3月21日一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2、掌握不同数据类型之间赋值的规律。3、学会使用C的有关算术运算符,以及包含这些运算符的表......
  • mysql索引设计的注意事项(大量示例,收藏再看)
    mysql索引设计的注意事项(大量示例,收藏再看) 开发技术  开发技术 2019-03-29 8362次浏览目录一、索引的重要性二、执行计划上的重要关注点(1).全表扫描,检索行数(2).key,usingindex(覆盖索引)(3).通过key_len确定究竟使用了复合索引的几个索引字段(4)orderby和U......
  • JAVAEE——多线程的设计模式,生产消费模型,阻塞队列
    文章目录多线程设计模式什么是设计模式单例模式饿汉模式懒汉模式线程安全问题懒汉模式就一定安全吗?锁引发的效率问题jvm的优化引起的安全问题阻塞队列阻塞队列是什么?生产消费者模型阻塞队列实现消费生产者模型可能遇到的异常多线程设计模式什么是设计模式首先我......