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

SkyWalking的工作原理和搭建过程

SkyWalking 是一个开源的 应用性能监控系统(APM),专为云原生、微服务架构设计。其核心原理基于 分布式追踪(Distributed Tracing)指标收集(Metrics Collection) 和 日志关联(Log Correlation),通过无侵入或轻量级的方式实现全链路监控。

一、整体架构与组件原理

SkyWalking 采用 四层架构 设计,各组件分工明确:

1. Agent(数据采集层)
  • 功能
    • 无侵入式监控:通过字节码增强技术(如 Java Agent)自动收集应用性能数据。
    • 轻量级 SDK:为非 Java 语言(如 Node.js、Python)提供手动埋点 SDK。
  • 采集内容
    • 请求链路数据(Trace):记录请求在各服务间的调用路径和耗时。
    • 指标数据(Metrics):如响应时间、吞吐量、错误率。
    • 环境元数据:服务拓扑关系、实例信息。
2. OAP Server(数据分析层)
  • 接收核心服务(Receiver)
    • 支持多种协议接收数据:如 gRPC、HTTP、Kafka、Zipkin 等。
    • 数据格式转换:将不同来源的数据统一为内部格式。
  • 分析引擎(Analysis)
    • 流处理:实时分析数据流,计算指标(如 P99 响应时间)。
    • 关联分析:将 Trace、Metrics 和日志关联,构建服务拓扑图。
    • 告警引擎:基于规则触发告警(如响应时间超过阈值)。
  • 存储服务(Storage)
    • 支持多种存储后端:Elasticsearch、H2、MySQL、TiDB 等。
3. UI(用户交互层)
  • 提供可视化界面,展示:
    • 服务拓扑图:直观呈现服务间依赖关系。
    • 性能指标面板:如 QPS、响应时间趋势。
    • 分布式追踪详情:查看完整调用链和瓶颈点。
    • 告警历史:查看和管理触发的告警。

二、分布式追踪原理

1. 基本概念
  • Span(跨度)
    • 表示调用链中的一个操作单元(如一次方法调用、SQL 查询)。
    • 包含元数据:操作名称、开始 / 结束时间、标签(如错误信息)。
  • Trace(追踪)
    • 由多个 Span 组成的有向无环图(DAG),表示一次完整请求的路径。
  • 上下文传递
    • 通过 HTTP Header 或消息队列传递 TraceID 和 SpanID,跨服务追踪。
2. 追踪流程

plaintext

 

  1. 客户端发起请求:生成全局唯一的 TraceID 和根 SpanID。
  2. 服务 A 处理请求
    • 记录自身 Span 信息(如处理时间)。
    • 将 TraceID 和 SpanID 通过 HTTP Header 传递给服务 B。
  3. 服务 B 接收请求
    • 提取 TraceID 和 SpanID,创建子 Span。
    • 继续传递上下文到服务 C。
  4. 数据聚合
    • 各服务将 Span 数据发送给 OAP Server。
    • OAP Server 根据 TraceID 关联所有 Span,还原完整调用链。

三、指标收集与分析

1. 指标类型
  • 服务级指标:如 QPS、平均响应时间、错误率。
  • 实例级指标:如 CPU / 内存使用率、线程数。
  • 端点级指标:如特定 URL 或方法的性能。
2. 指标计算
  • 原生指标:直接从 Agent 采集,如请求数、响应时间。
  • 派生指标:通过计算得到,如:
    • P99 响应时间:排序后 99% 位置的值,反映系统最差性能。
    • 吞吐量:单位时间内的请求数。
    • 错误率:失败请求数占比。
3. 聚合与降维
  • 时间窗口聚合:按分钟 / 小时 / 天聚合指标,减少存储压力。
  • TopN 算法:只保留最耗时或最频繁的操作,忽略噪声数据。

四、服务发现与拓扑构建

1. 自动服务发现
  • 基于流量分析:通过分析请求路径,自动识别服务间调用关系。
  • 元数据上报:Agent 主动上报服务名称、实例信息。
2. 拓扑图生成
  • 节点:表示服务或组件(如数据库、消息队列)。
  • :表示调用关系,边的粗细表示调用频率,颜色表示健康状态。
  • 动态更新:实时刷新拓扑图,反映服务关系变化。

