金融行业的软件测试分析
随着金融行业的业务不断增加,金融交易模式的不断变化,金融机构对信息化的要求也越来越高,高质量的金融软件对于金融机构来说显得尤为重要。如何保证金融行业软件的质量,对金融行业软件的测试人员来说,也提出了更高的要求。以下针对金融行业软件的测试做出了具体的分析:
1金融行业软件特征分析
金融行业软件系统具有集中度高、规模庞大、数量多、系统之间关联性强、业务复杂、需求变化快等特点,如何有效可行的实现软件测试和软件质量控制,是对金融行业软件测试人员提出的基本要求。
1.1金融行业软件的业务特点
以金融行业软件的典型代表银行系统软件为例:一般的银行系统软件都有一个核心系统,核心系统主要涉及账务的处理、清算、计息等。银行的其它业务系统都会直接或间接的与核心系统进行交互,主要处理一些涉及业务的流程以及系统管理、用户管理等辅助功能。
此外,银行的业务系统也种类繁多。比如:ACE/柜面、网上银行、电话银行、呼叫中心、信贷、资产托管、资金风险分析及风险控制系统、外汇买卖、基金、期货、黄金、汇票、信用卡业务以及其它衍生业务等等。各个系统之间都可能有着密切的联系,之间也会涉及到不同系统之间的接口。
因此,在测试过程中,除了对银行的核心系统、业务系统进行测试之外,还会涉及对接口的测试,而接口测试往往需要测试人员构造一定的测试环境与测试数据来模拟各系统之间的交互。
1.2金融行业软件的复杂性特点
就银行系统软件来说,本身就具有复杂性的特点。首先,银行软件具有不同的客户群,如个人用户、企业用户、银行内部管理人员、业务人员等,因此,银行软件会有针对不同客户所使用的版本或权限控制。此外,对于不同的服务方式,如柜台、电话银行、网上银行等,都必须开发出不同的软件。其次,银行业务种类繁多,业务逻辑也非常复杂,对业务处理要求有很高的安全性和实时性,这些都要借助复杂的技术才能实现。因此,对于测试而言,软件的复杂性也增加了测试的复杂性,对测试者来说要求有相当的经验和测试技术的支持。
另外,由于银行业务的快速发展,当旧的银行软件系统无法满足业务处理的要求时,就必须开发新的系统,对于重新开发的新系统来说,旧系统的用户数据必须保证能在新系统中正常使用,这就涉及到了新旧版本的数据移植问题,由于新旧系统之间数据字典存在差异,数据移植后能否正常,就需要对新旧数据进行比对性测试。比对测试过程往往会涉及数据库的应用及比对工具的开发使用。
2金融行业软件测试的现状
根据某项调查,金融企业应用系统的数量,中小银行应用系统数量普遍在100个左右,有一半银行超过100个应用系统;虽然保险行业应用系统数量相对较少,但大部分保险公司拥有10―50个应用系统;而且这些数量还有进一步上涨的趋势。调查数据也表明,金融行业IT部门的测试能力目前远远低于金融机构对测试的要求[3]。即使是IT成熟度比较高的企业,也难以覆盖所有应用系统的测试需求。金融企业的测试需要和信息科技部门的测试能力之间存在一定的差距。
3金融行业软件测试方法及范围分析
以下主要从功能测试、接口测试、数据移植测试、性能测试、安全性测试、风险监控测试、文档审核几个方面来阐述金融行业软件的测试方法及范围[4]。以下划分主要为了更清晰了解金融行业软件测试所包含的范围,本次分析不涉及白盒测试的内容,主要针对涉及金融行业软件业务特性的测试方法及范围进行阐述。
3.1功能测试
功能测试,主要是对软件的功能进行的验证,对于金融行业软件来说,功能测试主要进行以下功能的验证:
3.1.1业务验证测试
验证业务系统的功能是否正确实现,测试其业务处理的准确性。
1)业务流程测试
金融行业软件测试首先关注的是业务的正确性,业务流程要合理、业务处理正确无误,这些往往需要测试人员具备一定的金融软件测试经验,才能更好的判断业务流程设计是否合理,是否满足客户实际需求,以及业务流程处理过程中可能会涉及到的异常,通常通过正常案例和异常案例来验证业务流程的完整性和正确性。业务流程除了验证流程的正确性,通常对于涉及金额、资金、库存等数据及业务流程中生成的记录是否正确性也是测试的重点。
2)账务处理
对于银行来说,账务处理为核心系统功能,也是这类软件测试的重点,账务处理不仅涉及到资金,还与交易过程相关,在测试系统对账时,必须对账务处理流程有清晰的认识,对于账务处理过程中账务是否处理正确、是否出现错账、是否需要进行调账等案例都要能进行完整的案例设计来覆盖测试点,这一块的测试一般需要有经验的测试人员来进行测试。
3)清算
银行系统清算过程涉及的东西较多,如资金清算、库存清算、计费、计息、对账、登帐、报表生成等复杂的过程,同时涉及的数据量也是非常的大,对于大型系统来说更是如此数据检查的工作量也很大,同样测试人员需要对清算的全过程有清晰的了解。
4)报表
对于银行系统来说,报表是直接呈现给用户最直接的结果,而对一个银行系统来说,报表的数量一般都较庞大,很可能涉及到几十张报表,因此对报表的检查也是测试的重点,这需要测试人员对银行系统涉及的业务非常熟悉,能判断报表的设计是否合理,报表数据是否正确等。
3.1.2客户端测试
客户端主要针对的是软件界面功能的测试,根据功能划分一般涉及以下几类:
1)系统管理类
系统管理主要包括系统参数管理、用户管理、角色管理、权限分配等,测试也包含相应的业务逻辑及页面测试,如查询功能的测试、显示风格、验证客户端页面显示数据是否正确等。
2)数据查询类
主要验证数据查询结果客户端显示是否正确。
3)其它涉及业务操作的功能界面
主要针对客户端界面的录入、查询等功能进行测试。
客户端测试还会对界面的友好性、提示信息的合理性等进行测试。
3.2接口测试
对于银行来说,通常行内系统和与银行外对接的系统是独立开发的,行内与行外系统采用的数据库、通讯协议等都可能存在差异;并且对于银行来说,还可能存在多个系统,如:网上银行、ACE/柜面、电话银行、呼叫中心、信贷、资产托管、资金风险监控分析系统等,并且各个系统之间可能关联特别紧密,存在许多交互;因此,在测试中会涉及到相关系统接口的测试,这时通常需要构造对接系统的测试环境、数据、业务等来模拟对接系统。
接口测试中,由于一方系统在测试过程中不可见,因此通常需要进行环境的模拟,比如开发模拟软件来模拟被测试系统与所交互的系统之间的通讯,并且在测试过程中通常需要测试人员自己组报文,通过模拟发送器收发发送报文来进行测试,并通过后台检查报文转换是否正确,通过数据库来验证数据是否正确。通常来说,接口的测试测试人员主要跟后台和数据库打交道,而很少通过客户端来操作,因此要求测试人员对数据库知识、对应的操作系统命令以及一些中间件具有一定的熟悉程度才能更好的进行测试。
接口测试一般在功能测试阶段完成,功能测试计划中应包含接口测试。
3.3数据移植测试
对于银行来说,软件产品经常存在更新换代或升级的情况,新系统的运行环境和旧系统可能不一致。因此,为了保证系统的顺利运行,在新系统研发出来,准备上线之前,需要把原来旧系统的客户历史数据移植过来,这就涉及到了数据移植问题。数据移植并不是简单的数据迁移,因为新旧系统之间数据字典是不同的,为了保证移植结果的正确性,需要对新旧数据库的数据进行比对,通常可以通过人工方法或开发比对工具进行比对。
举例来说,旧系统采用的SQLSERVER的数据库,而新系统采用Oracle的数据库;并且就系统可能存在50张数据表,新系统可能有200张数据表,而且,新系统的数据表结构与旧系统可能完全不一样,或者新旧系统的某张表可能对应另一个系统的几张表,这样在数据移植测试中就要进行几方面的测试。比如,两个数据库可能存在有差异的地方,如数据类型不同,位数不同,在数据移植过程中对这部分就应该做详细的检查。此外,表结构的不同,在做数据移植检查时,需要获得新旧版本的数据字典,并且对移植过来对应的所有字段数据是否移植正确做检查。
数据移植测试往往需要测试人员有足够的耐心,能仔细进行比对,发现存在的问题。数据移植测试一般在功能测试阶段完成,功能测试计划中应包含数据移植的测试。
3.4性能测试
性能测试的目的主要是验证业务系统是否满足业务需求的多用户并发操作,是否满足业务性能需求,评估压力解除后的自恢复能力,测试系统性能极限。
随着金融行业软件的规模越来越大、处理能力要求越来越高,进行性能测试成为金融软件测试中必不可少的一个环节。金融行业软件一般在投入使用时,需要接受大批量的业务,并且对于业务的响应处理时间也有很高的要求,这对于应用程序本身、操作系统、中心数据库服务器、中间件服务器以及网络设备的承受力都是一个严峻的考验。任一个环节的问题都可能给用户带来巨大的商业损失。因此,如何保证在压力情况下系统能正常运行是金融行业软件质量保证的关键,同时也是测试人员最需关注的重点。
在性能测试过程中,通过性能测试工具来模拟与真实环境接近的情况,如通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率,获得一定的参数(如:(如内存、CPU、缓存、系统响应时间、最大吞吐率、事务平均处理时间),以及系统可以承受的压力情况,进行针对性的测试与结果分析,找到影响系统性能的瓶颈,以便对系统进行优化。
3.5安全性测试
安全性测试的目的主要是评估业务系统在网络安全、主机安全、应用安全、数据安全、运行维护安全、电子认证安全、业务连续性等方面的能力及管理措施,评价其业务系统的安全防控和安全管理水平。
对于金融行业软件来说,安全性有着重大的意思,尤其对于网络日益发达的今天,大量的金融类交易都是通过网络来实现,确保信息的安全,对安全性测试提出了更高的要求。如客户数据的安全、资金的安全;银行主机的安全,应用程序的安全以及网络安全,某一个环节出现问题都会给系统带来巨大的风险。安全性测试主要检查出软件存在的安全隐患,确定安全等级,以期得到整改。
通常用的安全性检查手段及检查点如:跨站攻击、弱点攻击、管理界面泄露、敏感信息泄露、跨站点请求伪造、恶意上传等。
对于安全性测试来说,一般需要专业的工具作为支持,因为,大多数的安全性测试都会交给具有一定资质的第三方评测机构来进行。
3.6风险监控测试
主要目的是评估业务系统的风险监控、预警和管理措施,测试其业务系统异常交易、大额交易、非法卡号交易、密码错误交易等风险的监测和防范能力以及系统资源占用的监控。
对于银行的较大型系统来说,一般都会专门开发对应的风险监控系统,一类风险监控主要是对系统的交易、资金、等情况进行监控;另一类则是对主机资源情况进行监控,对于交易、资金类的风险监控测试时主要是根据风险监控需求来验证监控结果是否符合需求描述;对于系统资源类的测试主要关注被监控主机的资源占用情况是否合理。
风险监控测试一般在功能测试阶段或性能测试阶段完成,功能测试或性能测试计划中应包含风险监控的测试。
3.7文档审核
目的主要是验证业务系统的用户文档、开发文档、管理文档等是否完整、有效、一致,是否符合相关标准并遵从更新控制和配置管理的要求。
文档审核最基本的原则是软件实现必须按照用户需求文档来进行设计和实现。对于需求文档审核来说,文档必须覆盖用户所有需求点的描述;对于开发文档,如概要设计文档、数据库设计文档,设计和实现原则应根据需求而定;此外各类管理文档审核包括对项目工期的定义、项目人员的安排与任务分配、项目具体执行的定义等等。在实际应用中,由于用户需求存在经常性的变动已经增加,文档也会存在相应的变更,审核部分也包括对变更部分内容的审核。但是目前金融行业软件没有一个严格的规范来进行约束,因此,在文档审核和实际的开发、测试操作环节都不能得到真正的落实,对测试质量环节也造成了相应的影响。
3.8自动化测试
现阶段实施的自动化测试与手工测试相比较,就是采用程序模拟手工测试的过程。在自动化测试过程中,原来由手工控制的操作,现在由程序来控制,不再进行手工干预[5]。自动化测试主要用于功能测试,测试过程包括脚本的录制、编写及回放。
4金融行业软件测试工具分析
金融行业软件测试与其它应用软件测试流程基本一致,测试过程也涉及到一定的测试工具的使用,以下是金融行业软件常用的软件测试工具:
4.1黑盒测试工具
黑盒测试工具较多应用的是自动化测试工具QARun、QTP。
4.2性能测试工具
常用于金融系统软件,适用于各种体系架构的自动负载测试工具LoadRunner,它能预测系统行为并优化系统性能。
对于性能测试来说,很多情况下,商业化的软件不一定能满足性能测试的需求,因此很多时候,需要开发一定的性能测试软件来进行针对性的测试。
4.3测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)工具
常用测试管理工具有:QC、TD、ClearQuest等,主要对测试计划、测试用例、测试实施进行管理,并进行缺陷跟踪管理。
5金融软件测试模式分析
在金融机构内部组织业务测试之前,软件必须经过完整的系统测试、性能测试及安全性测试等才能交付金融机构的业务部门进行业务测试,测试模式可以有以下几种模式:
5.1软件开发方进行的内部系统测试、性能测试和安全性测试
开发方内部进行的测试与本文第三部分描述的软件测试方法与范围分析基本一致,下面主要就第三方测试的模式进行分析。
5.2第三方测试机构进行的系统测试、性能测试和安全性测试
5.2.1第三方测试的优点
第三方测试是指由独立的软件评测机构,根据项目管理方或用户的委托,对被测软件所进行的科学、公正、客观的综合测试及评测活动。在软件工程的整个流程中,用户对于软件的质量非常关注,但用户本身没有足够的能力对软件进行测量的评估,这时,就需要引入一个专业的评测机构,来对软件的质量进行客观的评测。第三方测试不同于软件开发方的内部测试或用户的业务测试,强调由独立于用户和开发方的软件评测机构来承担测试任务,其目的在于保证测试的公正性与客观性。第三方测试主要适用于对行业应用软件的测试及评估。基于以上第三方测试的优点及目前金融机构测试人员与金融系统测试需求的不平衡性,目前,在金融行业,专业评测机构的第三方测试已经显示出诸多的优势,并得到越来越多的应用,如在人行支付系统、商业银行的一些应用系统,都曾引入第三方测试,并获得了很好的效果。
相对于内部测试来说,第三方测试具体有以下几个优点:
1)随着系统规模的日益庞大,软件开发方很难投入足够的人力、物力来参与测试工作。同时,开发方也缺乏专业的测试工具以及经验丰富的测试人员;只有第三方机构才具有这样的实力来完成测试任务。
2)第三方测试以合同的形式制约了测试方,保证了测试工作在一开始就具有客观性。
3)第三方能够通过系统需求来理解整个系统,并从软件工程的角度把握系统,能专业、公正的评价系统中出现的问题。4)第三方机构的权威性能更好的协调第三方、用户以及开发方三者之间的关系。
5.2.2第三方测试的应用
第三方测试机构在测试技术方面一般具有行业内较为专业的测试技术以及较为领先的测试技术、对于被测试项目来说具有技术测试层面的优越性。但是另一方面,第三方测试的管理具有一定的复杂性,整个测试活动的实施,不但需要较强能力的软件测试人员,更需要得到用户及软件开发方的支持,才能确保测试人员对被测软件有较深的认识,确保软件测试的最终质量。
此外第三方测试在整个测试活动中,需要判断开发方的软件是否满足用户的需求,提交最终的测试报告,对所测试软件给出公正、客观的评测结果。
5.2.3第三方测试常用的测试工具
无论作为内部测试或第三方测试,都必须采用一些自动化的测试工具来进行测试的管理和执行。常用的第三方测试的测试工具主要包含以下几类:
1)测试管理工具
如:TestDirector、QualityCenter、ClearQuest。
2)性能测试工具
如:LoadRunner及第三方自己开发的性能测试工具。
3)自动化测试工具
如:QARun、QTP
5.2.4第三方测试目前存在问题及发展前景
首先,第三方测试作为用户和开发方都放心的测试或评测机构,在客户需求日益增加的情况下,具有良好的发展前景。但是,第三方测试机构所提供的是测试服务,只涉及人工费用,在竞争压力比较大的环境下,价格战不可避免。
6结束语
本文针对金融行业软件的测试现状、测试方法及范围、测试工具、以及测试模式进行了分析,提出了适用于金融行业软件测试的具体方案及实用技术。但随着新的设计模式及开发方法的不断涌现,现有的测试理论及技术必须做出与之相对应的改进才能满足不断变化的用户需求。
相关文章:
金融行业的软件测试分析
随着金融行业的业务不断增加,金融交易模式的不断变化,金融机构对信息化的要求也越来越高,高质量的金融软件对于金融机构来说显得尤为重要。如何保证金融行业软件的质量,对金融行业软件的测试人员来说,也提出了更高的要…...

