什么是系统设计 – 学习系统设计
系统设计被定义为为系统的不同组件、接口和模块创建架构并提供有助于在系统中实现这些元素的相应数据的过程。系统设计是任何分布式系统设计背后的核心概念。
系统设计涉及识别数据源,它是描述、创建和规划框架以满足特定业务的必要性和先决条件的直觉。
为什么要学习系统设计?
在任何开发过程中,无论是软件还是任何其他技术,最重要的阶段是设计。如果没有设计阶段,您就无法跳转到实现或测试部分。系统也是如此。
系统设计不仅是系统开发中至关重要的一步,而且还提供了处理异常情况的支柱,因为它代表了软件的业务逻辑。
系统设计的目标
- 实用性:我们需要一个系统,该系统应该针对他们正在设计的相应受众(用户)集。
- 准确性:上述系统设计的设计方式应满足几乎所有设计要求,无论是功能性还是非功能性要求。
- 完整性:系统设计应满足所有用户要求
- 高效:系统设计不应过度使用超过资源成本,也不应过度使用,因为现在我们知道这会导致低彻底投入(输出)和更少的响应时间(延迟)。
- 可靠性:设计的系统应在一定时间内接近无故障的环境。
- 优化:时间和空间很可能就是我们为单个组件在系统中工作的代码块所做的事情。
- 可扩展(灵活性):系统设计应该根据客户的不同用户需求随时间变化,我们知道这些需求会不断变化。
系统开发生命周期
任何系统都不是一天或一步就能设计出来的。对于每个系统设计,都会发生一系列步骤/阶段/阶段来获得强大的系统。该系列被定义为系统开发生命周期(SDLC)。我们需要对系统的生命周期有深入的了解,才能定义代码块中任何变量的范围,因为只有这样我们才能深入了解庞大的系统如何在现实世界的机器中交互。
系统开发生命周期的阶段如下:
- 计划
- 分析
- 设计
- 发展
- 实施
- 维持
系统设计的组成部分
以下是系统设计的一些主要组成部分。简要讨论。详细版本将在不同的帖子中讨论:
- 负载均衡器:系统可扩展性、可用性和性能衡量的最关键组件。
- 键值存储:它是一种类似于哈希表的存储系统,其中键值存储是分布式哈希表。
- Blob 存储: Blob 代表二进制大对象,顾名思义是非结构化数据的存储,例如 YouTube、Netflix。
- 数据库:它是有组织的数据集合,以便可以轻松访问和修改它们。
- 速率限制器:这些设置服务可以满足的最大请求数。
- 监控系统:这些基本上是系统管理员监控基础设施(如带宽、CPU、路由器、交换机等)的软件。
- 分布式系统消息队列:生产者和消费者之间的交易媒介。
- 分布式唯一ID生成器:在大型分布式系统中,每时每刻都会发生多个任务,因此为了区分它,为每个事件分配一个对应的标签。
- 分布式搜索:在每个网站上,访问者要寻找的重要信息都被放入搜索栏中。
- 分布式日志服务:从头到尾跟踪事件序列。
- 分布式任务调度器: CPU、内存、存储等计算资源。
系统架构
软件架构是我们定义设计组件如何描述、设计和部署的一种方式。
它基本上是软件系统的骨架设计,描述了软件系统的组件、抽象级别和其他方面。为了用外行人的语言理解它,企业的目标或逻辑应该非常清晰并列在一张纸上。这里有大型项目的目标和进一步扩大规模的指南,用于扩大现有系统和即将推出的系统。
系统架构模式
有多种方法可以组织软件架构中的组件。软件架构中不同的预定义组件组织称为软件架构模式。尝试并测试了很多模式。他们中的大多数人都成功地解决了各种问题。在每种模式中,组件的组织方式不同,以解决软件架构中的特定问题。
不同类型的软件架构模式包括:
- 分层图案
- 客户端-服务器模式
- 事件驱动模式
- 微内核模式
- 微服务模式
系统设计中的模块化和接口
- 模块化设计是指产品设计的方法/程序,涉及集成或组合较小的独立元素以创建成品。大型产品(如汽车)可以分为更小、更简单的组件,并使用模块化设计方法单独开发和生产。最终产品是通过集成(或组装)这些组件中的每一个来创建的。
- 系统设计中的界面是用户交互的区域。它由便于系统导航的屏幕显示、收集数据的屏幕和表单以及系统报告组成。
现有系统的演进/升级/规模
随着技术使用的增加,无论是离线还是在线,现在每个开发人员都必须设计和创建可扩展的系统。如果系统不具有可扩展性,随着用户的增加,系统很可能会崩溃。因此,缩放的概念就发挥了作用。
假设有一个具有特定磁盘和 RAM 配置的系统正在处理任务。现在,如果我们需要改进我们的系统或扩大规模,我们有两种选择。
- 现有系统的升级规格:我们只是通过升级RAM和磁盘大小以及许多其他组件来改进处理器。请注意,这里我们不关心网络带宽的可扩展性和可用性。在这里,根据演变,我们正在研究可用性因素,仅考虑保持可扩展性。这称为垂直缩放。
- 通过将多个系统连接在一起创建分布式系统:我们在上面看到,如果可扩展性达不到标准,那么我们需要多个系统来进行此测量,因为可用性测量确实有限制。为了扩展,我们需要更多的系统(更多的块),这称为水平扩展。
数据如何在系统之间流动
数据通过数据流图或 DFD在系统之间流动。
数据流图或 DFD被定义为通过信息的数据流的图形表示。DFD 旨在展示如何将系统划分为更小的部分,并突出显示这些部分之间的数据流。
系统设计优势
在详细讨论了系统设计的介绍之后,现在有必要讨论一下它的优缺点。
系统设计的一些主要优点包括:
- 降低产品的设计成本。
- 快速的软件开发过程
- 节省 SDLC 的总体时间
- 提高程序员的效率和一致性。
- 节省资源
缺点:
- 容易设计过度
- 与敏捷冲突
- 与Devops重合
https://www.jdon.com/71571.html
相关文章:
什么是系统设计 – 学习系统设计
系统设计被定义为为系统的不同组件、接口和模块创建架构并提供有助于在系统中实现这些元素的相应数据的过程。系统设计是任何分布式系统设计背后的核心概念。 系统设计涉及识别数据源,它是描述、创建和规划框架以满足特定业务的必要性和先决条件的直觉。 为什么要…...
基于Python的城市热门美食数据可视化分析系统
温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从XX点评APP采集北京市的餐饮商铺数据,利用数据挖掘技术对北京美食的分布、受欢迎程度、评价、评论、位置等情况进行了深入分析,方便了解城市美食店…...
万字长文谈自动驾驶occupancy感知
文章目录 prologue欢迎大家点赞收藏与我交流讨论paper listVision-based occupancy :1. [MonoScene: Monocular 3D Semantic Scene Completion [CVPR 2022]](https://arxiv.org/pdf/2112.00726.pdf)2. [Tri-Perspective View for Vision-Based 3D Semantic Occupancy Predictio…...
KBDNO1.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复
不少小伙伴,求助电脑报错“KBDNO1.DLL文件缺失,软件或游戏无法启动或运行”,应该怎么办? 首先,我们先来了解“KBDNO1.DLL文件”是什么? KBDNO1.DLL是Windows操作系统中的一个动态链接库文件,主…...
计算机网络【EPOLL 源码详解】
IO多路复用 在以前,传统的网络编程是多线程模型,一个线程单独处理一个请求。 然而,线程是很昂贵的资源: 线程的创建和销毁成本很高,linux的线程实际上是特殊的进程;因此通常会使用线程池来减少线程创建和…...
第82讲:MySQL Binlog日志的滚动
MySQL Binlog日志的滚动 MySQL Binlog日志滚动指的就是产生一个新的Binlog日志,然后进行记录,因为如果都在一个Binlog中记录,查询是非常慢的,检索的效率也很低。 Binlog日志滚动有三种方法: 重启MySQL 数据库一般不重…...
2024.1.3C语言补录 宏函数
在C语言中,宏函数可以使用预处理器指令 #define 来定义。宏函数与常规函数类似,但它们在预处理阶段进行替换,而不是在运行时。 定义:#define 宏名称(参数列表) 宏体 其中: #define 是预处理器指令,用于定义宏。宏名…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Column组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Column组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Column组件 沿垂直方向布局的容器。 子组件 可以包含子组件。 接…...
快手推荐算法工程师三面回顾
快手三次技术面试一次HR面试的简单回顾,希望对大家有所启发。 一面 面试官一上来就让写算法题,第一个是计算岛屿数量,第二个是最长回文字串。 然后就是介绍自己的论文。对于论文的工作,面试官只是在问关于论文的问题࿰…...
Sonarqube安装(Docker)
一,拉取相关镜像并运行 # 拉取sonarqube镜像 docker pull sonarqube:9.1.0-community在运行之前要提前安装postgres并允许,新建数据库名为sonar的数据库 Docker安装postgres教程 docker run -d --name sonarqube --restartalways \ -p 19000:9000 \ …...
双击shutdown.bat关闭Tomcat报错:未设置关闭端口~
你们好,我是金金金。 场景 当我startup.bat启动tomcat之后,然后双击shutdown.bat关闭,结果报错了~ 排查 看报错信息很明显了,未配置关闭端口,突然想起来了我在安装的时候都选的是默认的配置,我还记得有这…...
HLS 2017.4 导出 RTL 报错:ERROR: [IMPL 213-28] Failed to generate IP.
软件版本:HLS 2017.4 在使用 HLS 导出 RTL 的过程中产生如下错误: 参考 Xilinx 解决方案:https://support.xilinx.com/s/article/76960?languageen_US 问题描述 DESCRIPTION As of January 1st 2022, the export_ip command used by Vivad…...
【Kubernetes】kubectl 常用命令
kubectl 常用命令 1.基础命令2.部署命令3.集群管理命令4.故障诊断与调试命令5.高级命令6.设置命令7.其他命令 kubectl 是 Kubernetes 提供的命令行管理工具。通过使用 kubectl,可以管理和操作 Kubernetes。 1.基础命令 命令 说明 create通过文件名或标准输入创建 …...
鸿蒙开发第一天
一、开发准备工作 1、开发工具的安装 1)下载地址:https://developer.huawei.com/consumer/cn/deveco-studio/ 2)查询API文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/syscap-00000014080893…...
Midjourney表情包制作及变现最全教程
盘点Midijourney(AIGF)热门赚米方法,总有一种适合你之AI绘画操作技巧及变现渠道剖析 【表情包制作】 首先我们对表情包制作进行详细的讲解: 当使用 Midjourney(AIGF) 绘画来制作表情包时,你可以…...
UNIAPP中借助store+watch完成实时数据
简介 手机端蓝牙连接校验仪,校验仪上传校验数据至手机完成展示。基于watch,完成实时展示数据。对象放在store中。实现分为store中的配置,数据接收,数据展示 store配置 在state中配置属性,在mutations中配置更新方法…...
COLMAP 三维重建 笔记
目录 安装COLMAP 需要设置环境变量 COLMAP数据下载 使用ColmapOpenMVS进行物体的三维重建 安装COLMAP 1.1 下载Colmap:https://demuc.de/colmap/#download 选择cuda版本的进行下载。 1.2 下载OpenMVS,可以选择下载源码自行编译也可以选择封装好的可…...
即时设计:一键查看设计稿与页面差异,让设计师的工作更便捷高效
设计稿走查 在设计工作中,对设计稿和实际页面进行对比是必不可少的环节。然而,传统的对比方式往往耗时耗力,无法精确测量差异。为了解决这个问题,我们推出了一款强大的工具,它可以通过图片对比,轻松查看设…...
知识库问答LangChain+LLM的二次开发:商用时的典型问题及其改进方案
前言 如之前的文章所述,我司下半年成立大模型项目团队之后,我虽兼管整个项目团队,但为让项目的推进效率更高,故分成了三大项目组 第一项目组由霍哥带头负责类似AIGC模特生成系统第二项目组由阿荀带头负责论文审稿GPT以及AI agen…...
Mac内心os:在下只是个工具,指望我干人事?
呜呜呜,今天去医院看病了,乌央央的好多人。最近在研究苹果开发者工具中的HealthKit,等我研究透给大家安利。今天还是继续闲聊吧😂😂提前感谢大家体谅我这个病号,发射小红心,biubiubiu~ 据说&am…...
2024年最新远程控制软件
远程控制软件是一种技术工具,允许用户通过互联网远程控制他人的计算机。该软件通常用于公司或个人远程管理其他计算机的功能。它们允许用户远程操作他人电脑上的程序、文件或网页,或查看目标计算机的屏幕图片和其他信息。因此,该软件也广泛应…...
华为鸿蒙应用--文件管理工具(鸿蒙工具)-ArkTs
0、代码 import fs from ohos.file.fs; import { Logger } from ./Logger; import { Constants } from ../constants/Constants; import { toast } from ./ToastUtils;export class FileUtils {/*** 获取目录下所有文件* param filesDir* returns*/static getFiles(filesDir: …...
Python基础语法笔记 tkinter的简单使用
语法 物质 动态类型语言,不需要声明类型 数字 类型int float bool 操作 //整除 **幂 字符串 str1 "Hello python" str2 "world" print(str1 * 3) # 重复输出 print(str1[1]) # 索引访问 print(str1 " " str2) # 拼接 print(str1[2…...
SSL/TLS 握手过程详解
SSL握手过程详解 1、SSL/TLS 历史发展2、SSL/TLS握手过程概览2.1、协商交换密码套件和参数2.2、验证一方或双方的身份2.3、创建/交换对称会话密钥 3、TLS 1.2 握手过程详解4、TLS 1.3 握手过程详解5、The TLS 1.2 handshake – Diffie-Hellman Edition 1、SSL/TLS 历史发展 可…...
B端产品经理学习-对用户进行需求挖掘
目录: 用户需求挖掘的方法 举例:汽车销售系统的用户访谈-前期准备 用户调研提纲 预约用户做访谈 用户访谈注意点 我们对于干系人做完调研之后需要对用户进行调研;在C端产品常见的用户调研方式外,对B端产品仍然适用的 用户需…...
高清网络视频监控平台的应用-城市大交通系统视联网
目 录 一、应用需求 二、系统架构设计 三、功能介绍 1.实时视频监控 2.云台控制 3.语音功能 4. 录像管理与回放 5.告警联动 6.多种显示终端呈现 (1)CS客户端 (2)web客户端 (3…...
java设计小分队01
1.开发流程: 编辑:生成.java文件编译:javac命令,生成.class文件运行:java命令 2.标识符下列那个(不)合法: 除了第一个词小写,其他词首字母大写;java标识符为…...
instant ngp win11 安装笔记
目录 训练保姆级教程: instant ngp安装参考: 编译步骤1 编译步骤2 我把编译成功的库分享到百度网盘了 训练保姆级教程: 英伟达NeRF项目Instant-ngp在Windows下的部署,以及数据集的制作(适合小白的保姆级教学)_colmap2nerf.p…...
Microsoft Word去除页面多余的换行符
大家写论文的时候或者排版的时候可能遇到换行符多出来了导致页面的不美观。像下面这张图一样,虽然latex不会出现这种问题。 处理方式 点击插入然后点击分页 结果展示...
[Javaweb/LayUI/上机考试作业/开源]学生/图书/课程/仓库等管理系统六合一基础功能通用模板
展示 考试要求 给定用户表和六张图书/教师/顾客/仓库....的表(随机给每人抽选),要求实现用户登录注册,异步更新,对物品增删改查,精确/模糊查询等。 环境 tomcat 9 mysql 8 java 17 项目结构 项目类图 写前…...
做外贸哪些网站可以发免费信息/济南百度推广优化
描述 可以下载QQ音乐免费音乐和绿钻音乐,但是不能下载付费音乐。 运行程序后会在同级目录自动创建名为:歌曲下载的文件夹,下载的文件将被放置在此文件夹 如果下载的文件大小为1KB,则表示下载失败,这首歌不支持下载 源…...
网站设计报告/免费b站推广网站入口202
主要用了pydiction,winManager,taglist,ctags似乎没有起作用,更复杂的也没有装。其实VIM也挺好用的,希望可以掌握更多强大的命令! 1 set number2 colo darkblue3 set nocp4 set ru5 set hls6 syntax on7 set backspaceindent,eol,start8 set …...
一款简洁的个人主页源码/澳门seo关键词排名
C explicit关键字可以帮助我们用来进行构造函数的修饰。那么其具体的操作方法是如何进行的呢?在这里将会为大家一一介绍。 AD: C编程语言中有很多比较重要的关键字在实际编程中起着非常重要的作用。我们今天为大家介绍的C explicit关键字就是其中一个应用…...
排名优化软件/seo sem
前言 利用Python实现抖音字符视频。废话不多说。 让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: cv2模块; PIL模块; numpy模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变…...
wordpress笔记本主题下载/超级优化大师
背景 人很容易落入“只要有用”的陷阱:认为“有用”的事情就要花时间去做;只要努力了就会获得“收获”; 有用不等于值得错误的目标会有认为“有用”的事情变成无用;值不值得,要把机会成本考虑进去;程序员的…...
wordpress 插入图片/百度站内搜索代码
一:概述 1)为什么会出现这个技术?需要解决哪些问题? 2)是什么:(一个软监控,一个展现(zipkin),Sleuth 整合了 Zipkin) …...