五、告警机制

1. 告警规则配置
  • 内置规则:如响应时间超过阈值、错误率突增。
  • 自定义规则:通过 YAML 配置,支持 PromQL 表达式:
rules:service_resp_time_rule:metrics-name: service_resp_time_percentile_99op: ">"threshold: 1000period: 10count: 3silence-period: 5
2. 告警发送
  • 支持多种通知方式:邮件、Webhook、Slack、钉钉等。
  • 告警分组与聚合:合并同类告警,避免频繁通知。

六、性能优化与存储策略

1. 数据采样
  • 固定比例采样:如每 100 个请求采集 1 个(配置agent.sample_n_per_3_secs)。
  • 智能采样:对异常请求(如错误请求)全量采集,正常请求降采样。
2. 存储优化
  • 冷热分离
    • 热数据(最近 7 天)存储在高性能节点(如 ES 热节点)。
    • 冷数据(历史数据)迁移到低成本存储(如 ES 冷节点)。
  • TTL 配置:自动删除过期数据,避免存储爆炸。

七、多语言支持

语言支持方式特点
Java无侵入 Agent通过字节码增强,无需修改代码
PythonSkywalking-Python SDK需少量埋点,支持 Django、Flask 等框架
Node.jsSkywalking-NodeJS SDK支持 Express、Koa 等框架
GoSkywalking-Go SDK手动埋点为主,提供 HTTP、gRPC 等中间件
C++Skywalking-C++ SDK适用于高性能场景,需手动集成
.NETSkyAPM-dotnet支持ASP.NET Core 等框架

八、与其他 APM 系统对比

特性SkyWalkingJaegerZipkin
分布式追踪
自动服务发现❌(需手动配置)❌(需手动配置)
服务拓扑可视化
告警机制❌(需依赖 Prometheus)❌(需依赖外部系统)
存储支持ES/H2/MySQL/TiDB 等ES/Cassandra 等ES/MySQL 等
社区活跃度高(Apache 顶级项目)

通过以上机制,SkyWalking 实现了对分布式系统的全链路监控,帮助开发者快速定位性能瓶颈、故障根因,优化系统架构。其核心优势在于无侵入式采集、高性能分析引擎和强大的可视化能力,特别适合云原生微服务环境。

二、SkyWalking 集群搭建

1. 环境准备
  • 硬件要求(单节点参考,根据数据量调整):

    组件CPU内存存储(SSD)网络
    OAP Server4 核 +8GB+50GB+千兆网卡
    Storage按需按需按需(如 ES 需高 IO)
    UI2 核 +4GB+20GB+公网可达
  • 软件依赖

    • Java 11+(OAP 和 UI 均需)
    • 存储组件(可选,推荐 Elasticsearch 7.x/8.x 或 Apache H2)
    • ZooKeeper(用于集群管理,可选,适用于多 OAP 节点)
2. 部署流程(以 Elasticsearch 存储为例)
步骤 1:下载安装包
# 官网下载最新版(如9.4.0)
wget https://archive.apache.org/dist/skywalking/9.4.0/apache-skywalking-apm-9.4.0.tar.gz
tar -zxvf apache-skywalking-apm-9.4.0.tar.gz
cd apache-skywalking-apm-bin
步骤 2:配置 OAP Server
  • 修改配置文件config/application.yml

# 存储配置(以 Elasticsearch 为例)
storage:selector: ${SW_STORAGE:elasticsearch7}elasticsearch7:namespaces: ${SW_NAMESPACE:""}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.100:9200,192.168.1.101:9200}  # ES集群地址protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}user: ${SW_STORAGE_ES_USER:""}  # 如有认证password: ${SW_STORAGE_ES_PASSWORD:""}compression: ${SW_STORAGE_ES_COMPRESSION:"false"}trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}# 集群配置(多OAP节点时启用ZooKeeper)
cluster:selector: ${SW_CLUSTER:zookeeper}zookeeper:namespace: ${SW_NAMESPACE:""}servers: ${SW_CLUSTER_ZK_SERVERS:192.168.1.102:2181,192.168.1.103:2181}  # ZooKeeper地址
步骤 3:配置 UI
  • 修改配置文件webapp/application.yml
  • server:port: 8080  # UI端口
    management:port: 8081  # 管理端口
    oapServer:# OAP集群地址(逗号分隔)hosts: ${SW_OAP_ADDRESS:http://192.168.1.104:12800,http://192.168.1.105:12800}