踩坑了,MySQL数据库生成大量奇怪的大文件
作者:田逸(formyz) 一大早就收到某个数据库服务器磁盘满的报警信息,其中数据盘使用率超过90%,如下图所示。 这是一台刚上线不久的MySQL从库服务器,数据盘的总容量是300G。先登录系统,查看主从同…...

ctfshow-web11~20-WP
web11 根据提示,查询对ctfshow域名进行dns查询,查看TXT记录 阿里云查询链接:阿里云网站运维检测平台 获取flag成功 web12 根据题目提示,我们访问robots.txt,获取到后台地址 然后我们访问一下后台...
2.5学习总结9
并查集 知识点 并查集是一种数据结构,用于处理一些不相交集合的合并及查询问题。它支持两种操作: Find(x):查找元素 x 所属的集合。Union(x, y):将元素 x 所属的集合和元素 y 所属的集合合并。 初始化:将每个元素单…...

删除.git的影响、git分支切换时注意事项
一、删除.git的影响 master分支文件 dev分支文件 删除.git后 文件为删除.git前分支的文件状态。 二、git分支切换时注意事项 情景:如果我在分支A,想要跳转到分支B。 git的规矩是,在那个分支上进行的提交,就算哪个分支上的工作…...

Linux系统调试课:硬件断点
沉淀、分享、成长,让自己和他人都能有所收获!😄 📢在linux内核编程中,经常会遇到由于内存被篡改,例如 buffer overflow,野指针,write after free等。查找分析此类问题非常的麻烦。 一、什么是硬件断点 硬件断点,是Linux内核中是一种被ptrace和内核内调试器使用调试…...

