系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】
系列文章目录
系统架构设计高级技能 · 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】
系统架构设计高级技能 · 系统质量属性与架构评估(二)【系统架构设计师】
系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】
现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.
系统架构设计 · 软件可靠性分析与设计(三)
- 系列文章目录
- 一、软件可靠性基本概念★
- 二、软件可靠性建模★
- 三、软件可靠性管理★
- 四、软件可靠性分析★★★
- 4.1 可靠性指标
- 4.2 串联系统(可靠性)
- 4.3 并联系统(可靠性)
- 4.4 混合系统(可靠性)
- 五、软件可靠性设计★★★★
- 5.1 影响软件可靠性的主要因素
- 5.2 软件的可靠性设计技术
- 5.2.1 容错设计技术
- 5.2.1.1 冗余设计 - 容错设计技术
- 5.2.1.2 N版本程序设计 - 容错设计技术
- 5.2.1.3 恢复块方法 - 容错设计技术
- 5.2.1.4 防卫式程序设计 - 容错设计技术
- 5.2.2 检错错设计技术
- 5.2.3 降低复杂度设计技术
- 5.2.3 系统配置技术
- 5.2.3.1 双机容错技术 - 系统配置技术
- 5.2.3.2 服务器集群技术 - 系统配置技术
- 六、软件可靠性测试★
- 七、软件可靠性评价★
一、软件可靠性基本概念★
系统可靠性 是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。也就是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。
系统可用性 是指在某个给定时间点上系统能够按照需求执行的概率,也就是系统能够正常运行的时间比例。
软件可靠性 ≠ 硬件可靠性,其区别:
- 复杂性 ,软件复杂性比硬件高, 大部分失效来自于软件失效 。
- 物理退化 ,硬件失效主要是物理退化所致,软件不存在物理退化 。
- 唯一性,软件是唯一的 ,每个COPY版本都一样,而两个硬件不可能完全一样。
- 版本更新周期,硬件较慢,软件较快 。
软件可靠性的定量描述 :
软件的可靠性是在软件使用条件、在规定时间内、系统的输入/输出、系统的使用等变量构成的数据表达式。
(1)规定时间:自然时间、运行时间、执行时间,度量软件的可靠性效果最好
(2)失效概率:软件从运行开始算起,运行到某一时间t,出现失效的概率是一个随机函数,称为失效概率。
(3)可靠度:是如软件在规定条件下、规定时间内不失效的概率。
(4)失效强度:单位时间内软件失效的概率。
(5)失效率:也称风险函数或条件失效强度,在运行系统未出现失效的情况下,单位时间软件系统出现失效的概率。
(6)平均无失效时间:软件运行后,到下一次失效的平均时间。更直观地反应软件的可靠度。
可靠性的目标 :
软件可靠性是指用户对所使用的软件的性能满意程度的期望。可以用可靠性、平均失效时间和故障强度等来描述。
软件可靠性测试的意义 :
(1)软件失效可能造成灾难性的后果。
(2)软件的失效在整个计算机系统失效中的比例较高。
(3)相比硬件可靠性技术,软件可靠性技术不成熟。
(4)软件可靠性问题会造成软件费用增长。
(5)系统对软件的依赖性强,对生产活动和社会生活影响日益增大。
软件可靠性测试的目的 :
(1)发现软件系统的缺陷【需求分析、软件设计、系统编码、测试实施】
(2)为软件的使用和维护提供可靠性依据
(3)确认软件是否达到可靠性的定量要求
广义软件可靠性测试 是为了最终评价软件系统的可靠性而运用的建模、统计试验、分析和评价等一系列手段对软件系统实施一种测试。
狭义软件可靠性测试 指为了获取可靠性数据,按预先确定好的测试用例,在软件预期使用环境中,对软件实施的一种测试。
二、软件可靠性建模★
软件可靠性模型是指 为预计或估算软件的可靠性所建立的可靠性框图和数学模型 。
一个软件可靠性模型通常(但不是绝对)由以下几部分组成:
-
模型假设
模型是实际情况的简化或规范化,总要包含若干假设,例如测试的选取代表实际运行剖面,不同软件失效独立发生等。 -
性能度量
软件可靠性模型的输出量就是性能度量,如失效强度、残留缺陷数等。在软件可靠性模型中性能度量通常以数学表达式给出。 -
参数估计方法
某些可靠性度量的实际值无法直接获得,例如残留缺陷数,这时需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。 -
数据要求
一个软件可靠性模型要求一定的输入数据,即软件可靠性数据。
绝大多数的模型包含3个共同假设 :
-
代表性假设
是指可以用测试产生的软件可靠性数据预测运行阶段的软件可靠性行为。 -
独立性假设
此假设认为软件失效是独立发生于不同时刻,一个软件失效的发生不影响另一个软件失效的发生。 -
相同性假设
此假设认为所有软件失效的后果(等级)相同,即建模过程只考虑软件失效的具体发生时刻,不区分软件的失效严重等级。
软件可靠性(模型分类)模的方法包括 :
- 种子法模型
利用捕获一再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。 - 失效率类模型
用来研究程序的失效率 - 曲线拟合类模型
用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间。 - 可靠性增长模型
这类模型预测软件在检错过程中的可靠性改进,用增长函数来描述软件的改进过程。 - 程序结构分析模型
是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。 - 输入域分类模型
选取软件输入域中的某些样本“点”运行程序,根据这些样本点在“实际”使用环境中的使用概率的测试运行时的成功/失效率,推断软件的使用可靠性。 - 执行路径分析方法模型
分析方法与上面的模型相似,先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件的使用可靠性。 - 非齐次泊松过程模型
是以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测在今后软件的某使用时间点的累计失效数。 - 马尔可夫过程模型
- 贝叶斯模型
是利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性。
三、软件可靠性管理★
软件可靠性管理的各个阶段,如图:

四、软件可靠性分析★★★
4.1 可靠性指标
- 平均无故障时间,MTTF = 1 / λ,λ为失效率
- 平均故障修复时间,MTTR = 1 / μ,μ为修复率
- 平均故障间隔时间,MTBF = MTTR + MTTF
- 系统可用性,MTTF / MTBF = MTTF / (MTTR + MTTF) × 100%

4.2 串联系统(可靠性)

4.3 并联系统(可靠性)

4.4 混合系统(可靠性)

五、软件可靠性设计★★★★
5.1 影响软件可靠性的主要因素
从技术的角度来看,影响软件的可靠性的因素包括:运行环境、软件规模、软件的内部结构、软件的开发方法和开发环境、软件的可靠性投入 。

5.2 软件的可靠性设计技术

5.2.1 容错设计技术
5.2.1.1 冗余设计 - 容错设计技术
在一套完整的软件系统之外,设计一种不同路径、不同算法或不同的实现方式方法的模块或系统作为备份,再出现故障时可用冗余部分进行替换。
N版本程序设计和恢复块方法都是基于设计冗余的思想。
5.2.1.2 N版本程序设计 - 容错设计技术
通过设计多个模块或不同的版本,对相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一个模块/版本的故障提供错误的服务。
N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略。

-
与通常软件开发过程不同的是,N版本程序设计增加了三个新的阶段:相异成分规范评审、相异性确认、背对背测试 。
-
N版本程序的同步、N版本程序之间的通信、表决算法(全等表决、非精确表决、Cosmetie表决)、—致比较问题、数据相异性。
5.2.1.3 恢复块方法 - 容错设计技术
选择一组操作作为容错设计单元,把普通的程序块变成恢复快。
恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略。