步骤 4:启动集群
  • 单节点启动(测试环境)
  • # 启动OAP(后台运行)
    ./bin/oapService.sh start
    # 启动UI
    ./bin/webappService.sh start
  • 多节点集群(生产环境)
    1. 在所有 OAP 节点重复步骤 2(确保 ZooKeeper 和 ES 配置一致)。
    2. 依次启动各节点的 OAP 服务,通过 ZooKeeper 实现节点发现。
    3. 启动 UI 服务,指向任意 OAP 节点地址。
3. 数据采集配置(以 Java 应用为例)
  1. 下载 Agent
cd agents
# 或从官网下载对应语言的Agent(如Java、Python等)

配置 Agent

vi config/agent.config
agent.name=your-application-name  # 应用名称
collector.backend_service=192.168.1.104:11800,192.168.1.105:11800  # OAP集群地址

启动应用

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=your-app -jar your-app.jar

二、SkyWalking 集群维护

1. 日常监控与巡检
  • 核心指标
    • OAP 节点状态:CPU / 内存利用率、GC 频率、线程数。
    • 存储性能:ES 集群健康度、索引写入延迟、磁盘利用率。
    • UI 响应时间:页面加载速度、接口调用成功率。
  • 工具推荐
    • 用 Prometheus+Grafana 监控 SkyWalking 自身指标(需开启 OAP 的 Prometheus exporter)。
    • ES 内置监控工具(如 Dev Tools、Kibana)。
2. 数据管理
  • 索引生命周期管理(ILM)
# 在OAP配置中启用ILM(ES 7.x+推荐)
elasticsearch7:index:prefix: ${SW_NAMESPACE:"skywalking"}suffix: ${SW_DATAFLOW_SUFFIX:""}lifecycle:enable: truename: "skywalking-lifecycle"  # ES中需提前创建生命周期策略rollover:max_docs: 5000000  # 单个索引最大文档数max_size: 50gb     # 单个索引最大存储大小
  • 数据清理
    • 定期删除历史索引(如保留 7 天数据),避免存储爆炸。
    • 对低频查询数据归档到冷存储(如 ES Cold 节点)。
3. 集群扩展与升级
  • 横向扩展 OAP 节点

    1. 新增服务器,复制 OAP 配置(保持 ZooKeeper 和 ES 地址一致)。
    2. 启动新节点,自动加入集群(通过 ZooKeeper 协调)。
    3. 更新 UI 配置中的 OAP 地址列表。
  • 版本升级

    1. 停止所有 OAP 节点和 UI 服务。
    2. 备份存储数据(如 ES 快照)。
    3. 替换新版本安装包,更新配置(注意版本兼容性)。
    4. 按顺序启动 OAP 集群和 UI,验证数据采集正常。

三、常见问题与处理

1. 数据采集失败
  • 可能原因
    • Agent 配置错误(如 OAP 地址错误、端口被防火墙拦截)。
    • OAP 存储连接失败(ES 集群不可用、认证信息错误)。
  • 解决方法
    1. 检查 Agent 日志(logs/skywalking-agent.log),确认是否连接到 OAP。
    2. 测试 OAP 节点与存储组件的网络连通性(如telnet ES_IP 9200)。
    3. 重启 OAP 服务,查看启动日志(logs/oap-server.log)中的错误信息。
2. UI 界面无数据
  • 可能原因
    • 应用未正确关联 Agent(服务名重复或未配置)。
    • OAP 集群节点间数据同步失败(ZooKeeper 故障)。
  • 解决方法
    1. 确认 Agent 的agent.name唯一且与 UI 中展示的服务名一致。
    2. 检查 ZooKeeper 集群状态,确保 OAP 节点正常注册。
    3. 手动触发一次数据采集(如调用应用接口),观察 ES 中是否生成新索引。