百卓Smart管理平台 uploadfile.php 文件上传漏洞复现(CVE-2024-0939)
0x01 产品简介 百卓Smart管理平台是北京百卓网络技术有限公司(以下简称百卓网络)的一款安全网关产品,是一家致力于构建下一代安全互联网的高科技企业。 0x02 漏洞概述 百卓Smart管理平台 uploadfile.php 接口存在任意文件上传漏洞。未经身份验证的攻击者可以利用此漏洞上传…...
关于RabbitMQ常见的十道面试题
RabbitMQ是如何组成的?它有哪些重要的组件? RabbitMQ主要由以下几个重要组件组成: Broker:这是消息代理,主要负责接收、存储和转发消息Exchanges:交换器,它的主要作用是根据一定的规则匹配消息…...

spring cloud stream
背景 主要解决不同消息中间件切换问题。实现不同中间件的代码解耦。 链接: 支持的中间件 后文使用kafka测试。 引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-stream</artifactId></depende…...

vue3 之 组合式API—watch函数
watch函数 作用:侦听一个或者多个数据的变化,数据变化时执行回调函数 两个额外参数: 1.immediate(立即执行)2.deep(深度侦听) 场景:比如选择不同的内容请求后端不同数据时 如下图 …...

并发容器【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】
并发容器 什么是并发容器?同步容器:并发容器: ConcurrentHashMap结构图JDK1.7结构图JDK1.8结构图 CopyOnWriteArrayList实现原理 并发队列阻塞队列ArrayBlockingQueue 转自极客时间 什么是并发容器? 在JUC包中,有一大部分是关于并发容器的,如Concurr…...
EmoLLM-心理健康大模型
宣传一下自己最近参与的开源 https://github.com/aJupyter/EmoLLM EmoLLM-心理健康大模型 EmoLLM 探索本项目的文档 查看Demo 报告Bug 提出新特性 EmoLLM 是一个能够支持 理解用户-支持用户-帮助用户 心理健康辅导链路的心理健康大模型,由 InternLM2 指令微…...