-
设计时应保证__实现主块和后备块之间的独立性__ ,避免相关错误的产生,使主块和备份块之间的共性错误降到最低程度。
-
必须保证验证测试程序的正确性。
N版本程序设计和恢复块方法对比
| 对比 | N版本程序设计 | 恢复块方法 |
|---|---|---|
| 硬件运行环境 | 表决 | 单机 |
| 错误检测方法 | 多机 | 验证测试程序 |
| 恢复策略 | 前向恢复 | 后向恢复 |
| 实时性 | 好 | 差 |
- 前向恢复 :使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况。
- 后向恢复 :系统恢复到前一个正确状态,继续执行。
5.2.1.4 防卫式程序设计 - 容错设计技术
N版本程序设计和恢复块方法都是基于设计冗余的思想,这给程序员和处理机都增加了许多工作,而且它们的结构本身又带来了一些问题和困难,例如,多版本程序设计中的相关性错误问题和恢复块方法中的验证测试的设计等。
防卫式程序设计 是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计 的 基本思想 是 通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤消错误状态,恢复到一个已知的正确状态中去 。
实现策略包括:错误检测、破坏估计和错误恢复三个方面。
5.2.2 检错错设计技术
-
检错技术 代价低于容错技术和冗余技术,但是不能自动解决故障,需要人工干预 。
-
检错技术注重考虑:检测对象、检测延时、实现方式、处理方式四个要素。
5.2.3 降低复杂度设计技术
降低复杂度设计设计思想 :在保证软件功能基础上,简化软件结构、缩短软件结构、缩短程序代码长度、优化软件数据流向、降低软件复杂度、提高软件可靠性
5.2.3 系统配置技术
系统配置技术可分为双机容错技术和服务器集群技术 。
5.2.3.1 双机容错技术 - 系统配置技术
双机容错技术 是一种软硬件结合的容错应用方案。该方案是由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成在双机容错系统中,两台服务器一般区分为主系统和从系统(备用系统),两台服务器互为主从关系。每台服务器都有自己的系统盘(本地盘),安装操作系统和应用程序。每台服务器至少安装两块网卡,一块连接到网络上,对外提供服务;另一块与另一台服务器连接,用以侦测对方的工作状况。同时,每台服务器都连接在共享磁盘阵列上,用户数据存放在共享磁盘阵列中,当一台服务器出现故障时,另一台服务器主动替代工作,保证网络服务不间断。整个网络系统的数据通过磁盘阵列集中管理,极大地保护了数据的安全性和保密性。
双机容错系统根据两台服务器的工作方式不同,可以有三种不同的工作模式,分别是双机热备模式、双机互备模式和双机双工模式 。
采用心跳的方法保证主系统与备用系统的联系 。
-
双机热备模式 - (一台工作,一台后备)
正常情况下,一台服务器处于工作状态(主系统),另一台服务器处于监控准备状态(备用系统)。如果没有采用共享磁盘阵列,则用户数据同时往两台服务器中写入,以保证数据的即时同步。当主系统出现故障时,通过双机软件将备用系统激活,保证应用在短时间内完全恢复正常使用。当主系统修复后,可重新接入系统要回自己的应用。
双机热备模式是目前采用较多的一种模式,典型应用有证券资金服务器或行情服务器等。
双机热备模式的主要缺点在于,备用系统长期处于后备的状态,存在一定的计算资源浪费。 -
双机互备模式 - (两台运行相对独立应用,互为后备)
两台服务器均处于工作状态,为前端客户机提供各自不同的应用服务,并互相检测对方的运行情况。也就是说,两台服务器同时运行,但彼此均设为备用系统。当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。双机互备模式的主要缺点是对服务器的性能要求比较高。 -
双机双工模式 - (两台同时运行相同的应用,互为后备)
双机双工模式是集群(cluster)技术的一种形式,两台服务器均处于工作状态,同时为前端客户机提供相同的应用服务,以保证整体系统的性能,实现负载均衡和互为备份。
5.2.3.2 服务器集群技术 - 系统配置技术
集群技术就是将多台计算机组织起来进行协同工作,它是提高系统可用性和可靠性的一种技术。在集群系统中,每台计算机均承担部分计算任务和容错任务,当其中一台计算机出现故障时,系统使用集群软件将这台计算机从系统中隔离出去,通过各计算机之间的负载转嫁机制完成新的负载分担,同时向系统管理人员发出警报。集群系统通过功能整合和故障过渡,实现了系统的高可用性和可靠性。
集群内个节点服务器通过内部局域网相互通信,若某节点服务器发生故障,这台服务器运行的应用被另一个节点服务器自动接管。
-
高性能计算集群
指以提高科学计算能力为目的计算机集群技术,它是一种并行计算集群的实现方法。并行计算是指将一个应用程序分割成多块可以并行执行的部分,并指定到多个处理器上执行的方法。 -
负载均衡集群
负载均衡集群在多节点之间按照一定的策略(算法)分发负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力。负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。
比较常用的负载均衡实现技术主要有以下几种:
1)基于特定软件的负载均衡(应用层):很多网络协议都支持重定向功能,例如,基于HTTP重定向服务,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新定位到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
2)基于DNS的负载均衡属于传输层负载均衡技术:其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
3)基于NAT的负载均衡:将一个外部IP地址映射为多个内部IP地址,对每次连接需求动态地转换为一个内部节点的地址,将外部连接请求引到转换得到地址的那个节点,上从而达到负载均衡的目的。
4)反向代理负载均衡:将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。
5)混合型负载均衡 -
高可用性集群
在高可用性集群系统中,多台计算机一起工作,各自运行一个或几个服务,各为服务定义一个或多台备用计算机。当某台计算机出现故障时,备用计算机便立即接管该故障计算机的应用,继续为前端的用户提供服务。
六、软件可靠性测试★
-
软件可靠性测试包括:
可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等。 -
测试步骤:
定义软件运行剖面(为软件的使用行为建模)一个 => 设计可靠性测试用例 => 实施可靠性测试。
七、软件可靠性评价★
-
软件可靠性评价3个过程:
选择可靠性模型、收集可靠性数据、可靠性评估和预测。 -
选择可靠性模型考虑因素:
模型假设的适用性、预测的能力与质量、模型输出值能否满足可靠性评价需求、模型使用的简便性。 -
可靠性数据的收集:
可靠性数据主要是指软件失效数据,是软件可靠性评价的基础,主要是在软件测试、实施阶段收集的。应采用的解决方法:及早确定所采用的的可靠性模型、制订可实施性较强的可靠性数据收集计划、重视软件测试数据的整理和分析、充分利用数据库来完成可靠性数据的存储和统计分析。 -
可靠性评估和预测:
判断是否达到了可靠性目标;如未能达到要再投入多少;在软件系统投入实际运行一年或若干时间后,经过维护、升级和修改,软件能否达到交付或部分交付用户使用的可靠性水平。辅助方法:失效数据的图形分析法、试探性数据分析技术。
相关文章:
系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】
系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...
界面控件DevExpress WPF Chart组件——拥有超快的数据可视化库!
DevExpress WPF Chart组件拥有超大的可视化数据集,并提供交互式仪表板与高性能WPF图表库。DevExpress Charts提供了全面的2D / 3D图形集合,包括数十个UI定制和数据分析/数据挖掘选项。 PS:DevExpress WPF拥有120个控件和库,将帮助…...
【网络安全】等保测评安全物理环境
【网络安全】等保测评&安全物理环境 前言第1章 安全物理环境1.1 物理位置选择1.2 物理访问控制(高风险项)1.3 防盗窃1.4 防雷击1.5 防火1.6 防水防潮1.7 防静电1.8 温湿度控制1.9 电力供应1.10 电磁防护 前言 等级保护对象是由计算机或其他信息终端…...
Intellij IDEA 导入 eclipse web 项目详细操作
Eclipse当中的web项目都会有这两个文件。但是idea当中应该是没有的,所以导入会出现兼容问题。但是本篇文章会教大家如何导入,并且导入过后还能使用tomcat运行。文章尽可能以图片的形式进行演示。我的idea使用的版本是2022.3.3版本。当然按正常来说版本之…...
安卓java A应用切换到B应用,来回切换不执行OnCreate
需求:安卓java如何做到A应用切换到B应用,如果B应用没启动就启动,如果B应用已经启动就仅仅切换到B应用。B应用再切换回A应用,不要重复执行OnCreate! 在 A 应用中的: 在 A 应用中,如果你希望在切换回 B 应用…...
【Linux】批量恢复文件权限
批量恢复文件权限 Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 命令来拷贝和还原系统权限,若是其他系统目录被误…...
数据可视化(八)堆叠图,双y轴,热力图
1.双y轴绘制 #双Y轴可视化数据分析图表 #add_subplot() dfpd.read_excel(mrbook.xlsx) x[i for i in range(1,7)] y1df[销量] y2df[rate] #用来正常显示负号 plt.rcParams[axes.unicode_minus]False figplt.figure() ax1fig.add_subplot(1,1,1)#一行一列,第一个区域…...
前台自动化测试:基于敏捷测试驱动开发(TDD)的自动化测试原理
一、自动化测试概述 自动化测试主要应用到查询结果的自动化比较,把借助自动化把相同的数据库数据的相同查询条件查询到的结果同理想的数据进行自动化比较或者同已经保障的数据进行不同版本的自动化比较,减轻人为的重复验证测试。多用户并发操作需要自动…...
基于SLAM的规划算法仿真复现|SLAM|智能规划
图片来自百度百科 前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总https://blog.csdn.n…...
sqlite3多线程操作问题
在项目中使用sqlite3,有时会报database is locked 两种方式 1、多线程读,多线程写,只使用共同一个数据库连接,即使用同一个SQLiteHelper连接,调用sqlite3_busy_timeout 2、多线程读,单线程写,每…...
ACCESS数据库增删改查
[添加COM组件] A: Microsoft ADO Ext. 2.8 for DDL and Security B: Microsoft ActiveX Data Objects 2.8 Library [添加头文件]using System.Data.OleDb; using System.Data; using ADOX; using System.IO; using System; using System.Collections.Generic; using System.L…...
动捕系统mockup_optitrack替换为VRPN传递信息
motive:启动→载入已有→layout选择capture→view选择data streming→复选marker右键create刚体→rename刚体→修改local interface为本机ip→勾选vrpn ROS端:roslaunch vrpn_client_ros vrpn_efy.launch 记得修改server地址为motiveip地址 关掉motive…...
【服务平台】Rancher运行和管理Docker和Kubernetes,提供管理生产中的容器所需的整个软件堆栈
Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。 完整软件堆栈 Rancher是供采用容器的团…...
二叉树的完全性检验
给定一个二叉树的 root ,确定它是否是一个 完全二叉树 。 在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。 示…...
激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)
激活函数总结(六):ReLU系列激活函数补充 1 引言2 激活函数2.1 RReLU激活函数2.2 CELU激活函数2.3 ReLU6 激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SEL…...
tp5中的事务处理
使用事务首先要数据库支持事务; 如下MySQL数据库user表开启事务支持,即设计表->引擎设置为InnoDB->保存 事务处理 1. 数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可; 2. 事务处理,需要执行多个 SQ…...
论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》
原文链接 C&W 这篇论文更像是在讲一个优化问题,后面讲述如何针对生成对抗样本的不可解问题近似为一个可解的问题,很有启发。本文后面将总结论文各个部分的内容。 Motivation 文章提出了一个通用的设计生成对抗样本的方法,根据该论文提…...
2024重庆邮电大学软件工程809题库(带答案)
1.下列选项中,不属于质量管理的主要任务的是( C )。 A)制定软件质量保证计划 B)按照质量评价体系控制软件质量要素 C)增加软件产品的功能 D)对最终软件产品进行确认 2.下…...
三种目标检测方法(基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法)的区别
问题描述:图像检测分为了基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法,但是有时迷惑三者的区别是什么呢? 问题解答: 第一,基于传统数字图像处理的识别方法和其他两者的区分…...
制造业为什么要建设数字化供应链
数字化让越来越多的人走向了线上的世界,让那些拥有线上产品或提供线上服务的企业提供了更多流量。 但与此同时,传统制造业遭受了沉重的打击,考虑到防疫要求,很多工厂长期处于人手不足的状态,生产制造效率大幅降低&…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