3. 存储性能瓶颈
  • 可能原因
    • ES 集群分片数不合理,导致写入压力集中。
    • OAP 数据采集频率过高,超过存储处理能力。
  • 解决方法
    • 调整 ES 索引分片数(如PUT /skywalking-*/_settings?preserve_existing=true {"index.number_of_shards": 5})。
    • 在 OAP 配置中降低采样率(sampling: ${SW_SAMPLING:1000},值越大采样率越低)。
4. 集群节点失联
  • 可能原因
    • 节点间网络中断(如交换机故障、防火墙策略变更)。
    • ZooKeeper 会话超时(配置cluster.zookeeper.sessionTimeout过小)。
  • 解决方法
    1. 检查服务器间网络连通性,修复中断链路。
    2. 增大 ZooKeeper 会话超时时间(建议设置为 30 秒以上):
  • cluster:zookeeper:sessionTimeout: 30000  # 单位毫秒

 

四、最佳实践

  1. 高可用架构

    • OAP 节点至少部署 3 个,通过 ZooKeeper 实现故障自动切换。
    • 存储组件(如 ES)采用多节点集群,启用副本机制。
  2. 日志与告警

    • 配置 SkyWalking 自身告警(如通过 Webhook 发送到钉钉 / 邮件)。
    • 对 OAP 和存储组件的关键指标设置阈值(如 ES 磁盘利用率 > 80% 时告警)。
  3. 安全加固

    • 限制 UI 端口的公网访问,通过 Nginx+SSL 代理。
    • 对 ES 集群启用认证(如 X-Pack),避免数据泄露。

 

 

 

 

 

 

相关文章:

SkyWalking的工作原理和搭建过程

