当前位置: 首页 > news >正文

IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等

Quarkus框架学习的第一部分,请访问:

IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等

五、docker-compose容器编排

1、创建编排文件

    cd quarkus-helloworldvi docker-compose.yml

docker-compose.yml内容如下:

# yaml 配置实例
version: '3'
services:quarkus-hello-world:image: quarkus/code-with-quarkus:latest # docker中已存在的镜像名+版本名ports:- "8080:8080"    # 主机Port: 容器暴露Portenvironment:TZ: Asia/Shanghai  deploy:replicas: 2update_config:parallelism: 2delay: 1srestart_policy:condition: on-failurevolumes:logvolume01: {}

2 docker-compose启动(单实例):

cd quarkus-helloworld
docker-compose up -d

如果启动有问题(端口占用等)则可停止(会杀死容器实例)

docker-compose down

在这里插入图片描述

3、 docker-compose启动(多实例,弹性伸缩、负载均衡):

docker-compose.yml 文件内容调整为:

# yaml 配置实例
version: '3'
services:quarkus-hello-world:image: registry.cn-hangzhou.aliyuncs.com/lizhou828/code-with-quarkus:1.0.0-SNAPSHOT # docker中已存在的镜像名+版本名ports:- "8080" #  将容器内部的多个端口映射到宿主机的端口上restart: alwaysenvironment:TZ: Asia/Shanghainginx:image: nginx:latestvolumes:- type: bindsource: /run/desktop/mnt/host/d/xxxx/quarkus-helloworld/nginx.conf  # /run/desktop/mnt/host/ 前缀来表示 WSL 中访问 Windows 主机文件系统的路径映射  /d/xxxx/quarkus-helloworld/nginx.conf 是windows文件路径在linux系统的表示方式target: /etc/nginx/nginx.conf  # 容器中的路径depends_on:- quarkus-hello-worldports:- "81:81"volumes:logvolume01: {}

新增 nginx.conf文件

cd quarkus-helloworld
vi nginx.conf

nginx.conf 文件内容如下:

user  nginx;
events {worker_connections   1000;
}
http {server {listen 81;location / {proxy_pass http://quarkus-hello-world:8080;}}
}

执行启动命令(2个实例):

docker-compose up  -d --scale quarkus-hello-world=2

在这里插入图片描述
在这里插入图片描述

六、压测与调优

1、启动参数未加 任何 参数,且docker-compose.yaml未限制CPU与内存资源 情况下:

在不停的访问 http://localhost:9000/hello/testData 接口时,内存占用情况从启动时的21M一直升到50M(单实例):

在这里插入图片描述

2、启动增加参数 -Xmx32m 参数,且 docker-compose.yaml限制了CPU与内存资源 情况下(两个实例,1个并发,测试接口访问10000次):

使用工具压测 http://localhost:81/hello/testData 接口时,测试访问10000+次,内存占用情况非常平稳:

在这里插入图片描述

3、启动增加参数 -Xmx32m 参数,且 docker-compose.yaml限制了CPU与内存资源 情况下(10个实例、1000个并发):

使用工具压测 http://localhost:81/hello/testData 接口时,启动10个实例、1000个并发,内存占用情况也非常平稳(在预热期间,CPU在短时间内有个峰值):第一轮测试情况:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

第二轮测试情况:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、参考文档

7.1、官方文档

quarkus最新指南

quarkus-quickstarts

Quarkus实战:专为Kubernetes而优化的Java解决方案.pdf

quarkus-quickstarts

7.2、开发、部署、调试

日志文件的日志是正常,但控制台打印日志中文乱码的问题

IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等

quarkus实战之四:远程热部署

7.3、Web层

Quarkus的JAX-RS采用Resteasy的实现,可以实现各类Web操作:上传、下载、导入、导出等
Resteasy官方文档

Related guide section…

quarkus数据库篇之三:单应用同时操作多个数据库(有链接要改)

quarkus+saas 多租户动态数据源切换实现简单完美

7.4、持久层ORM

hibernate-orm-panache 单表操作 的 官方文档

JPA SQL 查询、结果集映射(@NamedNativeQuery、@ColumnResult注解说明)

JPA EntityManager采用原生SQL语句执行后,返回LIst自定义对象的方法

hibernate使用createNativeQuery做原始的字段映射处理

EntityManager使用原生查询createNativeQuery并把值映射到自定义实体

JPA Repository: 自定义SQL的2种方法

JPA原生SQL(单表自定义SQL)分页查询逻辑

完美的 jpa 多表 原生sql 分页查询
JPA使用原生SQL实现分页查询、排序

DB操作 Hibernate Panache

Quarkus使用了Panache来简化数据库操作

在quarkus上使用panache执行自定义JPQL查询

Quarkus - Using MyBatis

hibernate-orm#multitenancy

quarkus+saas 多租户动态数据源切换实现简单完美

quarkus-mybatis

quarkus-mybatis-plus

7.5、原生应用

quarkus官方关于原生应用的提示

原生包中使用反射,GraalVM 提供了一些解决方案

GraalVM如何支持原生包中的反射、JNI、proxy?

Graalvm构建原生镜像时,如何嵌入配置文件(静态文件、反射、动态代理、序列化等)

quarkus云原生构建的配置,官方文档

编写quarkus原生应用程序的提示

在云原生镜像中如何自动识别反射、动态代理、序列化等、静态资源、JNI、URL协议等所用到的类和方法的说明

quarkus原生应用,一直刷接口,内存一直在升高?

quarkus原生应用,一直刷接口,内存从21M上升到50M,内存没有回收?

解决方式一:启动命令增加参数:   -Xmx64m解决方式二:
构建原生镜像时,添加参数: -Dquarkus.native.native-image-xmx=64M

https://docs.redhat.com/en/documentation/red_hat_build_of_quarkus/2.13/html-single/compiling_your_quarkus_applications_to_native_executables/index#proc_native-memory-configuration_quarkus-building-native-executable

7.6、容器化

docker compose 命令自定义参数 docker-compose使用

谁说docker-compose不能水平扩展容器、服务多实例?

Docker-desktop启用k8s挂载hostpath类型的pv时挂载不到windows磁盘的问题

7.7、单元测试

Test a Quarkus application with Junit5, Mockito and H2 Database

quarkus-testing-restassured

REST Assured 实践:断言实现

h2database

7.8、RBAC 基于角色的权限访问控制

Quarkus中基于角色的权限访问控制教程

7.9、quarkus 微服务( rest-api)

quarkus-microservice

Quarkus集成Dubbo Rpc远程通讯框架(8)

Quarkus集成Dubbo框架扩展开源了(23)

quarkus-dubbo-rpc

Dubbo 一款云原生微服务开发框架 官网

How quarkus/helidon/micronaut support Apache Dubbo Component ?

7.10、quarkus的扩展(二方包、三方包)

quarkus编写您自己的扩展

quarkus-building-my-first-extension

quarkus编写扩展的常见问题

quarkus官方依赖的源码库 Quarkiverse Hub

quarkus框架的所有配置项

7.11、国内博主专栏

程序员欣宸的博客 CSDN专栏 java 云原生

程序员欣宸的博客 知乎专栏 quarkus

kl博主 在腾讯云开发者社区的专栏 quarkus

CSDN博客专家程序员欣宸的github,这里有六百多篇原创文章的详细分类和汇总,以及对应的源码,内容涉及Java、Docker、Kubernetes、DevOPS等方面

软件开发记录—是我冒饭了

quarkus框架开发的个人博客项目

八、编码注意事项

明确调用自己类的实例方法(this),还是调用父类的方法( super) 
子类通过super调用了父类的方法, 父类里面的该方法内部不能再有调用链,否则报错
quarkus框架中,尽量避免使用 this 调用其他方法,而是通过 静态方法 或 工具类 来实现逻辑。也尽可能少使用:动态代理、反射等特性
hibernate-orm 执行原生SQL时,映射结果集的类MnItemVo 会被反射调用构造器,如果需要打原生包运行本应用的话,MnItemVo类必须要大打上@RegisterForReflection 注解
hibernate-orm 执行原生SQL时,要映射的结果集的类,每个字段的类型必须准确,否则报错 : argument type mismatch ,或者使用project() 投影 VO类

九 、spring框架的对比

1. 代理类生成机制的不同

   Spring 的代理机制默认使用 JDK 动态代理或 CGLIB:Spring 使用 JDK 动态代理(接口代理)或 CGLIB(基于子类的字节码生成)。AOP 和代理行为透明:Spring 会尽可能保留类的原始逻辑,super 调用通常不会被代理拦截,因为 Spring 的代理层对父类方法并没有特殊处理。Quarkus 的代理机制基于字节码增强:Quarkus 不使用传统的动态代理(如 JDK 或 CGLIB)。取而代之,Quarkus 在构建时通过字节码增强(Bytecode Enhancement)生成代理类。代理类替换原始类:Quarkus 的代理机制更偏向运行时性能优化,使用的是增强后的类作为代理。增强后的类可能不会直接调用原始父类的逻辑,而是将方法调用委托给特定的拦截器。导致问题 :在 Quarkus 中,super 的调用通常会绕过代理类的增强逻辑。如果代理类对父类方法有特殊的增强逻辑(例如注解解析、事务管理等),直接调用 super 会导致增强逻辑无法生效。这与 Spring 的行为不同,因为 Spring 的代理机制通常不会破坏方法调用链。

2. CDI 和 AOP 实现的差异

   Spring 的 AOPSpring 的 AOP 基于 AspectJ 或代理机制,支持拦截方法调用,包括子类方法调用。如果子类调用父类的 super 方法,Spring 不会主动拦截,因为代理通常只针对接口或类的公开方法。Quarkus 的 CDIQuarkus 使用的是 Jakarta CDI(Context and Dependency Injection)的实现,它更加严格地依赖注解元数据和代理类增强。父类方法在 Quarkus 的代理中可能不会自动包含注解元数据(如 @Path、@Transactional 等)。因此,当子类调用 super 方法时,代理无法处理注解解析,导致 NullPointerExceptionQuarkus 的 CDI 机制支持懒加载,这意味着某些方法调用可能会被代理类拦截,从而导致方法调用链被破坏。Quarkus 在构建时会对字节码进行增强,以优化性能和减少内存占用。这种增强可能会影响类的继承结构,导致父类方法调用出现问题。

3. 生命周期和上下文的处理差异

   Spring 的 Bean 生命周期Spring 的 Bean 生命周期在运行时动态管理,Spring 的代理类是在运行时加载和初始化时生成的。因为代理的目标是增强现有的 Bean,父类方法调用通常不会受到代理逻辑的影响。Quarkus 的 Bean 生命周期Quarkus 的 Bean 生命周期通过构建时分析生成字节码进行优化,代理类和增强逻辑在编译时就已经被固定。如果子类调用父类的 super 方法时,增强逻辑或注解处理需要运行时动态解析,Quarkus 可能无法支持这种行为,因为代理类与父类的注解处理是分离的。

十、常见的第三方依赖的扩展包

已有的扩展:redis、kafka、mongoDB、ES、microsoft-server-sql、quarkus-scheduler、itext、zookeeper、flyway、hibernate、JDBC没有的扩展:nacos、aliyun-sdk-oss、xxl-job

相关文章:

IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等

Quarkus框架学习的第一部分,请访问: IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等 五、docker-compose容器编排 1、创建编排文件 cd quarkus-helloworldvi docker-compose.ymldocker-compose.yml内容如下: # yaml 配置实例 ver…...

vue+django+LSTM微博舆情分析系统 | 深度学习 | 食品安全分析

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 编号: D031 LSTM 架构:vuedjangoLSTMMySQL 功能: 微博信息爬取、情感分析、基于负面消极内容舆情分析…...

CSS初识

CSS能够对⽹⻚中元素位置的排版进⾏像素级精确控制,实现美化⻚⾯的效果.能够做到⻚⾯的样式和结构分离。 可以理解给页面化妆,美化排版。 基本语法规范 选择器{⼀条/N条声明} 选择器决定针对谁修改(找谁) 声明决定修改啥(⼲啥) 声明的属性是键值对&#xff0c…...

Kafka 主题设计与数据接入机制

一、前言:万物皆流,Kafka 是入口 在构建实时数仓时,Kafka 既是 数据流动的起点,也是后续流处理系统(如 Flink)赖以为生的数据源。 但“消息进来了” ≠ “你就能处理好了”——不合理的 Topic 设计、接入方…...

文件系统常见函数

write系统调用 #include <unistd.h> ssize_t write(int fd, const void *buf, size_t count); 参数说明 fd 文件描述符&#xff0c;指向已打开的文件或设备&#xff08;如标准输出 1、文件句柄等 buf 指向待写入数据的缓冲区指针&#xff0c;支持任意数据类型&#xf…...

深入理解 G1 GC:已记忆集合(RSet)与收集集合(CSet)详解

已记忆集合&#xff08;RSet&#xff09;与收集集合&#xff08;CSet&#xff09;详解 深入理解 G1 GC&#xff1a;已记忆集合&#xff08;RSet&#xff09;与收集集合&#xff08;CSet&#xff09;详解一、 引言&#xff1a;G1 GC 的基石二、 已记忆集合 (RSet)&#xff1a;跟…...

Android Cordova 开发 - Cordova 解读初始化项目(index.html meta、Cordova.js、config.xml)

一、index.html meta 1、Content-Security-Policy &#xff08;1&#xff09;基本介绍 <meta http-equiv"Content-Security-Policy" content"default-src self data: https://ssl.gstatic.com unsafe-eval; style-src self unsafe-inline; media-src *; i…...

uv run 都做了什么?

uv run 都做了什么&#xff1f; uv run <命令> [参数...] 的主要作用是&#xff1a;在一个由 uv 管理或发现的 Python 虚拟环境中&#xff0c;执行你指定的 <命令>。它会临时配置一个子进程的环境&#xff0c;使其表现得如同该虚拟环境已经被激活一样。这意味着&am…...

Maven 依赖坐标与BOM统一管理

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

UV: Python包和项目管理器(从入门到不放弃教程)

目录 UV: Python包和项目管理器&#xff08;从入门到不放弃教程&#xff09;1. 为什么用uv&#xff0c;而不是conda或者pip2. 安装uv&#xff08;Windows&#xff09;2.1 powershell下载2.2 winget下载2.3 直接下载安装包 3. uv教程3.1 创建虚拟环境 (uv venv) 4. uvx5. 此pip非…...

32单片机——GPIO的工作模式

1、GPIO GPIO&#xff08;General Purpose Input Output&#xff0c;通用输入输出端口&#xff09;是控制或者采集外部器件的信息的外设&#xff0c;即负责输入输出。它按组分配&#xff0c;每组16个IO口&#xff0c;组数视芯片而定。STM32F103ZET6芯片是144脚的芯片&#xff0…...

Science Robotics 新型层级化架构实现250个机器人智能组队,“单点故障”系统仍可稳定运行

近期&#xff0c;比利时布鲁塞尔自由大学博士生朱炜煦与所在团队提出了一种创新的机器人群体架构——“自组织神经系统”&#xff08;SoNS&#xff0c;Self-organizing Nervous System&#xff09;。 它通过模仿自然界中的生物神经系统的组织原理&#xff0c;为机器人群体建立了…...

【HFP】蓝牙HFP协议来电处理机制解析

目录 一、协议概述与技术背景 1.1 HFP协议演进 1.2 核心角色定义 1.3 关键技术指标 二、来电接入的核心交互流程 2.1 基础流程概述&#xff1a;AG 的 RING 通知机制 2.2 HF 的响应&#xff1a;本地提醒与信令交互 三、带内铃声&#xff08;In-Band Ring Tone&#xff0…...

03-谷粒商城笔记

一个插件的install和生命周期的报错是不一样的 Maven找不到ojdbc6和sqljdbc4依赖包 这时候我找到了jar包&#xff0c;然后我就先找到一个jar安装到了本地仓库。 在终端上进行命令了&#xff1a; mvn install:install-file -DfileD:\ojdbc6-11.2.0.4.jar -DgroupIdcom.oracle …...

PHP 反序列化CLI 框架类PHPGGC 生成器TPYiiLaravel 等利用

# 反序列化链项目 -PHPGGC&NotSoSecure -NotSoSecure https://github.com/NotSoSecure/SerializedPayloadGenerator 为了利用反序列化漏洞&#xff0c;需要设置不同的工具&#xff0c;如 YSoSerial(Java) 、 YSoSerial.NET 、 PHPGGC 和它的先决条件。 Deserializati…...

LeetCode热题100——283. 移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出:…...

C++入门小馆: 探寻vector类

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…...

力扣hot100_链表(3)_python版本

一、25. K 个一组翻转链表 1.1、206. 反转链表 py代码 class ListNode:def __init__(self, val0, next node):self.val valself.next next class Solution:def reverseList(self, head):pre Nonecur headwhile cur:next cur.nextcur.next prepre curcur nextreturn p…...

Lua 第9部分 闭包

在 Lua 语言中&#xff0c;函数是严格遵循词法定界的第一类值。 “第一类值”意味着 Lua 语言中的函数与其他常见类型的值&#xff08;例如数值和字符串&#xff09;具有同等权限&#xff1a; 一个程序可以将某个函数保存到变量中&#xff08;全局变量和局部变量均可&a…...

【Linux】冯诺依曼体系结构及操作系统架构图的具体剖析

目录 一、冯诺依曼体系结构 1、结构图 2、结构图介绍&#xff1a; 3、冯诺依曼体系的数据流动介绍 4、为什么在该体系结构中要存在内存&#xff1f; 二、操作系统架构图介绍 1、操作系统架构图 2、解析操作系统架构图 3、为什么要有操作系统&#xff1f; 前些天发现了一…...

解析虚拟机与Docker容器化服务的本质差异及Docker核心价值

解析虚拟机与Docker容器化服务的本质差异及Docker核心价值 1.1 硬件虚拟化与操作系统级虚拟化 虚拟机&#xff08;VM&#xff09;基于硬件级虚拟化技术&#xff08;Hypervisor&#xff09;&#xff0c;通过模拟完整硬件栈&#xff08;CPU、内存、存储、网络&#xff09;创建独…...

FreeRTOS深度解析:队列集(Queue Sets)的原理与应用

FreeRTOS深度解析&#xff1a;队列集&#xff08;Queue Sets&#xff09;的原理与应用 什么是队列集&#xff1f; 在FreeRTOS中&#xff0c;队列集&#xff08;Queue Sets&#xff0c;英文名xQueueSet&#xff09;是一种强大的数据结构&#xff0c;用于高效管理多个队列。它的…...

java将pdf转换成word

1、jar包准备 在项目中新增lib目录&#xff0c;并将如下两个文件放入lib目录下 aspose-words-15.8.0-jdk16.jar aspose-pdf-22.9.jar 2、pom.xml配置 <dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId><versi…...

网络原理 - 6

目录 4. 滑动窗口 滑动窗口出现丢包 情况一&#xff1a;数据报已经抵达&#xff0c;ACK 被丢了​编辑 情况二&#xff1a;数据报直接就丢了 5. 流量控制 完&#xff01; 4. 滑动窗口 这个滑动窗口是 TCP 中非常有特点的机制。 我们知道&#xff0c;TCP 是通过确认应答&…...

【Linux网络】构建类似XShell功能的TCP服务器

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

Spring AI - Redis缓存对话

先看效果 对话过程被缓存到了Redis 中。 原理 在上一节我们快速入门了SpringAI&#xff0c;具体文章请查看&#xff1a;快速入门Spring AI 创建 ChatClient 的代码如下&#xff1a; this.chatClient ChatClient.builder(chatModel).defaultSystem(DEFAULT_PROMPT).defaultAd…...

rk3588 驱动开发(二)第四章嵌入式 Linux LED 驱动开发实验

4.1 Linux 下 LED 灯驱动原理 Linux 下的任何外设驱动&#xff0c;最终都是要配置相应的硬件寄存器。所以本章的 LED 灯驱动 最终也是对 RK3588 的 IO 口进行配置&#xff0c;与裸机实验不同的是&#xff0c;在 Linux 下编写驱动要符合 Linux 的驱动框架。开发板上的 LED 连接…...

第49讲:AI驱动的农业碳汇估算与生态价值评估 —— 打造更“绿”的智慧农业未来

目录 🌍 一、农业碳汇:我们为什么要关心它? 🤖 二、AI是如何介入农业碳汇评估的? 🛠 三、案例实战:AI估算区域农田碳汇储量 📍 场景设定: 📊 数据来源: 🔁 处理流程: 📈 四、生态价值评估:从碳储量到生态效益 🧭 五、平台与工具推荐 💬 六、…...

springmvc入门案例

目录 前言 springmvc概述 springmvc入门案例&#xff08;使用配置类替代原本的web.xml) 第一步、创建一个web工程 第二步、引入相应的依赖&#xff08;servlet-api、spring-webmvc、&#xff09; 第三步、编写 SpringMVC配置类&#xff0c;并开启包扫描功能 第四步、编写…...

Node.js学习

概述 Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境&#xff0c;允许在服务器端运行 JavaScript 代码。它采用事件驱动和非阻塞 I/O 模型&#xff0c;适合构建高性能、可扩展的网络应用&#xff0c;尤其擅长处理实时应用和大规模数据密集型场景 背景 JavaScri…...

SQL注入漏洞中会使用到的函数

目录 一、信息获取函数 1. 通用函数 2. 元数据查询&#xff08;INFORMATION_SCHEMA&#xff09; 二、字符串操作函数 1. 字符串连接 2. 字符串截取 3. 编码/解码 三、报错注入专用函数 1. MySQL 2. SQL Server 3. PostgreSQL 四、时间盲注函数 1. 通用延迟 2. 计…...

MIT IDSS深度解析:跨学科融合与系统科学实践

麻省理工学院的IDSS(Institute for Data, Systems, and Society, IDSS)是一个致力于通过先进分析方法推动教育与研究的前沿机构。它将工程学、信息科学和数据科学的方法与社会科学的分析方法相结合,以应对复杂的社会挑战。 MIT IDSS 建立在统计学、计算机科学和特定应用领域…...

重塑智慧出行新生态,德赛西威全新战略愿景发布

4月22日&#xff0c;上海车展开幕前夕&#xff0c;德赛西威以“智新境&#xff0c;向远大”为主题&#xff0c;正式对外发布全新发展战略及使命、愿景&#xff1b;同时&#xff0c;代表未来AI出行趋势的智慧出行解决方案Smart Solution 3.0重磅亮相。 一、把握变革节点 创领产…...

全面解析 classification_report:评估分类模型性能的利器

解读 classification_report 的使用&#xff1a;评估分类模型性能的关键工具 在机器学习中&#xff0c;分类任务是最常见的应用场景之一。无论是垃圾邮件过滤、图像识别还是情感分析&#xff0c;分类模型的性能评估都是至关重要的一步。而 classification_report 是 Scikit-le…...

Qt案例 使用QFtpServerLib开源库实现Qt软件搭建FTP服务器,使用QFTP模块访问FTP服务器

本以为搭建和访问FTP服务器的功能已经是被淘汰的技术了&#xff0c;只会在学习新技术的时候才会了解学习学习&#xff0c;WinFrom版本&#xff0c;和windows Api版本访问FTP服务器的功能示例也都写过。没想到这次会在项目中再次遇到&#xff0c; 这里记录下使用Qt开源库QFtpSer…...

图像后处理记录

图像后处理记录 ocr后处理记录 opencv裁剪 编译命令 cmake -S . -B build-x64 -DBUILD_LIST"core,imgproc,imgcodecs,highgui" -DBUILD_SHARED_LIBSOFF -DBUILD_opencv_appsOFF -DBUILD_opencv_jsOFF -DBUILD_ANDROID_PROJECTSOFF -DBUILD_ANDROID_EXAMPLESOFF -…...

解决element中的el-anchor链接被作为路由跳转导致页面404

解决element中的el-anchor链接被作为路由跳转导致页面404 问题&#xff1a; 在使用elementPlus时&#xff0c;el-anchor-link中的href被识别为路由进行跳转&#xff0c;导致不能正常跳转到锚点&#xff0c;且页面显示404。 解决&#xff1a;自定义方法解决 <!--添加hand…...

Mapreduce中maven打包

MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff08;例如&#xff1a;jar包&#xff09;&#xff0c;并发运行在…...

C++初阶——string的使用(下)

C初阶——string的使用&#xff08;下&#xff09; 一、string类对象的容量操作 对于string的容量操作&#xff0c;我们可以通过顺序表来理解&#xff0c;顺序表是通过动态数组来实现的&#xff0c;在数据结构专栏的第一篇就是顺序表的详细讲解&#xff0c;链接如下&#xff…...

AIGC vs 人类创作者:是竞争还是协作?

AIGC vs 人类创作者&#xff1a;是竞争还是协作&#xff1f; 随着人工智能技术的飞速发展&#xff0c;特别是生成式AI&#xff08;AIGC, AI-Generated Content&#xff09;的崛起&#xff0c;越来越多的领域开始出现AI的身影。从文本创作、图像生成到音乐制作&#xff0c;AIGC…...

Stable Baselines3 结合 gym 训练 CartPole 倒立摆

视频讲解&#xff1a; Stable Baselines3 结合 gym 训练 CartPole 倒立摆 今天介绍下stable_baselines3和gym&#xff0c;可以方便实现DL的实现&#xff0c;应用在机械臂catch、reach等场景 测试代码仓库&#xff1a;https://github.com/LitchiCheng/DRL-learning.git https:…...

ctfshow web8

前言 学习内容&#xff1a;简单的盲注脚本的书写 web8 这个题目题目手动注入很麻烦 主要是他过滤了 union 空格和 过滤了union的解决方法 1、使用盲注(报错注入和盲注) 2、使用时间盲注 3、堆叠注入 盲注脚本的书写 首先他是有注入点的 然后熟悉requests包的使用 …...

Linux程序地址空间

目录 研究背景 程序地址空间回顾 来段代码感受一下 进程地址空间 Linux2.6内核进程调度队列 一个CPU拥有一个runqueue 优先级 活跃队列&#xff08;只出不进&#xff09; 过期队列&#xff08;只进不出&#xff09; active指针和expired指针 总结 研究背景 Linux内核版本&#…...

破茧成蝶:阿里云应用服务器让传统 J2EE 应用无缝升级 AI 原生时代

丝滑升级拥抱大模型&#xff1a;详解AI时代的应用智能化升级路径 破茧成蝶&#xff1a;阿里云应用服务器让传统 J2EE 应用无缝升级AI原生时代 ——十年代码无需重写&#xff0c;三步开启智能化跃迁 作者&#xff1a;孤弋、孚阳 序幕&#xff1a;一场跨越 20 年的技术对话 在杭…...

游戏引擎学习第240天:将渲染器移至第三层

这节又枯燥又无聊简直了 回顾并为今天的内容做铺垫 昨天我们说到&#xff0c;想对渲染器和平台层的集成方式做一些修改。我们之前简单讲了一下修改的目的&#xff1a;我们希望游戏本身不再直接调用 OpenGL 的渲染代码&#xff0c;而是只生成一组渲染指令缓冲区&#xff0c;然…...

2025.04.23华为机考第三题-300分

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 时空旅行者的最优路径 问题描述 A先生是一名时空旅行者,他可以在不同的时空点之间穿梭。每次从一个时空点跳跃到另一个时空点需要消耗一个时间单位。在每个时空点,都有一些特…...

Kafka 保证多分区的全局顺序性的设计方案和具体实现

Kafka 本身无法直接保证多分区的全局顺序性&#xff0c;因为分区设计旨在并行处理以提升吞吐量。 要实现多分区的顺序性&#xff0c;可尝试通过以下方法在系统层面或业务逻辑上解决&#xff1a; 一、方案设计 单一分区路由&#xff08;还是将消息发送到同一分区&#xff09;&a…...

数据结构初阶:二叉树(四)

概述&#xff1a;本篇博客主要介绍链式结构二叉树的实现。 目录 1.实现链式结构二叉树 1.1 二叉树的头文件&#xff08;tree.h&#xff09; 1.2 创建二叉树 1.3 前中后序遍历 1.3.1 遍历规则 1.3.1.1 前序遍历代码实现 1.3.1.2 中序遍历代码实现 1.3.1.3 后序遍历代…...

华为开发岗暑期实习笔试(2025年4月16日)

刷题小记&#xff1a; 第一题怀疑测试样例不完整&#xff0c;贪心法不应该能够解决该题。第二题使用0-1BFS解决单源最短路径的问题&#xff0c;往往搭配双端队列实现。第三题是运用动态规划解决最大不重叠子区间个数的问题&#xff0c;难点在于满足3重判断规则&#xff0c;所需…...

第一篇:Django简介

第一篇&#xff1a;Django简介 文章目录 第一篇&#xff1a;Django简介一、纯手写一个简易版的web框架1、软件开发架构2、HTTP协议3、简易的socket服务端4、wsgiref模块5、动静态网页6、后端获取当前时间展示到html页面上7、字典数据传给html文件8、数据从数据库中获取的展示到…...