学成在线:采用XXL-JOB任务调度方案使用FFmpeg处理视频转码业务
分片技术方案 概述 XXL-JOB并不直接提供数据处理的功能,它只会给所有注册的执行器分配好分片序号,在向执行器下发任务调度的同时携带分片总数和当前分片序号等参数 设计作业分片方案保证多个执行器之间不会查询到重复的任务,保证任务不会重复执行 任…...

计算机毕业设计 | SpringBoot大型旅游网站 旅行后台管理系统(附源码)
1, 概述 1.1 项目背景 随着互联网技术的快速发展和普及,旅游行业逐渐转向线上,越来越多的游客选择在线预订旅游产品。传统的线下旅行社模式已不能满足市场需求,因此,开发一个高效、便捷的旅游网站成为行业的迫切需求…...

蓝桥杯----凑算式
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 比如: 68/3952/714 就是一种解法, 53/1972/486 是另一种解法. 这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。 代码 public class _03凑算式 {static int a[] {1,2,3…...

JCTC | 利用几何深度学习对蛋白质-配体结合pose进行等变灵活建模
Overview 该论文解决了药物开发中蛋白质-配体复合结构灵活建模的挑战。作者提出了一种名为FlexPose的新型深度学习框架,它可以直接对复杂结构进行建模,而不需要传统的采样和评分策略。 该模型结合了标量-向量双特征表示和 SE(3)等变网络设计来处理动态结…...
执行 terraform init 命令时 timeout 的解决方法
terrafrom 是一款常用来实现 IaC(基础设施即代码)的工具。通常的第一个命令往往是 terrafrom init。在执行此命令时,terrafrom 会根据已经配置好的 provdier 信息去下载安装对应云厂商的 provider。比如下面是一个腾讯云的 providerÿ…...
Docker Arthas 实战指南
Arthas 是一款强大的 Java 诊断和调试工具,它能够在生产环境中实时诊断 Java 应用,提供强大的调试功能,帮助开发者和运维人员解决各种 Java 应用的性能问题和调试挑战。本指南将介绍如何在 Docker 环境中使用 Arthas 进行实战。 官方文档 GitHub地址 …...
freertos 源码分析四 任务创建的简单分析
任务创建xTaskCreate 为TCB和TCB栈分配空间, 初始化,加入就绪任务链表 #if ( configSUPPORT_DYNAMIC_ALLOCATION 1 )BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,const char * const pcName,const configSTACK_DEPTH_TYPE usStackDepth,void *…...

二叉树的锯齿形遍历,力扣
目录 题目: 我们直接看题解吧: 快速理解解题思路小建议: 解题方法: 相似题目对比分析: 解题分析: 解题思路: 补充说明: 思路优化: 代码实现(层序遍历倒序): 题…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...