SkyWalking 是一个开源的 应用性能监控系统(APM),专为云原生、微服务架构设计。其核心原理基于 分布式追踪(Distributed Tracing)、指标收集(Metrics Collection) 和 日志关联(Log C…...

CMS(plone / joomla 搭建测试)

开源选择 wordpress 用得最多 也是最容易有漏洞被攻击 被挂木马的 joomla (JMS多站点:商业扩展) — 多站点需付费 Drupal ProcessWire Plone因其内置的强大安全特性和较少的用户基础(相比 WordPress 和 Joomla)&#…...

基于 Flink 的实时推荐系统:从协同过滤到多模态语义理解

基于 Flink 的实时推荐系统:从协同过滤到多模态语义理解 嘿,各位技术小伙伴们!在这个信息爆炸的时代,你是不是常常惊叹于各大平台仿佛能 “读懂你的心”,精准推送你感兴趣的内容呢?今天,小编就…...

Flink SQL、Hudi 、Doris在数据上的组合应用

Flink SQL、Hudi 和 Doris 是大数据领域中不同定位的技术组件,各自解决不同的问题,以下从核心定位、关键特性和典型场景三个维度展开说明: 1. Flink SQL:流批统一的实时计算引擎 核心定位:Flink 是 Apache 顶级的流批…...

Flink运维要点

一、Flink 运维核心策略 1. 集群部署与监控 资源规划 按业务优先级分配资源:核心作业优先保障内存和 CPU,避免资源竞争。示例:为实时风控作业分配专用 TaskManager,配置 taskmanager.memory.process.size8g。 监控体系 集成 Prom…...

VSCode + Cline AI辅助编程完全指南

VSCode Cline AI辅助编程完全指南 在当今AI快速发展的时代,程序员可以通过AI工具极大地提高工作效率。本教程将详细介绍如何使用VSCode结合Cline(Claude AI助手)进行AI辅助编程,帮助你提高开发效率,解决复杂问题。 …...

【源码级开发】Qwen3接入MCP,企业级智能体开发实战!

Qwen3接入MCP智能体开发实战(上) 一、MCP技术与Qwen3原生MCP能力介绍 1.智能体开发核心技术—MCP 1.1 Function calling技术回顾 如何快速开发一款智能体应用,最关键的技术难点就在于如何让大模型高效稳定的接入一些外部工具。而在MCP技术…...

回调函数应用示例

回调函数是一种通过函数指针(或引用)调用的函数,它在特定事件或条件发生时被另一个函数调用。回调函数的核心思想是将函数作为参数传递,以便在适当的时候执行自定义逻辑,常用于异步编程、事件驱动架构等场景。 业务场景…...

R语言如何解决导出pdf中文不显示的问题

前言 以前绘图都默认英文&#xff0c;突然要求都改成中文&#xff0c;呆住。。。。。。。。。 标题代码实现 ### 导入工具包 ### library(readr) library(dplyr) library(corrplot)df <- read_csv("./clinical.csv") df <- df %>% select(-id, -label)##…...

国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域

​ PageOffice 国产版 &#xff1a;支持信创系统&#xff0c;支持银河麒麟V10和统信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飞腾、鲲鹏、麒麟等&#xff09;、龙芯&#xff08;Mips、LoogArch&#xff09;芯片架构。 在实际的Wor…...

llamafactory SFT 从断点恢复训练

背景 我使用llamafactory sft 微调模型的时候。gpu停止运行了。日志文件没有任何的报错信息。 显存还是占用状态。 查看llamafactory的进程是下述信息&#xff1a; 151312 151306 91 17:42 ? 03:58:10 [llamafactory-cl] 既然如此&#xff0c;那就只能从断点恢复训练了。 …...

C#里使用Prism.Core的例子

由于使用WPF来开发应用程序, 那么就会使用一些框架程序来加速开发,一般会使用Prism.Core来加速。 这个应用最后运行的显示如下: 第一步需要安装下面的包: <?xml version="1.0" encoding="utf-8"?> <packages><package id="Mi…...

【MySQL】数据库三大范式

目录 一. 什么是范式 二. 第一范式 三. 第二范式 不满足第二范式时可能出现的问题 四. 第三范式 一. 什么是范式 在数据库中范式其实就是一组规则&#xff0c;在我们设计数据库的时候&#xff0c;需要遵守不同的规则要求&#xff0c;设计出合理的关系型数据库&#xff0c;…...

window 显示驱动开发-分页视频内存资源

与 Microsoft Windows 2000 显示驱动程序模型不同&#xff0c;Windows Vista 显示驱动程序模型允许创建比可用物理视频内存总量更多的视频内存资源&#xff0c;然后根据需要分页进出视频内存。 换句话说&#xff0c;并非所有视频内存资源都同时位于视频内存中。 GPU 的管道中可…...

炼丹学习笔记3---ubuntu2004部署运行openpcdet记录

前言 环境 cuda 11.3 python 3.8 ubuntu2004 一、cuda环境检测 ylhy:~/code_ws/OpenPCDet/tools$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Mar_21_19:15:46_PDT_2021 Cuda compilation tools, release 11.3…...

美创科技针对《银行保险机构数据安全管理办法》解读

在数字化浪潮席卷下&#xff0c;银行保险业的运营模式发生了翻天覆地的变化&#xff0c;数据已然成为行业发展的核心驱动力。从客户基本信息、交易记录&#xff0c;到业务运营的关键数据、市场分析报告&#xff0c;海量数据背后潜藏巨大价值。然而&#xff0c;数据安全风险也随…...

activeMq 限制用户接收topic范围

1、在conf配置文件中找到jetty-realm.properties文件&#xff0c;添加用户信息 2、在broker标签中加入topic限制权限信息 <plugins><simpleAuthenticationPlugin><users><authenticationUser username"admin" password"admin" group…...

LIIGO ❤️ RUST 12 YEARS

LIIGO &#x1f496; RUST 12 YEARS 今天是RUST语言1.0发布十周年纪念日。十年前的今天&#xff0c;2015年的今天&#xff0c;Rust 1.0 正式发行。这是值得全球Rust支持者隆重纪念的日子。我借此机会衷心感谢Rust语言创始人Graydon Hoare&#xff0c;Mozilla公司&#xff0c;以…...

增量学习:机器学习领域中的资源高效利用秘籍

前言 在机器学习的广袤天地中&#xff0c;增量学习宛如一颗冉冉升起的新星&#xff0c;正逐渐展现出其独特的魅力和巨大的潜力。 它是一种能让 AI 模型像人类一样&#xff0c;逐步学习并不断强化自身知识&#xff0c;同时不会遗忘过往所学信息的学习方法。随着时代的飞速发展&a…...

OpenCV 背景建模详解:从原理到实战

在计算机视觉领域&#xff0c;背景建模是一项基础且重要的技术&#xff0c;它能够从视频流中分离出前景目标&#xff0c;广泛应用于运动目标检测、视频监控、人机交互等场景。OpenCV 作为计算机视觉领域最受欢迎的开源库之一&#xff0c;提供了多种高效的背景建模算法。本文将深…...

makefile细节说明

在 Makefile中&#xff0c;依赖关系的左右两部分有特定的名称&#xff1a; ​​左边部分&#xff08;冒号左侧&#xff09;​​ 称为 ​​目标&#xff08;Target&#xff09;​​ ​​右边部分&#xff08;冒号右侧&#xff09;​​ 称为 ​​依赖项&#xff08;Prerequisite…...

计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图

1. 法线贴图&#xff08;Normal Mapping&#xff09; 法线贴图是一种在3D图形渲染中广泛使用的表面细节增强技术。它通过存储每个像素的法线信息来模拟表面的细微凹凸细节&#xff0c;而无需增加实际的几何复杂度。 1.1. 工作原理 纹理存储 使用RGB通道存储法线向量的XYZ分量…...

使用 OpenCV 将图像中标记特定颜色区域

在计算机视觉任务中&#xff0c;颜色替换是一种常见的图像处理操作&#xff0c;广泛用于视觉增强、目标高亮、伪彩色渲染等场景。本文介绍一种简单而高效的方式&#xff0c;基于 OpenCV 检测图像中接近某种颜色的区域&#xff0c;并将其替换为反色&#xff08;对比色&#xff0…...

Service Mesh

目录 一、Service Mesh 的核心特点 二、Service Mesh 的典型架构 1. Sidecar 模式 2. 控制平面与数据平面分离 三、Service Mesh 解决的核心问题 四、典型应用场景 五、主流 Service Mesh 框架对比 六、挑战与局限性 七、未来趋势 总结 Istio 一、Istio 核心组件与…...

反射机制详细说明

反射机制详细说明 1. 反射的基本概念 反射(Reflection)是Java提供的一种在运行时(Runtime)动态获取类信息并操作类属性、方法和构造器的机制。通过反射,程序可以在运行时检查类、接口、字段和方法,并且可以实例化对象、调用方法、访问或修改字段值,甚至操作私有成员,…...

基于Mongodb的分布式文件存储实现

分布式文件存储的方案有很多&#xff0c;今天分享一个基于mongodb数据库来实现文件的存储&#xff0c;mongodb支持分布式部署&#xff0c;以此来实现文件的分布式存储。 基于 MongoDB GridFS 的分布式文件存储实现&#xff1a;从原理到实战 一、引言 当系统存在大量的图片、…...

相机Camera日志分析之九:高通相机Camx 基于预览1帧的ConfigureStreams二级日志分析详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:高通相机Camx 日志分析之三:camx hal预览1帧logcat日志opencamera详解 相机Camera日志分析之三:不想输出每秒30帧巨量日志,如何只输出1帧日志作为学习使用? 这一篇我们开始讲: 高通相机Camx 日志…...

neo4j框架:ubuntu系统中neo4j安装与使用教程

在使用图数据库的时候&#xff0c;经常需要用到neo4j这一图数据库处理框架。本文详细介绍了neo4j安装使用过程中的问题与解决方法。 一、安装neo4j 在安装好了ubuntu系统、docker仓库和java的前提下 在ubuntu系统命令行依次输入如下命令&#xff1a; # 安装依赖库 sudo apt-…...

k8s灰度发布

基于 Traefik 的加权灰度发布-腾讯云开发者社区-腾讯云 Traefik | Traefik | v1.7 Releases traefik/traefik GitHub 从上面连接下载后上传到harbor虚拟机 vagrant upload /C/Users/HP280/Downloads/traefik 下载配置文件 wget -c http://raw.githubusercontent.com/conta…...

K8S从Harbor拉取镜像

参考 配置cri-docker使kubernetes1.24以docker作为运行时_启动cirdocker_跳跃音符#3712的博客-CSDN博客 部署Harbor私有容器镜像仓库并配置Kubernetes从Harbor拉取镜像的方法_运维个西瓜的博客-CSDN博客 K8S连接Harbor私有仓库_k8s harbor 登录-CSDN博客 K8S集群配置使用私…...

【Spring Boot后端组件】mybatis-plus使用

文章目录 mybatis-plus使用一、依赖引入二、添加相关配置项三、功能详解1.自增主键2.逻辑删除3.操作时间自动填充4.其他字段自动填充5.分页查询6.自定义动态查询7.代码生成器8.代码生成器(自定义模板) mybatis-plus使用 一、依赖引入 pom.xml文件 <?xml version"1.…...

Oc语言学习 —— 重点内容总结与拓展(下)

类别&#xff08;分类&#xff09;和拓展 分类&#xff1a; 专门用来给类添加新方法 不能给类添加成员属性&#xff0c;添加成员属性也无法取到 注意&#xff1a;其实可与通过runtime 给分类添加属性&#xff0c;即属性关联&#xff0c;重写setter&#xff0c;getter方法 分类…...

智脑进化:神经网络如何从单层感知机迈向深度学习新纪元

第一章&#xff1a;神经元的启示——从生物大脑到人工神经元 1.1 生物神经元的智慧&#xff1a;860亿神经元的协同网络 人类大脑的860亿神经元通过突触形成动态网络&#xff0c;每个神经元通过树突接收信号&#xff0c;在胞体整合后经轴突传递输出。这种“接收-处理-输出”的…...

雷云4 鼠标滚轮单击失灵解决办法

问题现象&#xff1a;打开雷云4 &#xff0c;滚轮单击才有反应&#xff0c;退出雷云4&#xff0c;滚轮单击没反应。 解决方案&#xff1a; 打开雷云4&#xff0c; 选中鼠标中键&#xff0c;选择鼠标功能&#xff0c;选择滚轮单击&#xff0c;保存 然后退出后&#xff0c; …...

Spring Cloud动态配置刷新:@RefreshScope与@Component的协同机制解析

在微服务架构中&#xff0c;动态配置管理是实现服务灵活部署、快速响应业务变化的关键能力之一。Spring Cloud 提供了基于 RefreshScope 和 Component 的动态配置刷新机制&#xff0c;使得开发者可以在不重启服务的情况下更新配置。 本文将深入解析 RefreshScope 与 Component…...

vue2集成可在线编辑的思维导图(simple-mind-map)

最近要求做一个可在线编辑的思维导图&#xff0c;经过层层调研和实测&#xff0c;最简单的思维导图导图实现还得是simple-mind-map组件 simple-mind-map中文文档 当前我使用的是vue2项目&#xff0c;目前没试过是否支持vue3&#xff0c;但是看官网描述他们也给了有vue3的demo项…...

【开源Agent框架】CAMEL:角色扮演+任务分解

一、项目概览:重新定义智能体协作范式 CAMEL(Communicative Agents for “Mind” Exploration of Large Language Model Society)是由camel-ai社区开发的开源多智能体框架,致力于探索智能体的规模法则(Scaling Laws)。该项目通过构建包含百万级智能体的复杂社会系统,研…...

Elasticsearch-kibana索引操作

1索引模版 添加索引 PUT /_index_template/account_transaction {"priority": 0,"index_patterns": ["account_transaction*"],"template": {"settings": {"index": {"number_of_shards": "50&q…...

【python编程从入门到到实践】第十章 文件和异常

一、读取文件 pi_digits.txt3.1415926535897932384626433832791.读取文件的全部内容 # file_reader.pyfrom pathlib import Pathpath Path("pi_digits.txt") contents path.read_text() print(contents)2.相对文件路径和绝对文件路径 当相对路径行不通时&#x…...

Reactive与Ref的故事

Vue 3的两位"响应式英雄":Reactive与Ref的故事 基本介绍:响应式的两种武器 Vue 3提供了两种创建响应式数据的主要API:reactive()和ref()。它们像两种不同的魔法工具,各有所长,共同构建Vue的响应式王国。 ┌────────────────────────…...

基于Scrapy-Redis的分布式景点数据爬取与热力图生成

1. 引言 在旅游行业和城市规划中&#xff0c;热门景点的数据分析具有重要意义。通过爬取景点数据并生成热力图&#xff0c;可以直观展示游客分布、热门区域及人流趋势&#xff0c;为商业决策、景区管理及智慧城市建设提供数据支持。 然而&#xff0c;单机爬虫在面对大规模数据…...

MySQL数据库——支持远程IP访问的设置方法总结

【系列专栏】&#xff1a;博主结合工作实践输出的&#xff0c;解决实际问题的专栏&#xff0c;朋友们看过来&#xff01; 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实…...

现在环保方面有什么新的技术动态

环保领域的技术发展迅速&#xff0c;尤其在“双碳”目标、数字化转型和可持续发展背景下&#xff0c;涌现出许多创新技术和应用。以下是当前环保领域的新技术动态&#xff08;截至2024年&#xff09;&#xff1a; 一、碳中和与碳减排技术 CCUS&#xff08;碳捕集、利用与封存&a…...

[模型部署] 1. 模型导出

&#x1f44b; 你好&#xff01;这里有实用干货与深度分享✨✨ 若有帮助&#xff0c;欢迎&#xff1a;​ &#x1f44d; 点赞 | ⭐ 收藏 | &#x1f4ac; 评论 | ➕ 关注 &#xff0c;解锁更多精彩&#xff01;​ &#x1f4c1; 收藏专栏即可第一时间获取最新推送&#x1f514;…...

Neo4j 图书馆借阅系统知识图谱设计

一、数据模型设计 节点类型 读者(Reader) 属性: reader_id, name, age, gender, phone, email, register_date 图书(Book) 属性: book_id, title, author, publisher, publish_date, isbn, price, category 图书副本(BookCopy) 属性: copy_id, status (在馆/借出/维修), loca…...

android 安装openwrt 安正步骤

安装 QEMU 模拟器 bash 复制 编辑 pkg install wget pkg install qemu-utils pkg install qemu-system-aarch64-headless 可选 x86 模拟支持: bash 复制 编辑 pkg install qemu-system-x86-64-headless ✅ 下载 OpenWRT 镜像(armvirt 64) bash 复制 编辑 mkdir -p ~/openwr…...

大规模CFD仿真计算中,SIMPLE或者PISO算法中加速压力场方程迭代求解

文章目录 在SIMSOL或PISO算法中加速压力场方程的迭代求解是提高CFD计算效率的关键。以下从算法优化、数值技巧和并行计算等方面总结加速策略&#xff1a;**1. 压力方程求解器的选择与优化****2. 算法层面的加速****3. 离散格式与网格优化****4. 并行计算与硬件加速****5. 代码级…...

【C#】 lock 关键字

在 C# 里&#xff0c;lock 关键字就是对 Monitor.Enter/Exit 的简写。它的作用是保证“同一时刻只有一个线程能进入被保护的代码块”&#xff0c;从而避免多个线程同时修改同一个共享状态导致竞态条件&#xff08;race condition&#xff09;。 一、结合Jog 的例子讲解 // Mot…...

前端脚手架开发指南:提高开发效率的核心操作

前端脚手架通过自动化的方式可以提高开发效率并减少重复工作&#xff0c;而最强大的脚手架并不是现成的那些工具而是属于你自己团队量身定制的脚手架&#xff01;本篇文章将带你了解脚手架开发的基本技巧&#xff0c;帮助你掌握如何构建适合自己需求的工具&#xff0c;并带着你…...

职坐标AIoT技能培训课程实战解析

职坐标AIoT技能培训课程以人工智能与物联网技术深度融合为核心&#xff0c;构建了“理论实战行业应用”三位一体的教学体系。课程体系覆盖Python编程基础、传感器数据采集、边缘计算开发、云端服务部署及智能硬件开发全链路&#xff0c;通过分层递进的知识模块帮助学员建立系统…...