Nacos服务发现和配置管理
目录
一、Nacos概述
1. Nacos 简介
2. Nacos 特性
2.1 服务发现与健康监测
2.2 动态配置管理
2.3 动态DNS服务
2.4 其他关键特性
二、 服务注册和发现
2.1 核心概念
2.2 Nacos注册中心
2.3 Nacos单机模式
2.4 案例——服务注册与发现
2.4.1 父工程
2.4.2 order-provider服务提供者
2.4.3 order-consumer服务消费者
2.5.4 实例结果
三、RestTemplate 远程调用
1. RestTemplate 简介
2. 常用请求方法
3. 集成 Nacos 服务发现
四、配置管理
1. 配置共享
1.1.添加共享配置
1.2.拉取共享配置
2. 配置热更新
2.1 nacos配置热更新前提
3. 共享配置和配置热更新
实践nacos服务注册发现和配置管理https://download.csdn.net/download/m0_74808313/90587372
一、Nacos概述
1. Nacos 简介
Nacos 是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它是 Spring Cloud Alibaba 的组件,主要负责服务注册、发现和配置。
Nacos(Dynamic Naming and Configuration Service)是 Spring Cloud Alibaba 的核心组件,提供两大核心能力:
-
服务发现与健康管理:微服务的注册、发现和健康监测。
-
动态配置管理:集中化管理所有微服务的配置,支持动态刷新。
2. Nacos 特性
2.1 服务发现与健康监测
-
多协议支持
-
同时支持 DNS-Based 和 RPC-Based(如Dubbo、gRPC)服务发现。
-
提供 OpenAPI 和 SDK 两种接入方式,兼容多种技术栈。
-
-
健康检查机制
-
双模式检测:
-
Agent上报模式:服务实例主动上报心跳(适合云环境)。
-
服务端主动探测:Nacos Server 定期检查实例状态(如TCP端口探测)。
-
-
多层级监测:支持传输层(端口存活)和应用层(如HTTP接口健康)检查。
-
-
流量管控
-
自动屏蔽不健康实例,结合 权重配置 实现灰度发布。
-
2.2 动态配置管理
-
核心能力
-
集中化存储:所有微服务配置统一管理,支持 YAML/Properties/JSON 格式。
-
动态刷新:通过
@RefreshScope
实时生效,无需重启服务。 -
版本控制:保留配置历史版本,支持一键回滚。
-
-
高级功能
-
金丝雀发布:按比例分批推送配置变更。
-
监听查询:实时跟踪客户端配置更新状态。
-
敏感配置加密:支持密码等敏感信息的加密存储。
-
2.3 动态DNS服务
-
权重路由
-
为服务实例分配权重(如新版本10%,旧版本90%),实现平滑迁移。
-
-
灵活路由策略
-
支持基于元数据(如机房、版本)的路由,适配多活架构。
-
2.4 其他关键特性
-
多环境隔离
-
通过 Namespace(开发/测试/生产)和 Group(业务分组)实现配置和服务隔离。
-
-
高可用架构
-
集群部署 + MySQL持久化,避免单点故障。
-
-
易用性
-
提供可视化控制台,支持服务拓扑图、配置diff对比等运维功能。
-
二、 服务注册和发现
2.1 核心概念
-
服务注册:微服务启动时向 Nacos Server 注册自己的信息(IP、端口、服务名等)。
-
服务发现:消费者通过服务名从 Nacos Server 获取可用服务实例列表。
-
健康检查:Nacos 主动监测服务实例的健康状态,自动剔除故障节点。
2.2 Nacos注册中心
Nacos 作为注册中心的核心功能是管理微服务的服务注册、服务发现和健康监测,其架构如下图所示:
[服务提供者] → 注册 → [Nacos Server] ← 发现 ← [服务消费者]心跳维护 健康检查
工作流程
-
服务注册
-
服务启动时,通过
spring-cloud-starter-alibaba-nacos-discovery
向 Nacos Server 注册实例信息(IP、端口、服务名等)。 -
示例注册数据:
{"serviceName": "user-service","ip": "192.168.1.100","port": 8080,"metadata": {"version": "v1", "zone": "shanghai"} }
-
-
服务发现
-
消费者通过服务名查询可用实例列表,默认采用 轮询负载均衡 策略。
-
发现示例代码:
@Autowired private DiscoveryClient discoveryClient;List<ServiceInstance> instances = discoveryClient.getInstances("user-service");
-
-
健康维护
-
客户端每 5 秒发送一次心跳(可配置),Nacos Server 15 秒未收到心跳则标记实例为不健康。
-
不健康实例不会被返回给消费者。
-
2.3 Nacos单机模式
在使用 Nacos 之前,需要先下载并安装 Nacos Server。Nacos Server 有两种运行模式:
standalone(单机)和 cluster(集群)。Nacos Server 单机模式运行步骤如下所示。
Nacos Server 下载 | Nacos 官网https://nacos.io/download/nacos-server/
1. 在 Nacos 官方网站根据不同的操作系统选择相应的安装包进行下载。
2. 将下载的文件解压后进入 nacos\bin 目录,打开命令提示符窗口,执行 shell 命令 "startup.cmd -m standalone",以单机模式启动 Nacos,如图所示。
3. 在浏览器输入地址:http://127.0.0.1:8848/nacos 即可访问,默认账号和密码都是 nacos
。
2.4 案例——服务注册与发现
案例说明:创建两个简单的微服务来模拟服务提供者和服务消费者,并将其整合到nacos,实现服务的注册与发现。
2.4.1 父工程
父工程统一管理Spring Boot、Spring Cloud和Spring Cloud Alibaba。
父工程选用的版本如下:
- Spring Boot 2.7.12
- Spring Cloud 2021.0.3
- Spring Cloud Alibaba 2021.0.4.0
父工程的pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.hl</groupId><artifactId>shop</artifactId><version>1.0.0</version><packaging>pom</packaging><modules><module>order-consumer</module><module>order-provider</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/></parent><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-cloud.version>2021.0.3</spring-cloud.version><spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version><spring-boot-web.version>2.7.12</spring-boot-web.version></properties><dependencyManagement><dependencies><!--spring cloud--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--spring cloud alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><!--单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies></project>
2.4.2 order-provider服务提供者
在order-provider的pom.xml
中添加依赖:
<!--nacos 服务注册发现-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
在order-provider的application.yml
中添加nacos地址配置:
server:port: 8081
spring:application:name: order-providerprofiles:active: devcloud:nacos:server-addr: localhost:8848 # nacos地址
在启动类追加@EnableDiscoveryClient注解开启服务注册与发现功能:
package com.hl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}
}
2.4.3 order-consumer服务消费者
在order-consumer的pom.xml
中添加依赖:
<!--nacos 服务注册发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--负载均衡器--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>
在order-provider的application.yml
中添加nacos地址配置:
server:port: 8082
spring:application:name: order-consumerprofiles:active: devcloud:nacos:server-addr: localhost:8848 # nacos地址
在启动类追加@EnableDiscoveryClient注解开启服务注册与发现功能:
package com.hl;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}
2.5.4 实例结果
单机模式启动nacos,在服务列表中可看到两个实例服务:
三、RestTemplate 远程调用
1. RestTemplate 简介
RestTemplate
是 Spring 提供的用于同步 HTTP 请求的客户端工具,支持 RESTful 风格的远程服务调用。在微服务架构中,通常配合 服务发现(如Nacos) 和 负载均衡 使用。
2. 常用请求方法
方法 | 说明 | 示例 |
---|---|---|
getForObject() | GET请求,返回响应体 | restTemplate.getForObject(url, String.class) |
getForEntity() | GET请求,返回完整响应(含状态码等) | restTemplate.getForEntity(url, User.class) |
postForObject() | POST请求,返回响应体 | restTemplate.postForObject(url, requestObj, String.class) |
exchange() | 通用请求(可指定HTTP方法) | restTemplate.exchange(url, HttpMethod.PUT, entity, String.class) |
delete() | DELETE请求 | restTemplate.delete(url) |
常见的Get、Post、Put、Delete请求都支持,如果请求参数比较复杂,还可以使用exchange方法来构造请求。
Map map = restTemplate.exchange("http://localhost:8082/order",HttpMethod.GET,null,Map.class).getBody();
3. 集成 Nacos 服务发现
将RestTemplate注册为一个Bean:
@Bean
@LoadBalanced // 关键注解:启用服务名解析和负载均衡
public RestTemplate restTemplate() {return new RestTemplate();
}
发起 HTTP 请求:
@Autowired
private RestTemplate restTemplate;// 直接使用服务名(user-service)代替具体IP和端口
String url = "http://user-service/users/1";
String response = restTemplate.getForObject(url, String.class);
四、配置管理
Nacos 配置管理提供集中式、动态化的配置管理能力,解决微服务架构中配置分散、多环境管理等问题。
1. 配置共享
我们可以把微服务共享的配置抽取到Nacos中统一管理,这样就不需要每个微服务都重复配置了。分为两步:
-
在Nacos中添加共享配置
-
微服务拉取配置
1.1.添加共享配置
在配置管理
->配置列表
中新建一个配置:shared-jdbc.yaml
1.2.拉取共享配置
接下来,我们要在微服务拉取共享配置。将拉取到的共享配置与本地的application.yaml
配置合并,完成项目上下文的初始化。
读取Nacos配置是SpringCloud上下文(ApplicationContext
)初始化时处理的,发生在项目的引导阶段。然后才会初始化SpringBoot上下文,去读取application.yaml
。
SpringCloud在初始化上下文的时候会先读取一个名为bootstrap.yaml
(或者bootstrap.properties
)的文件,如果我们将nacos地址配置到bootstrap.yaml
中,那么在项目引导阶段就可以读取nacos中的配置了。
引入依赖:
<!--nacos配置管理--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--读取bootstrap文件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>
在resource目录下新建bootstrap.yaml:
spring:profiles:active: devcloud:nacos:server-addr: localhost:8848 # nacos地址config:file-extension: yaml # 文件后缀名shared-configs: # 共享配置- dataId: shared-jdbc.yaml
重启服务,项目正常运行则说明共享的配置拉取成功。
2. 配置热更新
配置热更新(Dynamic Configuration Update)指在应用程序不重启的情况下,实时修改并生效配置参数的能力。在微服务架构中,这是通过配置中心(如Nacos、Apollo)实现的。
2.1 nacos配置热更新前提
①文件的dataId格式:
[服务名]-[spring.active.profile].[后缀名]
文件名称由三部分组成:
-
服务名
:该微服务的名称 -
spring.active.profile
:就是spring boot中的spring.active.profile
,可以省略,则所有profile共享该配置 -
后缀名
:例如yaml
②微服务中要以特定方式读取要配置热更新的属性(两种)
方式1:
@Component
@ConfigurationProperties("order")
@Data
public class OrderProperties {private String name;private String address;
}
方式2:
@RestController
@RefreshScope // 关键注解:允许动态刷新
public class UserController {@Value("${user.max-active}")private Integer maxActive;@GetMapping("/config")public String getConfig() {return "MaxActive: " + maxActive;}
}
3. 共享配置和配置热更新
对于共享配置,默认不自动更新,可以在dataId后加refresh:true设置为自动更新;
对于热更新,微服务会自动拉取这类配置,因此无需在bootstrap中配置
spring:cloud:nacos:config:shared-configs:- data-id: common.yamlgroup: DEFAULT_GROUPrefresh: true
相关文章:
Nacos服务发现和配置管理
目录 一、Nacos概述 1. Nacos 简介 2. Nacos 特性 2.1 服务发现与健康监测 2.2 动态配置管理 2.3 动态DNS服务 2.4 其他关键特性 二、 服务注册和发现 2.1 核心概念 2.2 Nacos注册中心 2.3 Nacos单机模式 2.4 案例——服务注册与发现 2.4.1 父工程 2.4.2 order-p…...
DeepSeek实战:如何用AI工具提升销售转化率?
销售行业正在经历一场前所未有的变革,AI技术的快速发展让传统销售模式面临巨大挑战。如今,像DeepSeek这样的智能工具已经能高效完成客户触达、需求分析、快速回复等基础销售工作,甚至比人类更快、更精准。许多公司已经发现,AI销售…...
无锡无人机培训学校哪家好?
无锡无人机培训学校哪家好?近年来,无人机技术在各个领域的应用越来越广泛,从农业、物流到影视制作,无人机已经成为了许多行业不可或缺的工具。这种趋势促使越来越多的人希望通过系统的培训获得无人机驾驶技能。然而,在…...
从数据格式转换的角度 flink cdc 如何写入paimon?
从数据格式转换的角度 flink cdc 如何同步数据,写入paimon? 从一个测试用例着手 org/apache/flink/cdc/connectors/paimon/sink/v2/PaimonSinkITCase.java public void testSinkWithDataChange(String metastore, boolean enableDeleteVector)throws …...
Flink的 RecordWriter 数据通道 详解
本文从基础原理到代码层面逐步解释 Flink 的RecordWriter 数据通道,尽量让初学者也能理解。 1. 什么是 RecordWriter? 通俗理解 RecordWriter 是 Flink 中负责将数据从一个任务(Task)发送到下游任务的组件。想象一下,…...
从keys到SCAN:Redis批量删除的进化之路
标签:Redis、批量删除、前缀匹配、性能优化 一、痛点分析:为什么需要批量删除指定前缀的键? 在 Redis 使用过程中,我们经常会遇到这样的场景: 需要对某一类数据进行清理,例如用户会话、缓存数据等,而这些数据通常以某种前缀命名(如 user:session:*、cache:data:*)。如…...
uniapp实现目录树效果,异步加载数据
uniapp目录树 父组件调用目录树组件 <DaTreeVue2:data"treeData":field"{label: name,key: id,}"change"handleTreeChange":defaultCheckedKeys"addressDefaultCheckedKey":defaultExpandedKeys"addressDefaultCheckedKey&qu…...
机器学习--网格搜索
引言 在机器学习的广袤世界里,构建一个性能卓越的模型是众多从业者不懈追求的目标。而模型性能的好坏,很大程度上依赖于超参数的设置。今天,我们就来深入探讨一种常用且有效的超参数调优方法 —— 网格搜索。 一、什么是网格搜索 网格搜索…...
Asp.NET Core WebApi 创建带鉴权机制的Api
构建一个包含 JWT(JSON Web Token)鉴权的 Web API 是一种常见的做法,用于保护 API 端点并验证用户身份。以下是一个基于 ASP.NET Core 的完整示例,展示如何实现 JWT 鉴权。 1. 创建 ASP.NET Core Web API 项目 使用 .NET CLI 或 …...
同步电路与异步电路详解
一、基本概念与核心区别 特性同步电路异步电路时钟依赖依赖全局时钟信号(如CLK)统一触发所有操作无全局时钟,依赖事件(如信号跳变)或握手协议时序控制所有操作在时钟边沿(上升/下降沿)同步执行…...
Vccaux_IO在DDR3接口中的作用
一、Vccaux_IO在DDR3接口中的作用 1.vccaux_io通常为FPGA的IO bank的辅助电源,用于支持特定电压的IO标准 2.在DDR3接口中,FPGA的IO bank需要DDR3芯片的电压(1.5v/1.35v)匹配 3.Vccaux_IO用于为FPGA的DDR3接口I/O Bank供电,其电压值、噪声和稳…...
5分钟读懂ArgoCD:在Kubernetes中实现持续部署
Kubernetes中的Argo CD介绍 Argo CD是用于Kubernetes的声明式GitOps持续交付工具。它遵循GitOps模式,以Git仓库作为定义所需应用程序状态的唯一真实来源,能在指定的目标环境中自动部署应用程序,并持续监控应用程序的运行状态,确保…...
Redis与Caffeine的结合使用详解(高效的二级缓存解决方案)
目录 一、Redis与Caffeine的结合使用(一)引入依赖(二)配置缓存(三)配置 Caffeine 缓存(四)配置 Redis 缓存(五)使用缓存 二、总结 一、Redis与Caffeine的结合…...
leetcode 322. Coin Change
这道题也是完全背包问题。注意与第518题和第377题对比。 这道题要求的是最少可以用多少个物品装满背包,不关心所选物品的组合方式和排列方式。因此,外层循环既可以是对物品的遍历,也可以是对容量的遍历。 第518题,要求的是装满背…...
mac|使用scrcpy实现无线Android投屏
scrcpy是一个开源项目,从项目的releases可以得知它适用于windows、linux、mac github:https://github.com/Genymobile/scrcpy/releases github中提供了应用于mac系统的静态版本(也就是上图的scrcpy-macos-aarch64-v3.1.tar.gz和scrcpy-macos…...
2025年04月11日Github流行趋势
项目名称:ml-course 项目地址url:https://github.com/girafe-ai/ml-course项目语言:Jupyter Notebook历史star数:2880今日star数:207项目维护者:neychev, girafeai, v-goncharenko, vmarchenkoff, HCL-271项…...
深入浅出Redis 缓存使用问题 | 长文分享
目录 数据一致性 先更新缓存,后更新数据库【一般不考虑】 先更新数据库,再更新缓存【一般不考虑】 先删除缓存,后更新数据库 先更新数据库,后删除缓存【推荐】 怎么选择这些方案?采用哪种合适? 缓存…...
PINN:用深度学习PyTorch求解微分方程
神经网络技术已在计算机视觉与自然语言处理等多个领域实现了突破性进展。然而在微分方程求解领域,传统神经网络因其依赖大规模标记数据集的特性而表现出明显局限性。物理信息神经网络(Physics-Informed Neural Networks, PINN)通过将物理定律直接整合到学习过程中&a…...
Ubuntu vs CentOS:Shell 环境加载机制差异分析
CentOS与Ubuntu Shell环境加载机制差异及解决方案 一、问题现象还原 在 Ubuntu 系统中,希望登录时 /etc/profile.d/ipenv.sh 脚本未自动执行,而在 CentOS 上正常工作的根本原因是: Ubuntu 和 CentOS 采用了不同的 shell 初始化机制&#x…...
在 macOS 上修改 最大文件描述符限制(Too many open files) 和 网络端口相关参数 需要调整系统级配置的详细步骤
在 macOS 上修改 最大文件描述符限制(Too many open files) 和 网络端口相关参数 需要调整系统级配置。以下是详细步骤: 在 macOS 上修改 最大文件描述符限制(Too many open files) 和 网络端口相关参数 需要调整系统级…...
C语言 |位域结构体
在C语言中,位域结构体(Bit-field Structure)是一种通过按位分配内存优化存储空间的数据结构,特别适用于需要精确控制二进制位操作的场景(如嵌入式开发、硬件寄存器操作等)。以下是关于位域结构体的核心要点…...
Charles抓包-安装和IOS抓包指导
网络抓包工具使用指南 下载安装 目前市面上主流的抓包工具包括Charles和Sniff Master。其中Charles是一款老牌抓包工具,功能强大;而Sniff Master作为后起之秀,界面简洁,操作更加人性化。 建议从官网下载最新版本: …...
Redis 学习目标
🎯 Redis 学习目标(开发者视角) ✅ 一、学习完成后能掌握的核心能力: 分类具体内容📦 基础能力熟练掌握 Redis 五大数据结构(String、List、Hash、Set、ZSet),会用也会选对场景&am…...
Redis最佳实践——性能优化技巧之Pipeline 批量操作
Redis Pipeline批量操作在电商应用中的性能优化技巧 一、Pipeline核心原理与性能优势 1. 工作机制对比: sequenceDiagramtitle 常规请求 vs Pipeline请求# 常规模式Client->>Redis: 命令1Redis-->>Client: 响应1Client->>Redis: 命令2Redis--&g…...
Redis 集群(Cluster)
1. Redis 集群概述 Redis 集群是一种分布式架构,旨在提供数据分区和高可用性。它能够通过将数据分散到多个节点上来扩展 Redis,使其能够处理更多的数据量和更高的并发请求。Redis 集群实现了自动分片、故障转移和复制等功能。 Redis 集群与传统的单节点…...
XSS 跨站SVGPDFFlashMXSSUXSS配合上传文件添加脚本
#MXSS : https://www.fooying.com/the-art-of-xss-1-introduction/ #UXSS : Universal Cross-Site Scripting(一般是浏览器自身的问题) UXSS 是利用浏览器或者浏览器扩展漏洞来制造产生 XSS 并执行代码的一种攻击类型。 MICR…...
数据库主从延迟全解析:原因、影响与解决之道
目录 一、引言:理解数据库主从架构 二、数据库主从延迟的定义与测量 2.1 主从延迟的技术定义 2.2 如何测量主从延迟 2.3 主从延迟对系统的影响 三、主从延迟的常见原因分析 3.1 网络延迟因素 3.1.1 网络质量与带宽限制 3.1.2 地理位置分布造成的延迟 3.2 …...
BERT、T5、ViT 和 GPT-3 架构概述及代表性应用
BERT、T5、ViT 和 GPT-3 架构概述 1. BERT(Bidirectional Encoder Representations from Transformers) 架构特点 基于 Transformer 编码器:BERT 使用多层双向 Transformer 编码器,能够同时捕捉输入序列中每个词的左右上下文信息…...
第十七天 - Jenkins API集成 - 流水线自动化 - 练习:CI/CD流程优化
前言 在DevOps实践中,持续集成与持续交付(CI/CD)是现代软件工程的核心支柱。作为业界使用最广泛的自动化服务器,Jenkins凭借其强大的插件生态和灵活的流水线配置能力,成为企业级CI/CD落地的首选工具。本文将深入解析J…...
SageAttention2
“SageAttention2: Efficient Attention with Thorough Outlier Smoothing and Per-thread INT4 Quantization”由Jintao Zhang等人撰写。文章提出SageAttention2,通过线程级INT4量化、Q矩阵平滑、两级累加策略等技术,在提升注意力计算效率的同时保持精度…...
.NET WPF 可视化树(Visual Tree)
.NET WPF 可视化树(Visual Tree) WPF 的可视化树(Visual Tree)是描述用户界面元素层级关系的核心概念之一,它与逻辑树(Logical Tree)共同构成了 WPF 的 UI 架构。以下是关于 WPF 可视化树的详细…...
磁盘存储下红黑树、B 树与 B + 树的原理、操作及对比
前置知识 磁盘 在计算机系统中,数据存储与检索效率深刻影响着整体性能。磁盘作为大容量数据的主要载体,其独特的 I/O 特性与树状数据结构的结合,催生出 B 树与 B 树这两种经典方案。了解它们如何适配磁盘存储,是揭开数据库、文…...
kubernetes》》k8s》》Volume 数据卷 PVC PV NFS
为啥需要数据卷 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重…...
支持多格式且免费的图片转换工具推荐
软件介绍 今天要给大家推荐一款超好用的开源图片格式转换工具。这款工具完全免费,没有广告的干扰,让用户在使用过程中极为舒心。 ImageConverter图片格式转换 这款工具使用起来相当便捷,无需进行安装操作,只要轻轻双击图标&…...
DAPP实战篇:使用web3.js实现前端输入钱包地址查询该地址的USDT余额—操作篇
专栏:区块链入门到放弃查看目录-CSDN博客文章浏览阅读396次。为了方便查看将本专栏的所有内容列出目录,按照顺序查看即可。后续也会在此规划一下后续内容,因此如果遇到不能点击的,代表还没有更新。声明:文中所出观点大多数源于笔者多年开发经验所总结,如果你想要知道区块…...
K8S-证书更新时-误删除组件-
K8S 证书更新时-吴删除组件 [rootmaster ~] eth0 172.17.64.32 # docker rm -f docker ps | grep -E apiserver|scheduler|controller-manager| awk {print$1} 7856f2a3068e 2e1a6956d8a1 e9e3cb7870a9 31b19f4e2b22 c028146f88a5 abe4207808a3 [rootmaster ~] eth0 172.17.…...
第二章 Python爬虫篇—数据解析与提取
目录 一.数据解析概述 二.re解析和正则表达式 三.bs4解析-HTML语法 四.Xpath解析 此章节主要讲解:数据解析概述、re模块、bs4解析-html语法、xpath解析以及正则表达式。其中正则表达式我已经写过相关笔记,这里浅略叙述,如果不懂请看我笔记…...
数据仓库标准库模型架构相关概念浅讲
数据仓库与模型体系及相关概念 数据仓库与数据库的区别可参考:数据库与数据仓库的区别及关系_数据仓库和数据库-CSDN博客 总之,数据库是为捕获数据而设计,数据仓库是为分析数据而设计 数据仓库集成工具 在一些大厂中,其会有自…...
【区块链+ 人才服务】特范云区块链教学管理平台 | FISCO BCOS 应用案例
北京特范云科技有限公司利用大数据与人工智能等核心技术优势, 构建了“学、练、赛、评”一体化智慧体育课堂,促进教育技术、体育科学、IT 技术与体育教学的深度融合。公司首次提出了“体育动作积木”的教学概念, 通过区块链技术将学生的体测体…...
第一节:React 基础篇-React虚拟DOM原理及Diff算法优化策略
必考点:虚拟DOM树对比(同级比较、Key的作用、组件类型判断) 延伸:React 18中并发更新对Diff算法的影响 React虚拟DOM原理及Diff算法优化策略 虚拟DOM核心原理 概念: • 虚拟DOM(Virtual DOM)…...
MQTT的构成、使用场景、工作原理介绍
一、MQTT内容简介 MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议【适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境】它在物联网应用中广受欢迎,能够实现传感器、执行器和其它设备之间的…...
idea光标变成白色方块的解决方法
在使用 IDEA 进行编程时,你可能会遇到这样一个情况:原本纤细的光标突然变成了白色粗块,这不仅影响视觉体验,还可能在输入时带来困扰。别担心,本文将为你详细剖析该问题出现的原因,并提供有效的解决办法。…...
python manimgl数学动画演示_微积分_线性代数原理_ubuntu安装问题[已解决]
1.背景 最近调研python opencv, cuda加速矩阵/向量运算, 对于矩阵的线性变换, 秩, 转秩, 行列式变化等概概念模糊不清. 大概课本依旧是天书, 于是上B站搜索线性代数, 看到 3Blue1Brown 线性变换本质 视频, 点击观看. 惊为天人 --> 豁然开朗 --> 突然顿悟 --> 开心不已…...
如何为C++实习做准备?
博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇…...
Linux 安装 vscode
使用包管理器安装(推荐) 对于基于 Debian 的系统(如 Ubuntu): sudo apt update sudo apt install software-properties-common apt-transport-https wget -qO- https://packages.microsoft.com/keys/microsoft.asc …...
淘宝商品数据实时抓取 API 开发指南:从接口申请到数据解析实战
一、引言 在当今电商蓬勃发展的时代,淘宝作为国内电商巨头,其平台上汇聚了海量商品信息。对于电商从业者、数据分析爱好者以及众多依赖淘宝商品数据开展业务的企业而言,能够实时获取淘宝商品数据具有极高价值。例如,电商运营者…...
明远智睿SSD2351核心板在物联网领域的应用实践
物联网作为当今科技发展的热门领域,将无数设备连接在一起,实现数据的采集、传输与共享,构建起一个智能化的世界。在这庞大的物联网体系中,核心板扮演着至关重要的角色,明远智睿SSD2351核心板以其独特优势,在…...
这种情况是应为VScode的版本太新了,更新到1.86版本后要求远程连接服务器的内核版本不符合条件
这种情况是应为VScode的版本太新了,更新到1.86版本后要求远程连接服务器的内核版本不符合条件 解决方法 vscode降级,使用1.86以前的版本。亲测这种方法成功解决 首先关闭VSCode自动更新 Windows下载1.85版本链接:https://update.code.visua…...
996引擎-源码学习:PureMVC Lua 中的 Facade 类
996引擎-源码学习:PureMVC Lua 中的 Facade 类 1. 核心概念1.1 外观模式1.2 多例模式2. 关键组件NotificationController:ModelView3. 主要功能4. 初始化流程5. 通信机制6. 生命周期管理1. Facade 初始化流程图2. 发送通知时序图中介者 PlayerBestRingLayerMediatorOpenLayer …...
前端学习10—Ajax
1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML 通过 AJAX 可以在浏览器中向服务器发送异步请求,最大优势为:无刷新获取数据 AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方…...