Spring Cloud项目合规性注册之-(单元集成测试报告)
用于合规性注册,本文章仅提供模板
这个大纲涵盖了从单元测试到集成测试,再到自动化和持续集成的全方位测试过程。
一、引言
1. 项目概述
"xxxxxx"是一个先进的数据管理和展示平台,旨在提供高效、可靠的数据服务。该平台通过集成各类xxxxxxx,能够处理和展示大量的相关数据。项目采用微服务架构,基于Spring Cloud进行服务治理,确保了系统的高度可扩展性和灵活性。
2. 测试目标
本测试文档的主要目标是确保"xxxxxxx"项目的各个组件和服务能够稳定、高效地运行。测试重点包括但不限于:
- 单元测试:确保每个独立组件的功能正确性和稳定性。
- 集成测试:确保不同组件和服务间的交互符合预期,整体服务流程无缝衔接。
- 安全性测试:保障数据安全,确保认证和授权机制的有效性。
- 性能测试:评估系统在高负载下的表现,确保响应时间和资源使用处于可接受范围内。
3. 文档范围
本文档将覆盖以下方面:
- 测试环境的搭建和配置。
- 针对项目技术栈(Java8, Spring Boot 2.7, Spring Cloud, 等)的具体测试策略。
- 各类测试(单元测试、集成测试、安全性测试和性能测试)的详细计划和用例。
- 测试结果的记录和分析。
- 风险管理与缺陷跟踪方法。
二、测试环境设置
1. 硬件与软件环境
| 类别 | 描述 | 示例配置 |
|---|---|---|
| 服务器配置 | 选择与生产环境相似的服务器配置,包括CPU、内存和存储空间。 | CPU: 8核, 内存: 16GB, 存储: 1TB SSD |
| 操作系统 | 使用与生产环境相同的操作系统版本。 | Ubuntu 20.04 LTS |
| 网络配置 | 确保测试环境中的网络配置与生产环境保持一致。 | 子网: 192.168.1.0/24, 防火墙开放指定端口 |
2. 软件环境配置
| 软件类型 | 描述 | 示例配置 |
|---|---|---|
| 数据库 | 使用与生产环境相同版本的数据库。 | MySQL 8.0 |
| 开发框架 | 指定项目使用的开发框架版本。 | Spring Boot 2.7, Spring Cloud 2022 |
| 测试工具 | 使用的单元测试和集成测试工具。 | JUnit 5, Mockito, Spring Boot Test |
| 监控工具 | 用于监控应用性能的工具。 | Prometheus, Grafana |
3. 网络和安全配置
| 类别 | 描述 | 示例配置 |
|---|---|---|
| 访问控制 | 测试环境的访问控制机制。 | 限制IP: 仅允许内网IP访问测试环境 |
| 安全协议 | 在测试环境中使用的安全协议。 | HTTPS, TLS 1.3 |
| 数据加密 | 测试数据的加密方式。 | AES加密存储测试数据 |
2. 数据库配置(MySQL)
| 配置项 | 说明 |
|---|---|
| 数据库版本 | 与生产环境相同,如MySQL 8.0。 |
| 数据隔离 | 测试数据库与生产数据库完全隔离,使用独立的实例。 |
| 数据脱敏 | 使用脱敏或模拟数据进行测试,以保护敏感信息。 |
| 备份与恢复 | 定期备份测试数据库,确保在需要时可以快速恢复到特定测试状态。 |
3. 微服务架构组件
| 组件 | 说明 |
|---|---|
| 服务注册与发现 | 使用与生产环境相同的Nacos服务,确保服务发现机制的一致性。 |
| 负载均衡 | 配置Spring Cloud Loadbalancer以测试客户端负载均衡。 |
| 熔断组件 | 使用Sentinel进行熔断机制的测试。 |
| 网关组件 | 使用Spring Cloud Gateway进行网关测试。 |
4. 测试相关工具
| 工具/框架 | 说明 |
|---|---|
| JUnit | 主要用于单元测试。 |
| Mockito | 用于模拟复杂的依赖,如外部服务调用、数据库访问等。 |
| Spring Boot Test | 用于Spring Boot应用的集成测试。 |
| RestAssured/MockMvc | 用于REST API的集成测试。 |
| TestContainers | 用于模拟外部服务和环境,如数据库等。 |
5. 其他组件配置
| 组件 | 说明 |
|---|---|
| 日志管理 | 使用Logback记录测试过程中的日志。 |
| 运行容器 | 使用与生产环境相同的Undertow作为应用服务器。 |
| 分布式事务 | 使用Seata进行分布式事务的测试。 |
| 任务调度 | 配置Quartz和XXL-JOB进行定时任务和调度功能的测试。 |
| 安全框架 | 确保测试环境中的Spring Security和Spring Authorization Server配置正确。 |
三、单元测试
单元测试是确保每个独立模块(如类或方法)的功能正确性的关键步骤。
1. 测试原则与方法
-
测试覆盖率目标:力求至少覆盖80%的代码,重点关注核心业务逻辑。
-
测试独立性:确保每个测试案例可以独立运行,不依赖于外部服务或数据库。
-
重复性和一致性:测试结果应该是可重复的,确保在相同的条件下测试结果一致。
-
测试驱动开发(TDD):在编写实际代码之前先编写测试用例。
2. 单元测试框架(JUnit)
-
框架选择:选择JUnit 5作为单元测试框架,因其广泛应用于Java项目中,且与Spring框架良好集成。
-
测试类结构:为每个主要功能模块创建对应的测试类。例如,用户登录功能对应的测试类为
UserLoginTest。
3. Mock框架(Mockito)
-
使用Mockito:用于模拟复杂的外部依赖,如Web服务和数据库调用。
-
模拟示例:在
UserLoginTest中,模拟数据库调用来验证登录逻辑,而不是使用实际的数据库连接。
4. 测试用例设计
4.1 用户登录
-
正常登录流程:
-
测试方法:
testLoginWithValidCredentials() -
描述:测试使用有效的用户名和密码时应成功登录。
-
预期结果:成功登录并返回用户信息。
-
-
错误凭证处理:
-
测试方法:
testLoginWithInvalidCredentials() -
描述:测试使用无效的用户名或密码时应拒绝登录。
-
预期结果:登录失败并返回错误信息。
-
-
异常处理:
-
测试方法:
testLoginWithDatabaseError() -
描述:模拟数据库访问异常情况下的登录行为。
-
预期结果:登录失败并返回系统异常信息。
-
4.2 用户注册
-
有效注册流程:
-
测试方法:
testRegisterWithValidDetails -
描述:...
-
预期结果:...
-
-
重复邮箱注册:
-
测试方法:
testRegisterWithDuplicateEmail -
描述:...
-
预期结果:...
-
4.3 密码重置
-
有效密码重置请求:
-
测试方法:
testPasswordResetRequestWithValidEmail -
描述:...
-
预期结果:...
-
-
无效邮箱密码重置:
-
测试方法:
testPasswordResetRequestWithInvalidEmail -
描述:...
-
预期结果:...
-
5. 测试结果报告
-
综合概览:提供所有测试的执行总览,包括总测试数、通过数、失败数等。
-
覆盖率报告:使用Jacoco等工具生成代码覆盖率报告。
-
详细测试结果:
测试类 测试方法 结果 描述 UserLoginTest testLoginWithValidCredentials 通过 验证有效凭据的登录 UserLoginTest testLoginWithInvalidCredentials 通过 验证无效凭据的登录 UserRegisterTest testRegisterNewUser 通过 测试新用户注册 UserRegisterTest testRegisterWithExistingEmail 失败 测试已存在邮箱的用户注册 -
缺陷报告:
缺陷ID 描述 影响范围 状态 修复日期 BUG_004 用户名重复注册无提示 用户注册 待修复 无 BUG_010 密码加密逻辑错误 用户登录 已修复 2024-02-28
四、集成测试
集成测试的目标是验证项目中不同模块或服务间的交互是否按预期工作。
1. 集成测试策略
-
测试方法:采用自底向上和自顶向下的方法,确保所有模块在集成后能够正确交互。
-
环境配置:集成测试环境应尽可能模拟生产环境,包括数据库、网络配置等。
2. 测试用例设计
设计用例以涵盖关键交互点,确保服务间交互的正确性和完整性。
2.1 用户登录与会话管理
-
测试用户登录后会话持续性
-
描述:验证用户登录后是否能正确维持会话状态。
-
预期结果:用户在登录后能够访问需要认证的资源。
-
2.2 用户注册与数据库交互
-
测试用户注册信息的数据库写入
-
描述:验证用户注册信息是否能正确写入数据库。
-
预期结果:数据库中正确保存了新注册用户的信息。
-
3. 测试工具和框架
-
Spring Boot Test:利用Spring Boot的测试功能进行集成测试。
-
RestAssured/MockMvc:测试RESTful API的集成。
-
TestContainers:用于数据库和其他外部服务的集成测试。
4. 数据管理和环境模拟
-
测试数据库配置:使用与生产相似的数据库配置,或者使用内存数据库如H2进行测试。
-
服务模拟:使用WireMock等工具模拟外部服务。
5. 测试结果报告
-
综合测试结果:提供对所有集成测试的综合概览。
-
详细测试结果:
测试场景 结果 描述 用户登录与会话管理 通过 验证用户登录后会话持续性 用户注册与数据库交互 通过 测试用户注册信息的数据库写入 -
问题与缺陷报告:记录在集成测试过程中发现的问题及其修复状态。
| 缺陷ID | 描述 | 影响范围 | 状态 | 修复日期 |
|---|---|---|---|---|
| BUG_020 | 会话管理缺陷 | 用户登录 | 待修复 | 无 |
| BUG_025 | 用户注册信息同步延迟 | 用户注册 | 已修复 | 2024-03-05 |
五、安全性测试
安全性测试致力于确保XXXX项目在数据保护、用户认证、权限控制等方面的安全性,防止潜在的安全漏洞和风险。
1. 安全性测试概述
-
目的:验证系统的安全特性,包括防止未授权访问和保护数据免受侵害。
-
范围:涵盖应用层、数据传输层和存储层的安全性。
2. 用户认证和授权测试
-
登录认证流程测试
-
描述:验证登录认证机制的安全性,确保只有有效凭证的用户才能登录。
-
预期结果:无效或错误的用户凭证无法通过认证。
-
-
权限控制测试
-
描述:确保用户根据其权限获取相应的访问权。
-
预期结果:用户只能访问其授权的资源。
-
3. 输入验证和处理
-
SQL注入测试
-
描述:尝试通过输入进行SQL注入,验证系统是否有足够的防御措施。
-
预期结果:系统能有效防止SQL注入攻击。
-
-
跨站脚本(XSS)攻击测试
-
描述:测试系统是否能妥善处理用户输入,以防止XSS攻击。
-
预期结果:系统能有效防止XSS攻击。
-
4. API安全性测试
-
REST API安全性检查
-
描述:测试API的安全性,确保认证、授权和数据传输的安全。
-
预期结果:API接口具有足够的安全措施,如API密钥和访问令牌。
-
-
API限流和防刷测试
-
描述:验证API对请求频率的限制,以防止滥用。
-
预期结果:系统能有效控制API请求的频率。
-
5. 数据加密和传输安全
-
数据传输加密测试
-
描述:确保敏感数据在传输过程中被加密。
-
预期结果:所有敏感数据通过HTTPS或其他安全协议传输。
-
-
敏感数据存储安全性检查
-
描述:检查敏感数据在存储时的安全措施,如加密和访问控制。
-
预期结果:敏感数据在存储时具有充分的保护。
-
6. 安全性扫描和渗透测试
-
安全扫描工具应用
-
使用OWASP ZAP、Nessus等工具进行安全性扫描,识别潜在的安全漏洞。
-
-
渗透测试
-
模拟外部攻击者进行渗透测试,检查系统的整体安全性。
-
7. 测试报告和修复
-
安全测试报告
-
记录发现的安全问题,包括风险级别、影响范围和建议的修复措施。
-
-
问题跟踪和修复
-
确保所有发现的安全问题都被记录并追踪,及时修复以提升系统安全性。
-
六、性能测试
性能测试旨在评估xxx项目在各种压力下的响应能力和稳定性,确保系统能够在高负载和高并发的环境下正常运行。
1. 性能测试概述
- 目的:确保系统的响应时间、吞吐量、资源利用率等满足预定标准。
- 范围:包括服务器的CPU和内存利用率、数据库的响应时间、网络延迟等。
2. 性能测试用例设计
- 基准测试:在标准负载下测试,建立性能基准。
- 负载测试:逐渐增加负载,测试系统在不同负载水平下的表现。
- 压力测试:测试系统在极端负载下的极限性能和稳定性。
- 并发测试:模拟高并发场景,测试系统的处理能力。
3. 性能测试工具选择
- JMeter:用于模拟Web应用的高负载,并进行性能分析。
- Gatling:作为另一种性能测试工具,用于复杂的性能测试场景。
- 资源监控工具:如Prometheus和Grafana,用于实时监控系统资源利用情况。
4. 关键性能指标(KPIs)
- 响应时间:用户请求的平均响应时间。
- 吞吐量:单位时间内系统处理的请求数量。
- 资源利用率:包括CPU、内存和磁盘IO的利用率。
- 错误率:在测试过程中出现错误的比率。
5. 数据收集和分析
- 收集数据:在性能测试过程中收集详细的性能数据。
- 分析结果:分析性能数据,识别瓶颈和潜在的性能问题。
6. 性能优化
- 优化措施:根据性能测试结果,提出性能优化的建议。
- 持续监控:在优化措施实施后,持续监控性能指标,确保优化效果。
7. 测试报告
- 详细报告:提供全面的性能测试报告,包括测试结果、分析和优化建议。
- 图表和图形:使用图表和图形直观展示性能测试结果。
七、自动化和持续集成
自动化和持续集成(CI)对于提高xxxxx项目的开发效率和代码质量至关重要。它们可以帮助团队快速地发现和解决问题,确保软件质量的同时加快发布速度。
1. 自动化测试
- 目的:减少重复性工作,提高测试效率和可靠性。
- 范围:包括单元测试、集成测试、UI测试等。
2. 自动化测试工具
- 单元测试:使用JUnit等工具自动运行所有单元测试。
- 集成测试:使用Selenium、TestNG等工具进行自动化集成测试。
- 性能测试:使用JMeter或Gatling等工具自动执行性能测试。
3. 持续集成流程
- 版本控制系统:使用Git等系统管理代码变更。
- CI工具选择:使用Jenkins、Travis CI、GitLab CI等工具自动化构建和测试过程。
- 构建流水线:设置自动化的构建、测试和反馈流程。
4. 持续集成的最佳实践
- 频繁集成:鼓励开发人员频繁地提交代码至共享仓库。
- 快速反馈:确保开发团队能够迅速收到构建和测试的结果。
- 自动化部署:如果可能,集成自动化部署步骤,以减少人为错误。
5. 代码质量和代码审查
- 静态代码分析:使用SonarQube等工具进行代码质量检查。
- 代码审查流程:实施代码审查,提高代码质量和团队协作。
6. 监控和报告
- 构建状态监控:实时监控CI流程的状态。
- 测试覆盖率报告:生成并审查测试覆盖率报告,确保测试的充分性。
- 错误跟踪:自动化错误的记录和追踪。
7. 持续集成的挑战和解决方案
- 解决冲突:制定清晰的策略来管理和解决代码合并冲突。
- 环境一致性:确保开发、测试和生产环境的一致性。
八、风险管理与缺陷跟踪
有效的风险管理和缺陷跟踪对于确保项目的顺利进行和质量保证至关重要。
1. 风险管理
- 风险识别:定期审查项目进度,识别潜在风险。
- 风险评估:评估风险的可能性和影响,对风险进行分类和优先级排序。
- 缓解策略:对于每个重大风险,制定并实施缓解策略。
- 风险监控:持续监控风险状态,及时调整风险管理计划。
2. 缺陷跟踪流程
- 缺陷记录:在发现缺陷时,详细记录缺陷信息,包括重现步骤、影响范围和严重性。
- 缺陷管理工具:使用如JIRA、Bugzilla等工具进行缺陷管理。
- 定期审查:定期审查未解决的缺陷,确保及时处理。
- 缺陷趋势分析:分析缺陷的趋势和模式,提出改进措施。
九、附录
1. 参考文献
- 提供项目开发和测试过程中参考的文档、书籍、网站链接等。
2. 术语表
- 解释项目、测试文档中使用的专业术语和缩写。
3. 版本记录
- 版本号:文档的版本号。
- 修改日期:文档的修改日期。
- 作者:文档的作者或修改者。
- 修改说明:对文档进行修改的简要说明。
4. 工具和资源列表
- 列出项目和测试过程中使用的所有工具和资源。
5. 测试环境配置
- 详细描述测试环境的配置,包括硬件、软件、网络等。
相关文章:
Spring Cloud项目合规性注册之-(单元集成测试报告)
用于合规性注册,本文章仅提供模板 这个大纲涵盖了从单元测试到集成测试,再到自动化和持续集成的全方位测试过程。 一、引言 1. 项目概述 "xxxxxx"是一个先进的数据管理和展示平台,旨在提供高效、可靠的数据服务。该平台通过集成各…...
IntelliJ IDEA 常用的插件
IntelliJ IDEA有很多常用的插件,这些插件可以扩展IDE的功能,提高开发效率。以下是一些常用的插件: Maven Helper:这是一款分析Maven依赖冲突的插件。在没有此插件时,查看Maven的依赖树和检查依赖包冲突可能需要输入命…...
超详细红黑树的模拟实现
前言 有人说设计出AVL树的的人是个大牛,那写红黑树(RBTree)的人就是天才! 上一篇文章,我们已经学习了AVL树,牛牛个人认为AVL树已经够优秀了,那让我们一起探究一下,为什么红黑树比AV…...
【亚马逊云科技】通过Amazon CloudFront(CDN)快速访问资源
文章目录 前言一、应用场景二、【亚马逊云科技】CloudFront(CDN)的优势三、入门使用总结 前言 前面有篇文章我们介绍了亚马逊云科技的云存储服务。云存储服务主要用于托管资源,而本篇文章要介绍的CDN则是一种对托管资源的快速访问服务&#…...
ES-ES的基本概念
ES的基本概念 一、文档 1.1 文档相关概念 ES是面向文档的,文档是所有可搜索数据的最小单位,可以对比理解为关系型数据库中的一条数据 日志文件中的一条日志信息一本电影的具体信息/一张唱片的详细信息 文档会被序列化成JSON格式保存在ES中 JSON对象由…...
排序算法——快速排序的非递归写法
快速排序的非递归 我们写快速排序的时候,通常用的递归的方法实现快速排序,那么有没有非递归的方法实现快速排序呢?肯定是有的。思想还是一样的,不过非递归是看似是非递归其实还是递归。 思路解释 快速排序的非递归使用的是栈这…...
【论文阅读】基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取
Bubble feature extraction in subcooled flow boiling using AI-based object detection and tracking techniques 基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取 期刊信息:International Journal of Heat and Mass Transfer 2024 级别:EI检…...
RabbitMQ讲解与整合
RabbitMq安装 类型概念 租户 RabbitMQ 中有一个概念叫做多租户,每一个 RabbitMQ 服务器都能创建出许多虚拟的消息服务器,这些虚拟的消息服务器就是我们所说的虚拟主机(virtual host),一般简称为 vhost。 每一个 vhos…...
python 基础知识点(蓝桥杯python科目个人复习计划56)
今日复习内容:做题 例题1:最小的或运算 问题描述:给定整数a,b,求最小的整数x,满足a|x b|x,其中|表示或运算。 输入格式: 第一行包括两个正整数a,b; 输出格式&#…...
【vue】vue中数据双向绑定原理/响应式原理,mvvm,mvc、mvp分别是什么
关于 vue 的原理主要有两个重要内容,分别是 mvvm 数据双向绑定原理,和 响应式原理 MVC(Model-View-Controller): Model(模型):表示应用程序的数据和业务逻辑。View(视图&…...
基于反光柱特征的激光定位算法思路
目录 1. 识别反光柱2. 数据关联2.1 基于几何形状寻找匹配2.2 暴力寻找匹配 3. 位姿估计(最小二乘求解)4. 问题4.1 精度问题4.2 快速旋转时定位较差 1. 识别反光柱 反光柱是特殊材料制成,根据激光雷达对反光材料扫描得到的反射值来提取特征。…...
CSM是什么意思?
CSM(Customer Service Management)是企业客户服务管理的信息化(IT)解决方案架构。本着以客户为中心的管理理念,搭建企业客户服务管理平台,实现企业以客户为中心的管理时代的竞争战略。 CSM的核心是以客户为中心,实现对…...
ES6 面试题
1. const、let 和 var 的区别是什么? 答案: var 声明的变量是函数作用域或全局作用域,而 const 和 let 声明的变量是块级作用域。使用 var 声明的变量可以被重复声明,而 const 和 let 不允许重复声明同一变量。const 声明的变量…...
智能指针(C++)
目录 一、智能指针是什么 二、为什么需要智能指针 三、智能指针的使用和原理 3.1、RALL 3.2 智能指针的原理 3.3、智能指针的分类 3.3.1、auto_ptr 3.3.2、unique_ptr 3.3.3、shared_ptr 3.2.4、weak_ptr 一、智能指针是什么 在c中,动态内存的管理式通过一…...
社区店商业模式探讨:如何创新并持续盈利?
在竞争激烈的商业环境中,社区店要想获得成功并持续盈利,需要不断创新和优化商业模式。 作为一名开鲜奶吧5年的创业者,我将分享一些关于社区店商业模式创新的干货和见解,希望能给想开实体店或创业的朋友们提供有价值的参考。 1、…...
一些可以访问gpt的方式
1、Coze扣子是新一代 AI 大模型智能体开发平台。整合了插件、长短期记忆、工作流、卡片等丰富能力,扣子能帮你低门槛、快速搭建个性化或具备商业价值的智能体,并发布到豆包、飞书等各个平台。https://www.coze.cn/ 2、https://poe.com/ 3、插件阿里…...
springer模板参考文献不显示
Spring期刊模板网站,我的问题是23年12月的版本 https://www.springernature.com/gp/authors/campaigns/latex-author-support/see-where-our-services-will-take-you/18782940 参考文献显示问好,在sn-article.tex文件中,这个sn-mathphys-num…...
【【C语言简单小题学习-1】】
实现九九乘法表 // 输出乘法口诀表 int main() {int i 0;int j 0;for (i 1; i < 9; i){for (j 1; j < i;j)printf("%d*%d%d ", i , j, i*j);printf("\n"); }return 0; }猜数字的游戏设计 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdi…...
mongoDB 优化(1)索引
1、创建复合索引(多字段) db.collection_test1.createIndex({deletedVersion: 1,param: 1,qrYearMonth: 1},{name: "deletedVersion_1_param_1_qrYearMonth_1",background: true} ); 2、新增索引前: 执行查询: mb.r…...
stable diffusion webUI之赛博菩萨【秋葉】——工具包新手安裝与使用教程
stable diffusion webUI之赛博菩萨【秋葉】——工具包新手安裝与使用教程 AI浪潮袭来,还是学习学习为妙赛博菩萨【秋葉】简介——(葉ye,四声,同叶)A绘世启动器.exe(sd-webui-aki-v4.6.x)工具包安…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
自定义线程池1.2
自定义线程池 1.2 1. 简介 上次我们实现了 1.1 版本,将线程池中的线程数量交给使用者决定,并且将线程的创建延迟到任务提交的时候,在本文中我们将对这个版本进行如下的优化: 在新建线程时交给线程一个任务。让线程在某种情况下…...
java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟
众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了,延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp ,边缘服务器拉流推送到云服务器 …...
