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

【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-3-从ES 7.x到8.x的平滑迁移策略

👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路


附录-版本升级指南

  • 3-Elasticsearch 7.x 到 8.x 平滑迁移策略指南
    • 1. 升级必要性分析
      • 1.1 版本特性对比
      • 1.2 兼容性评估矩阵
    • 2. 预升级准备清单
      • 2.1 环境检查表
      • 2.2 数据备份策略
    • 3. 分阶段升级流程
      • 3.1 滚动升级步骤(零停机)
      • 3.2 关键操作指令
    • 4. 升级后验证体系
      • 4.1 核心功能验证表
      • 4.2 性能基准对比
    • 5. 回退方案设计
      • 5.1 快速回退流程
      • 5.2 回退检查清单
    • 6. 常见问题解决方案
      • 6.1 典型问题处理矩阵
      • 6.2 关键日志分析
      • Elasticsearch 常用结构化查询参数

3-Elasticsearch 7.x 到 8.x 平滑迁移策略指南

  • Elasticsearch版本升级核心流程与关键节点
开始
环境准备
兼容性检查
数据备份
集群预热
滚动升级
配置调整
功能验证
性能测试
监控与优化
文档更新
结束
插件兼容性检查
查询DSL验证
配置参数审计
快照备份
数据校验
停止节点服务
升级二进制文件
启动节点并验证
循环所有节点
移除弃用配置
启用新特性
核心API测试
集群健康检查
Rally基准测试
压力测试工具
监控集群状态
调整JVM参数
优化分片分配
  • 风险控制矩阵:
风险点预防措施应急方案
插件不兼容提前测试所有插件回滚到7.x并隔离问题插件
数据损坏双重备份+校验从快照恢复数据
性能下降预留30%资源+预热调整JVM参数+分片分配策略
配置错误版本差异文档对照使用默认配置重新初始化
  • 升级验证清单
      1. 集群健康状态(GET /_cluster/health
      1. 节点版本一致性(GET /_nodes/stats
      1. 索引元数据校验(GET /_cat/indices
      1. 搜索功能测试(GET /_search
      1. 写入性能验证(POST /_bulk
      1. 安全插件验证(GET /_security/_authenticate
  • 建议在升级过程中使用以下监控指标:
{// 定义一个包含多个监控指标的数组,用于在 Elasticsearch 集群升级过程中对集群的运行状态进行监控"metrics": [// 监控 JVM 堆内存的使用百分比// 该指标反映了 Elasticsearch 节点上 Java 虚拟机堆内存的使用情况// 过高的堆内存使用百分比可能会导致频繁的垃圾回收,甚至可能引发内存溢出错误,影响集群的性能和稳定性// 一般建议将该指标控制在 70% - 80% 以下,以便为系统预留足够的内存空间"jvm.mem.heap_used_percent",// 监控集群中正在初始化的分片数量// 在集群升级、节点重启或数据重新分配等操作过程中,会有分片进入初始化状态// 过多的初始化分片可能会导致集群资源被大量占用,影响集群的响应速度和可用性// 通过监控该指标,可以及时发现分片初始化过程中是否存在异常情况"cluster.routing.allocation.initializing_shards",// 监控索引搜索操作的执行时间(以毫秒为单位)// 该指标反映了搜索查询在 Elasticsearch 中的执行效率// 搜索查询时间过长可能意味着查询语句复杂、索引结构不合理或集群资源不足等问题// 对该指标进行监控有助于及时发现搜索性能瓶颈,并采取相应的优化措施"indices.search.query_time_in_millis",// 监控搜索线程池的活跃线程数量// 搜索线程池用于处理搜索请求,活跃线程数量反映了当前正在处理搜索请求的线程数量// 如果活跃线程数量持续过高,可能表示搜索请求过于频繁,导致线程池资源耗尽,影响搜索性能// 监控该指标可以帮助我们了解搜索线程池的使用情况,合理调整线程池配置或优化搜索请求负载"thread_pool.search.active"]
}

1. 升级必要性分析

1.1 版本特性对比

功能模块7.x 版本能力8.x 版本增强业务影响评级
安全体系TLS可选TLS默认启用 + 新密码套件⭐⭐⭐⭐⭐
搜索性能传统BM25支持ANN向量搜索⭐⭐⭐⭐
存储效率标准压缩默认ZSTD压缩(提升20%)⭐⭐⭐⭐
运维监控X-Pack基础监控集成APM+机器学习告警⭐⭐⭐
  • 什么是 ES ANN 向量搜索
    • 在 Elasticsearch(ES)中,ANN(Approximate Nearest Neighbor,近似最近邻)向量搜索是一种用于高效查找与给定查询向量最相似的向量数据的技术。在传统的基于关键词的搜索无法满足复杂的语义搜索需求时,向量搜索便发挥出重要作用。例如在图像、音频、文本等领域,通过将这些数据转换为向量表示,利用向量之间的相似度来进行搜索,能实现更精准、更智能的搜索结果
    • ANN 向量搜索的应用场景
      • 图像搜索。用户上传一张图片,系统通过提取图片的向量特征,在 Elasticsearch 中搜索与之相似的图片。
      • 文本语义搜索。输入一段文本,系统可以找到语义相似的其他文本,而不仅仅是关键词匹配的文本。
      • 推荐系统。根据用户的历史行为或偏好生成向量,在商品、文章等数据的向量库中搜索相似的向量,为用户提供个性化推荐。

1.2 兼容性评估矩阵

组件7.17兼容性8.0兼容性风险级别处理方案
JDK版本8/1117+提前升级JDK
Logstash插件部分兼容需7.17+插件版本升级
Kibana仪表盘兼容需重建导出/导入NDJSON
自定义分词器需要验证需要验证测试验证+备用方案
  • NDJSON(Newline-Delimited JSON)
    • 一种轻量级的数据交换格式,由多行独立的 JSON 对象组成,每行一个完整的 JSON 文档,通过换行符(\n)分隔。这种格式特别适合处理日志、流式数据或需要批量处理的结构化数据
  • NDJSON 核心特性
    • 轻量性:无需复杂的解析器,逐行读取即可处理。
    • 流式处理:支持实时数据流处理,适合日志收集、消息队列等场景。
    • 扩展性:每行独立,便于分布式处理。
    • 兼容性:可通过工具轻松转换为 CSV、XML 等格式。
  • NDJSON 在 Elasticsearch 中的应用
    • 批量数据导入。通过 Elasticsearch 的 Bulk API 导入 NDJSON 格式数据:
      curl -X POST "localhost:9200/_bulk" -H "Content-Type: application/x-ndjson" --data-binary @data.ndjson
      
    • 日志处理。在 Logstash 中使用 json_lines codec 处理 NDJSON 日志:
      input {file {path => "/var/log/app.log"codec => json_lines}
      }output {elasticsearch {hosts => ["localhost:9200"]index => "logs-%{+YYYY.MM.dd}"}
      }
      
    • 注意事项
      • 特殊字符处理:确保每行是有效的 JSON,注意转义换行符 \n 和反斜杠 \\
      • 数据完整性:避免在传输过程中丢失换行符,导致解析错误。
      • 性能优化对于大规模数据,建议分批次处理,避免内存溢出。
    • 与其他格式对比
      格式优点缺点适用场景
      NDJSON轻量、流式处理不支持嵌套结构日志、实时数据流
      JSON结构灵活解析复杂、不适合流式处理API 响应、配置文件
      CSV易于表格处理类型不明确数据分析、报表生成

2. 预升级准备清单

2.1 环境检查表

# 检查集群健康状态
GET _cluster/health?filter_path=status,*_active_shards# 验证索引兼容性
GET _index_template?filter_path=index_templates.name,index_templates.index_template.template# 检查废弃API使用情况
GET _nodes/usage?filter_path=.*.deprecations

2.2 数据备份策略

// 向 _snapshot/backup_repo/pre_upgrade_bk_2023 端点发送 PUT 请求,目的是在名为 backup_repo 的快照仓库中创建一个名为 pre_upgrade_bk_2023 的快照
PUT _snapshot/backup_repo/pre_upgrade_bk_2023
{// 指定要包含在快照中的索引// 使用 "*" 表示包含集群中的所有索引,这样会对集群内的所有数据进行备份"indices": "*",// 设置是否忽略不可用的索引// 当设置为 true 时,如果某些索引不可用(例如处于损坏或未分配状态),快照过程不会因为这些不可用的索引而失败,而是会跳过它们继续进行快照操作"ignore_unavailable": true,// 设置是否包含集群的全局状态// 全局状态包含了集群的配置信息、节点信息、索引模板等元数据// 设置为 true 表示在快照中会包含这些全局状态信息,以便在恢复快照时可以还原整个集群的配置"include_global_state": true,// 为快照添加元数据信息// 元数据可以用于记录关于快照的额外信息,方便后续的管理和识别// 这里添加了一个名为 "reason" 的元数据字段,其值为 "pre-upgrade-8.x",表明创建这个快照的原因是在升级到 8.x 版本之前进行备份"metadata": {"reason": "pre-upgrade-8.x"}
}
  • 备份验证指标
    • 成功率:100%索引包含
    • 耗时:≤数据总量/50MB/s
    • 存储空间:原始数据大小×1.2

3. 分阶段升级流程

3.1 滚动升级步骤(零停机)

准备阶段
停用分片分配
升级单个节点
重启并验证节点
是否所有节点升级?
启用分片分配
最终集群检查

3.2 关键操作指令

# 停用分片分配
# 向 _cluster/settings 端点发送 PUT 请求,用于修改集群的持久化设置
# 持久化设置意味着即使集群重启,这些设置仍然会生效
PUT _cluster/settings
{# "persistent" 表示这是持久化设置"persistent": {# 设置集群路由分配的启用规则为 "primaries"# 这意味着只允许主分片进行分配,副本分片的分配将被暂停# 在进行节点升级等操作时,停用分片分配可以避免在升级过程中因分片重新分配而导致的性能问题和数据不一致问题"cluster.routing.allocation.enable": "primaries"}
}# 升级单个节点
# 使用 sudo 以管理员权限执行 systemctl 命令,停止 Elasticsearch 服务
# 停止服务是为了确保在升级过程中不会有新的请求进入,避免数据损坏或升级失败
sudo systemctl stop elasticsearch.service# 使用 sudo 以管理员权限执行 rpm 命令,进行软件包的升级操作
# -Uvh 是 rpm 命令的选项,其中 -U 表示升级,-v 表示显示详细的升级过程信息,-h 表示显示进度条
# elasticsearch-8.8.1.rpm 是 Elasticsearch 8.8.1 版本的 RPM 软件包,通过该命令将节点升级到 8.8.1 版本
sudo rpm -Uvh elasticsearch-8.8.1.rpm# 验证节点状态
# 向 _cat/nodes 端点发送 GET 请求,用于获取集群中节点的信息
# v 参数表示以表格形式输出详细信息,方便查看
# h 参数用于指定要显示的列,这里指定显示节点的名称(name)、版本(version)和角色(roles)
# 通过查看这些信息,可以确认节点是否成功升级到 8.8.1 版本以及节点的角色是否正常
GET _cat/nodes?v&h=name,version,roles

4. 升级后验证体系

4.1 核心功能验证表

测试类别测试方法预期结果通过标准
数据完整性随机采样文档对比哈希值哈希值完全匹配100%匹配
搜索相关性相同查询对比7.x/8.x结果前10结果重合≥90%≥95%重合
写入性能批量写入压力测试吞吐量差异≤15%≤10%差异
安全认证多角色权限验证权限控制精确生效无越权访问

4.2 性能基准对比

测试场景7.17 性能指标8.8 性能指标变化率
日志写入吞吐12万条/秒14万条/秒+16%↑
复杂聚合查询2.3秒1.8秒-22%↓
冷数据存储成本$0.023/GB/月$0.018/GB/月-22%↓
安全握手延迟320ms180ms-44%↓

5. 回退方案设计

5.1 快速回退流程

触发回退
停止新数据写入
恢复7.x集群快照
验证数据完整性
切换流量到7.x
清理8.x节点

5.2 回退检查清单

    1. 确认快照版本与7.x集群版本一致
    1. 关闭8.x集群安全认证功能
    1. 清除8.x特定索引模板
    1. 回滚JDK到11版本

6. 常见问题解决方案

6.1 典型问题处理矩阵

问题现象根本原因解决方案紧急程度
节点无法加入集群TLS配置不一致同步安全证书到所有节点⭐⭐⭐⭐⭐
聚合查询返回空结果字段类型不兼容重建索引并更新映射⭐⭐⭐⭐
Kibana仪表板加载失败插件版本不匹配升级Kibana到8.x配套版本⭐⭐⭐
分词器报错停用词列表格式变更调整分词器配置文件⭐⭐

6.2 关键日志分析

# 典型错误日志1:证书不兼容
[WARN][o.e.x.s.t.n.SecurityNetty4Transport] SSL/TLS connection error: handshake_failure# 解决方案:
使用elasticsearch-certutil重新生成统一CA证书# 典型错误日志2:字段类型冲突
java.lang.IllegalArgumentException: field [price] of type [scaled_float] conflicts with existing type [double]# 解决方案:
创建新索引并指定正确字段类型,使用reindex API迁移数据

  • 附录:迁移工具包
工具类别推荐工具使用场景
数据迁移Elasticsearch Reindex API索引结构更新
配置检查ES Upgrade Assistant预检兼容性问题
性能对比Rally基准测试工具版本性能对比
安全迁移Elastic Certutil证书管理

关键注意事项

  1. 必须先在测试环境验证业务场景
  2. 生产环境升级需选择业务低峰期
  3. 保留至少7天的旧版本快照
  4. 监控系统需提前适配8.x指标格式
  • **注:实际升级耗时与数据规模成正比,每TB数据预计需要2-4小时迁移时间**
    es - head 是一个 Elasticsearch 的可视化管理插件,它本身并不定义查询参数,而是允许用户使用 Elasticsearch 的各种查询参数来执行搜索操作。以下为你详细介绍 Elasticsearch 中常见的查询参数及其含义:

彩蛋!!!

Elasticsearch 常用结构化查询参数

  • match 查询。全文搜索查询,会对查询文本进行分词处理,然后在指定字段中查找匹配的分词。
  • term 查询。精确匹配查询,不会对查询词进行分词处理,直接查找字段中包含确切值的文档。
  • prefix 查询。查找字段中以指定前缀开头的文档。

  • wildcard 查询。支持使用通配符 *(匹配任意数量的任意字符)和 ?(匹配单个任意字符)进行模糊匹配。
  • range 查询。查找字段值在指定范围内的文档,支持 gt(大于)、gte(大于等于)、lt(小于)、lte(小于等于)操作符。
  • bool 查询。用于组合多个查询条件,可使用 must(必须匹配)、must_not(必须不匹配)、should(可以匹配,匹配越多得分越高)和 filter(过滤文档,不影响得分)子句。

  • _source 参数。控制返回文档中包含的字段,可以指定包含或排除某些字段。
  • explain 参数。当设置为 true 时,会在返回结果中包含每个匹配文档的得分解释信息,帮助理解文档得分的计算方式。
  • timeout 参数。指定查询的超时时间,若查询在指定时间内未完成,将返回已找到的部分结果。

相关文章:

【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-3-从ES 7.x到8.x的平滑迁移策略

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 附录-版本升级指南 3-Elasticsearch 7.x 到 8.x 平滑迁移策略指南1. 升级必要性分析1.1 版本特性对比1.2 兼容性评估矩阵 2. 预升级准备清单2.1 环境检查表2.2 数据备份策略 3. 分阶段…...

IP 地址

文章目录 IP 地址IP 地址的分类IPv4 地址IPv6 地址 公有 IP 与私有 IP静态 IP 与动态 IP子网与子网掩码常见 IP 地址用途IP 地址的工作方式总结 IP 地址 IP(Internet Protocol)地址是计算机网络中的标识符,用于唯一标识网络中的设备。它可以…...

利用余弦相似度在大量文章中找出抄袭的文章

我前面的2篇文章分别讲了如果利用余弦相似度来判断2篇文章的相似度,来确定文章是否存在抄袭,和余弦相似度的原理,即余弦相似度到底是怎么来判断文章的相似性高低的等等。这一篇再说下,对于文章字数多和大量文章时,如果…...

《C语言中“输入魔法师”:scanf函数的奥秘与技巧》

🚀个人主页:fasdfdaslsfadasdadf 📖收入专栏:C语言 🌍文章目入 一、引言二、scanf函数的基本语法三、格式说明符的种类及用法(一)整数输入(二)浮点数输入(三&…...

VSTO(C#)Excel开发6:与窗体交互

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...

PCL 点云OBB包围盒(二)

文章目录 一、简介二、实现步骤二、实现代码三、实现效果参考资料一、简介 包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。(来源于百度)常用的求解包围盒的算法主要有AABB和OOB算法,但AAB…...

IDEA 一键完成:打包 + 推送 + 部署docker镜像

1、本方案要解决场景? 想直接通过本地 IDEA 将最新的代码部署到远程服务器上。 2、本方案适用于什么样的项目? 项目是一个 Spring Boot 的 Java 项目。项目用 maven 进行管理。项目的运行基于 docker 容器(即项目将被打成 docker image&am…...

农业建设项目管理系统评测:8款推荐工具优缺点分析

本文主要介绍了以下8款农业建设项目管理系统:1.PingCode; 2. Worktile ;3. 建米农业工程项目管理系统;4. 开创云数字农业管理平台; 5. Trimble Ag Software;6.Conservis; 7. Agworld &#xff1…...

【MySQL】表的约束(上)

文章目录 表的约束什么是表的约束空属性默认值列描述(comment)零填充(zerofill)主键 总结 表的约束 什么是表的约束 表的约束(Constraints)是数据库表中的规则,用于限制存储的数据&#xff0c…...

根据TCP中的拥塞控制细说网卡了数据怎么传输

TCP(传输控制协议)中的拥塞控制是确保网络在数据传输过程中不会发生过载并导致网络崩溃的机制。拥塞控制通过动态地调整发送方的数据传输速率来适应网络的负载,从而避免网络拥塞。TCP的拥塞控制主要是根据网络的状况自动调整其发送速率&#…...

【SpringMVC】入门版

1.基本概念 1.1三层架构 三层架构也就是我们常说的b/s架构中的表现层,业务层和持久层,每层都各司其职,下面来分别讲解这三层的作用。 表现层: 也就是我们常说的web层。它负责接收客户端的请求,向客户端响应结果,通…...

DAY33 贪心算法Ⅱ

122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 想到把整体利润分解为每天的利润&#xff0c;就豁然开朗了。 class Solution { public:int maxProfit(vector<int>& prices) {int result0;for(int i1;i<prices.size();i){resultmax(0,pric…...

re-二维四向迷宫题

关于迷宫 我们结合具体的来进行描述。 迷宫&#xff0c;顾名思义是有墙&#xff0c;且只有一条路可以走下去。当我们在题目中获得了map&#xff08;地图&#xff09;就拥有了上帝视角&#xff0c;就可以顺利的走出迷宫。 在下面这个图就是一个迷宫的map&#xff0c;其中A是起…...

并发编程面试题一

1、什么是进程、线程、协程&#xff0c;他们之间的关系是怎样的 进程是操作系统进行资源分配和调度的基本单位。每个进程都有独立的内存空间&#xff0c;进程之间相互独立&#xff0c;一个进程崩溃不会影响其他进程&#xff0c;进程间通信&#xff08;IPC&#xff09;需要通过…...

3.14周报

本周主要是在找双目视觉三维人体姿态估计方向的文章&#xff0c;这篇dual-diffusion&#xff0c;双目三维人体姿态估计的双扩散文章&#xff0c;引起了兴趣&#xff0c;作者从由于摄像机数量的减少&#xff0c;增加了3d重建的不确定性入手&#xff0c;然后使用了扩散模型&#…...

【redis】zset 类型:基本命令(上)

set 集合&#xff1a; 唯一无序。&#xff08;顺序不重要&#xff09;孙行者、行者孙>同一只猴 list 有序。&#xff08;顺序很重要&#xff09;孙行者、行者孙>不同的猴 zset 有序。升序/降序 有序集合 排序的规则是什么&#xff1f; 给 zset 中的 member 引入了…...

3分钟复现 Manus 超强开源项目 OpenManus

文章目录 前言什么是 OpenManus构建方式环境准备克隆代码仓库安装依赖配置 LLM API运行 OpenManus 效果演示总结个人简介 前言 近期人工智能领域迎来了一位备受瞩目的新星——Manus。Manus 能够独立执行复杂的现实任务&#xff0c;无需人工干预。由于限制原因大部分人无法体验…...

【Java篇】一法不变,万象归一:方法封装与递归的思想之道

文章目录 Java 方法的使用&#xff1a;从基础到递归的全面解析一、方法的概念及使用1.1 什么是方法 (method)?1.2 方法定义1.3 方法调用的执行过程1.4 实参和形参的关系1.5 没有返回值的方法 二、方法重载2.1 为什么需要方法重载2.2 方法重载的概念2.2.4 C 和 Java 的比较&…...

SpringBoot解决跨域

将这个类添加到项目中 ResponseAdvice.java package com.example.homeLearn.config;import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.server.ServerHttpRequest; import org.springframework…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-2-性能调优工具箱

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 附录-性能调优工具箱 2-Elasticsearch 性能调优工具箱深度指南一、性能诊断工具集1.1 实时监控工具1.2 慢查询分析 二、硬件与基础架构优化2.1 存储方案选型2.2 JVM调优参数 三、索引…...

UDP协议栈之整体架构处理

在之前的章节中&#xff0c;笔者就UDP、ICMP、IP、ARP、MAC层的报文格式&#xff0c;以及组帧解帧、CRC校验、分片处理等操作进行了具体介绍以及详细代码实现&#xff0c;并且通过了仿真测试。但之前的仿真测试都是对单层报文的组帧解帧进行的&#xff0c;这些模块仍处于“孤立…...

健康医疗:动态代理 IP 保障医疗数据安全,提升远程医疗服务质量!

在数字化浪潮的推动下&#xff0c;远程医疗服务以其便捷性和高效性受到了广泛的关注。然而&#xff0c;随之而来的是数据安全问题&#xff0c;尤其是医疗数据的安全性&#xff0c;成为了制约远程医疗服务发展的关键因素。幸运的是&#xff0c;动态代理IP技术的出现&#xff0c;…...

Navicat SqlServer 设置自增主键

Navicat是一款优秀的数据库管理工具&#xff0c;可以连接很多类型的数据库。使用它可以极大的提高工作效率。 Navicat 不能设置SqlServer自增字段&#xff0c;只能通过sql语句来实现 建表时设置 create table <表名> ( <字段1-主键> int identity (1,1) primar…...

实验8 搜索技术

实验8 搜索技术 一、实验目的 &#xff08;1&#xff09;掌握搜索技术的相关理论&#xff0c;能根据实际情况选取合适的搜索方法&#xff1b; &#xff08;2&#xff09;进一步熟悉盲目搜索技术&#xff0c;掌握其在搜索过程中的优缺点&#xff1b; &#xff08;3&#xff09;…...

IMA+DeepSeekR1+本地知识库撰写NOIP2008普及组T3【传球游戏】题解

目录 一、提问词 二、DeepSeekR1回复 题目描述 解题思路 实现代码 代码说明 三、说明 【IMADeepSeekR1本地知识库】撰写NOIP2008普及组复赛题解系列 1、IMADeepSeekR1本地知识库撰写NOIP2008普及组T1【ISBN 号码】题解-CSDN博客 2、IMADeepSeekR1本地知识库撰写NOIP200…...

查找特定的值(信息学奥赛一本通-1110)

【题目描述】 在一个序列(下标从1开始)中查找一个给定的值&#xff0c;输出第一次出现的位置。 【输入】 第一行包含一个正整数n&#xff0c;表示序列中元素个数。1 <n< 10000。 第二行包含n个整数&#xff0c;依次给出序列的每个元素&#xff0c;相邻两个整数之间用单个…...

Qt项目中集成第三方模块的.pri文件

对于功能模块较多的Qt项目&#xff0c;使用pri文件管理模块文件&#xff0c;降低工程复杂度&#xff0c;提高软件模块的封装性和重用性。 一、.pro与.pri 对于模块化编程&#xff0c;Qt提供了pro和pri&#xff0c;pro管理项目&#xff0c;pri管理模块。 .pro 文件是Qt项目的…...

200多种算法应用于二维和三维无线传感器网络(WSN)覆盖场景

2.1 二元感知模型 在当前无线传感器网络&#xff08;WSN&#xff09;覆盖场景中&#xff0c;最常见且理想的感知模型是二元感知模型[27]。如图2所示&#xff0c; Q 1 Q_1 Q1​和 Q 2 Q_2 Q2​代表平面区域内的两个随机点。 Q 1 Q_1 Q1​位于传感器的检测区域内&#xff0c;其感…...

【QT】文件系统相关 -- QFile

一、Qt 文件概述 &#x1f525; 文件操作是应用程序必不可少的部分。Qt 作为⼀个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 提供了很多关于⽂件的类&#xff0c;通过这些类能够对文件系统进行操作&#xff0c;如文件读写、文件信息获取、文件制或重命名等 二、输…...

transformer bert 多头自注意力

输入的&#xff08;a1,a2,a3,a4&#xff09;是最终嵌入&#xff0c;是一个(512,768)的矩阵&#xff1b;而a1是一个token&#xff0c;尺寸是768 a1通过Wq权重矩阵&#xff0c;经过全连接变换得到查询向量q1&#xff1b;a2通过Wk权重矩阵得到键向量k2&#xff1b;q和k点乘就是值…...

人工智能之数学基础:线性变换的象空间和零空间

本文重点 前面的课程中,我们学习了线性变换,由此而引申出线性变换的象空间和零空间,这两个空间在机器学习领域会被经常用到,本文对此进行学习。 直观理解 总的来说象空间就是经过线性变换得到的空间,零空间就是经过线性变换是零的元素构成的空间。 从几何角度来看,象空…...

数据的存储---整型、浮点型

目录 一、整型在内存中的存储 1. 原码、反码、补码 2. 大端与小端 二、浮点数在内存中的存储 1.浮点数的存 2. 浮点数的取 3. 题目解析 一个变量的创建需要在内存中开辟空间&#xff0c;而开辟的空间大小是由数据类型决定的。下面我们就来讨论一下整型、浮点型在内存中的…...

鲸鱼算法WOA对风电场风电机组一次二次调频参数进行全局最优辨识,二次调频参数辩识matlab/simulink,也可进一步修改成一次调频参数辩识

模型为二次调频模型&#xff0c;也可修改为一次调频模型参数辩识 随着风电在电力系统中占比提高,其调频特性对电力系统频率稳定性的影响增大&#xff0c;例如&#xff0c;随着风电渗透水平不断提升&#xff0c;系统惯量不断增加&#xff0c;电力系统频率不断下降&#xff0c;在…...

Spring 中 SmartInitializingSingleton 的作用和示例

一、 接口定义 SmartInitializingSingleton 是 Spring 框架提供的一个 单例 Bean 全局初始化回调接口&#xff0c;用于在 所有非延迟单例 Bean 初始化完成后 执行自定义逻辑。 核心方法&#xff1a; public interface SmartInitializingSingleton {void afterSingletonsInsta…...

《TCP/IP网络编程》学习笔记 | Chapter 18:多线程服务器端的实现

《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现 《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现线程的概念引入线程的背景线程与进程的区别 线程创建与运行pthread_createpthread_join可在临界区内调用的函数工作&#…...

Unity AI 技术浅析(三):智能代理(Agents)

Unity AI的智能代理(Agents)技术是实现游戏和虚拟现实应用中非玩家角色(NPC)、敌人、盟友等智能行为的核心。通过智能代理,开发者可以为虚拟角色赋予感知、决策和行动的能力,使其能够与环境和其他角色进行复杂的交互。 一、智能代理的基本原理 智能代理是能够在特定环境…...

加油站~~

求最少加油次数就是一个贪心问题&#xff0c;这里也不需要证明&#xff0c;根据我们的常识也知道就是走到油不够的时候就加油就好了&#xff0c;这里的no solution这有在两个加油站之间的距离大于了加满油后的行驶距离才会存在&#xff0c;其他情况都是可以计算的。代码有很多细…...

【商城实战(24)】商城性能大揭秘:压力测试与性能监控实战

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

Linly-Talker:开源数字人框架的技术解析与影响

一、引言&#xff1a;AI 数字人的发展趋势 近年来&#xff0c;数字人&#xff08;Digital Human&#xff09; 技术迅速发展&#xff0c;从最早的 2D 虚拟主播&#xff0c;到如今能够进行实时交互的 3D 智能助手&#xff0c;AI 在多模态交互领域的应用愈发广泛。各大互联网公司…...

【Nexus】Maven 私服搭建以及上传自己的Jar包

Nexus 安装 docker run -d -uroot --name nexus3 --restartalways -p 8081:8081 -v /data/nexus-data/blobs:/nexus-data/blobs -v /etc/localtime:/etc/localtime sonatype/nexus3这里也提供一下docker-composer的方法 .env 文件 VERSIONlatest CONTAINER_NAMECONTAINER_N…...

wlwrap 与 rlwrap 的区别对比:图形显示协议的演变

在 Linux 系统中&#xff0c;许多工具和程序依赖于命令行界面&#xff08;CLI&#xff09;来进行交互&#xff0c;尤其是对于那些没有图形用户界面的应用程序。在这种情况下&#xff0c;命令行编辑、历史记录和自动补全等功能是提升工作效率和用户体验的关键。rlwrap 和 wlwrap…...

矩阵交换行(信息学奥赛一本通-1119)

【题目描述】 给定一个55的矩阵(数学上&#xff0c;一个rc的矩阵是一个由r行c列元素排列成的矩形阵列)&#xff0c;将第n行和第m行交换&#xff0c;输出交换后的结果。 【输入】 输入共6行&#xff0c;前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。 第6行包含两个整…...

CP210x 驱动秘籍:打通 Windows 11 端口的任督二脉

前言 江湖上&#xff0c;众多电脑侠客在安装 Windows 11 时&#xff0c;遭遇“端口失踪案”。原来&#xff0c;这是缺少 CP210x 驱动的“内功心法”。今日&#xff0c;贫道便传授一套独门秘籍&#xff0c;助你打通端口“任督二脉”&#xff0c;让数据流畅如江湖中轻功高手。 …...

IDEA集成git,项目的克隆,远程仓库中文件的添加删除

目录 一、克隆项目 二、使用IDEA完成文件的上传和删除 1.配置git 2.上传 3.删除&#xff08;通过git bash&#xff09; 一、克隆项目 点击克隆&#xff0c;复制url &#xff0c;如下 打开你想要克隆到哪里&#xff0c;右击&#xff0c;选择 open Git Bash here 这一步之后…...

分治构造格雷码

题目描述 格雷码是一种二进制编码方式&#xff0c;其特性是任意两个相邻的码只有一位二进制位不同。给定一个整数 n&#xff0c;表示格雷码的位数&#xff0c;请生成所有 n 位格雷码&#xff0c;并按照格雷码的标准顺序输出。 输入格式 输出样例输入包含一个整数 n&#xff0c…...

区跨链知识和概念

1、以太坊 Geth 源码解析 Geth&#xff08;Go Ethereum&#xff09;是以太坊官方提供的 Go 语言实现的客户端&#xff0c;广泛用于以太坊全节点运行、挖矿、DApp 开发等。理解 Geth 的源码有助于掌握以太坊区块链底层逻辑&#xff0c;如区块同步、EVM 执行、P2P 交互等。 2、…...

C# net deepseek RAG AI开发 全流程 介绍

deepseek本地部署教程及net开发对接 步骤详解&#xff1a;安装教程及net开发对接全流程介绍 DeepSeekRAG 中的 RAG&#xff0c;全称是 Retrieval-Augmented Generation&#xff08;检索增强生成&#xff09;&#xff0c;是一种结合外部知识库检索与大模型生成能力的技术架构。其…...

REST 请求返回 Invalid Credentials

REST 请求返回 “Invalid Credentials”&#xff08;无效凭据&#xff09;&#xff0c;通常表示身份验证失败。可能的原因和解决方案如下&#xff1a; 可能的原因 & 解决方案 用户名或密码错误 确保使用正确的用户名和密码。如果 API 需要 Base64 编码的 Authorization 头…...

方案推介:206页WORD版ERP系统软件投标书整体解决方案

&#xff08;推介资料包含于绑定资源内&#xff09; 该文档是一份 ERP 系统软件投标书&#xff0c;围绕ERP 系统展开&#xff0c;全面阐述了其为机械加工企业提供的整体解决方案、应用价值、行业成功案例及标准功能&#xff0c;旨在助力企业实现信息化管理升级 。 ERP 软件系统…...

WebSocket生命周期和vue中使用

ing。。。晚点更新 进入页面&#xff0c;生命周期挂载后&#xff0c;window监听ws连接online 正常情况&#xff0c;心跳包检测避免断开 非正常情况&#xff0c;ws.onclose断开&#xff0c; 判断1000状态吗&#xff0c;触发重连函数。 定时器&#xff0c;重连&#xff0c;判断…...