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

SpringCloud 学习笔记2(Nacos)

Nacos

Nacos 下载

Nacos Server 下载 | Nacos 官网

下载、解压、打开文件:

image-20250315133920393

更改 Nacos 的启动方式

Nacos 的启动模式默认是集群模式。在学习时需要把他改为单机模式。

image-20250315134418420

cluster 改为 standalone,记得保存!

image-20250315134709848

启动startup.cmd

Ubuntu 启动命令:bash startup.sh -m standalone

image-20250315134850970

启动成功后进入 http://127.0.0.1:8848/nacos/

image-20250315135032630

Nacos 使用

引入依赖

在父项目引入:

<properties><spring-cloud-alibaba.version>2022.0.0.0-RC2</spring-cloud-alibaba.version>
</properties><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>

<scope>import</scope> 表示这个依赖直接注入到父项目中。

子项目中引入:

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>

修改配置

子项目的 yml 文件:

spring:application:name: order-servicecloud:nacos:discovery:# Nacos 的服务器地址server-addr: 101.201.246.67:8848

更改代码

更改之前在项目中写死的 url。

        // 更改之前写死的 url// String url = "http://127.0.0.1:9090/product/" + orderInfo.getProductId();String url = "http://product-service/product/" + orderInfo.getProductId();

加上 @LoadBalanced 注解

@Configuration
public class BeanConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
}

启动服务,打开 Nacos 页面。

image-20250315164856289

服务下线

选择要进行管理的服务,点击详情

image-20250315165026714

选择要进行下线的服务器,点击下线。

image-20250315165107671

image-20250315165234047

权重配置

选择要进行管理的服务,点击详情

image-20250315165026714

选择要进行管理的服务器,点击编辑。

image-20250315165458357

进行权重设置。

image-20250315165517499

如果权重没有生效,可以查看:如何解决MSE Nacos上修改服务实例的权重不生效问题_微服务引擎(MSE)-阿里云帮助中心

因为我在项目中使用了 Loadbalance 所以设置的权重并没有生效。

要想让权重生效,需要在消费者应用的配置文件中添加:

# 开启 Nacos 的负载均衡策略
spring:cloud:loadbalancer:nacos:enabled: true

需要注意的是,服务配置权重是非严格的。

什么叫非严格呢?

举个例子:服务 A 占权重的 50%,服务 B 占权重的 50%,如果来了两个请求,不一定是 A 处理一个请求,B处理一个请求。 如果来了 2 千万次的请求,A、B 处理的请求数接近 1 千万,而不是严格的等于 1 千万。

同集群优先访问

修改配置文件:

spring:cloud:nacos:discovery:# 修改集群名称cluster-name:  BJ

效果:

image-20250315194509042

修改同一个服务,不同端口号的配置:

复制配置(右键你要修改的配置,按下图顺序点击)

image-20250315195018691

选择要修改的服务,点击 Edit

image-20250315194845501

修改配置,如果要修改多个配置,中间使用空格分隔。

image-20250315195211978

生产者服务有3个,分别是 9090、9091 和 9092,9090 在集群 BJ 中,而9091 和 9092 在 集群 SH 中 。

image-20250315195545063

消费者服务有一个,它在集群 BJ 中。

image-20250315200012526

此时,多次调用消费者服务,发现消费者服务会优先访问同集群下的生产者服务,也就是 9090。

image-20250315200146101

image-20250315200159855

image-20250315200231957

这就是同集群优先访问。

如果同集群下的生产者服务都挂掉了,那么本集群下的消费者服务就会转而访问不同集群下的生产者服务。

比如说,上述的 9090 挂掉了,那么 8080 就会开始访问 9091 和 9092 。

Nacos 健康检查

Nacos 提供了两种健康检查机制。

  1. 客户端主动上报机制。
    • 客户端通过心跳上报方式告知服务器健康状态,默认的心跳间隔为 5 秒。
    • Nacos 会在超过 15 秒未收到心跳后将实例设置为不健康状态,超过 30 秒就会将实例删除。
  2. 服务器端反向探测机制。
    • Nacos 主动探知客户端健康状态,默认间隔为 20 秒。
    • 健康检查失败后实例会标记为不健康,不会被立即删除。

image-20250315202436455

Nacos 服务实例类型介绍

Nacos 的服务实例类型分为临时实例和非临时实例。

  • 临时实例(默认类型):实例处于不健康状态超过一定时长,会被从服务列表删除。临时实例采用的是客户端主动上报机制。
  • 非临时实例(也叫做永久实例):实例哪怕一直处于不健康状态,也不会被删除。非临时实例采用的是服务器反向探测机制。
image-20250315204522661

非临时实例设置方法:

在配置文件中添加

spring:cloud:nacos:discovery:# false 表示修改为非临时实例ephemeral: false 

由于 Nacos 会记录每一个实例的 IP,端口号以及实例类型,Nacos 不允许将临时实例修改为非临时实例,非临时实例也不能修改为临时实例。如果想修改,则需要停止 Nacos 并删除 Nacos 中的 raft 文件夹。

raft 文件夹在 nacos/data/protocol/目录下。

删除后重启 Nacos,即可修改成功。

环境隔离

创建命名空间

image-20250315211304607

起名字

image-20250315211328555

将实例放在指定环境

查看命名空间 ID

image-20250315211753949

修改 yml 配置

spring:cloud:nacos:discovery:# 设置服务管理的命名空间,后面跟命名空间的 IDnamespace: 031fd6a5-8ead-4999-bdeb-4733fb730182

不在同一命名空间下的服务不能互相访问,这就是 Nacos 的环境隔离。

Nacos 配置中心

配置中心的流程
image-20250315212731526
  1. 服务启动时,从配置中心读取配置内容,进行初始化。
  2. 配置修改时,通知微服务,实现配置的更新功能。
Nacos 配置中心使用

添加配置

image-20250315213502329

image-20250315213707268

image-20250315220545561

Data ID 介绍

image-20250317164736119

当三个配置同时存在,且各不相同时,它们的优先级为:

1. ${prefix}-${spring.profiles.active}.${file-extension}
2. ${prefix}.${file-extension}
3. ${prefix}

例如有如下三个配置:

image-20250317170024692

它们的优先级为:

image-20250317170441984

在生产者服务中引入依赖

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- SpringCloud 2020.*之后版本需要引⼊bootstrap--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

修改配置文件

在生产者服务中创建 bootstrap.yml 或者 bootstrap.properties 文件。

在 bootstrap.yml 或者 bootstrap.properties 中添加以下配置。

spring:application:name: product-servicecloud:nacos:config:# Nacos 的服务器地址(从哪里获取配置信息)server-addr: 101.201.246.67:8848

从 nacos 读取配置文件

// @RefreshScope 这个注解的作用是当 nacos 中的配置发生更改,服务实例也同步更改配置。也就是配置热更新。
@RefreshScope
@RestController
public class NacosController {@Value("${nacos.config}")private String nacosConfig;@RequestMapping("getConfig")public String getConfig() {return "从 Nacos 中获取配置项 nacos.config:" + nacosConfig;}
}

image-20250315220720394

Nacos 配置管理的命名空间和服务器列表的命名空间是分别设置的,默认是public。

Nacos 命名空间配置依然在 bootstrap.properties 中进行设置。

程序会先读取 bootstrap 中的配置,然后再读取 application 中的配置。

设置命名空间:

  1. 复制命名空间 ID

    image-20250317163501928

  2. 修改 bootstrap.properties 或 bootstrap.yml 文件

    spring:cloud:nacos:config:namespace: 031fd6a5-8ead-4999-bdeb-4733fb730182   #配置中心的命名空间 ID
    

重启服务、访问接口,可以看到修改成功了!

image-20250317163710587

部署到服务器

参考 博客系统笔记总结 2( Linux 相关) 中的部署 Web 项目到 Linux

有一点不同的是,由于程序会先读取 bootstrap 中的配置,然后再读取 application 中的配置。

为了方便管理,我们可以把 application.yml 删除,此时目录结构就变成了这样:

image-20250317172133727

然后在 bootstrap 中添加:

spring:profiles:active: @profile.name@

但是因为 bootstrap 并不能识别 @ 符号,所以我们还需要在 pom 中添加:

    <build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/**</include></includes></resource></resources></build>

Eureka 和 Nacos 的区别

共同点:都支持服务注册和服务发现。

区别:

  1. Nacos 除了服务注册和服务发现外,还提供了配置中心、流量管理和 DNS 服务等功能。

  2. CAP 理论

    Eureka 遵循 AP 原则,Nacos 可以切换 AP 模式和 CP 模式,默认为 AP模式。

    Nacos 根据配置识别 AP 和 CP 模式,如果注册 Nacos 的 Client 的节点是临时节点,那么 Nacos 对这个 Client 节点的效果就是 AP,反之是 CP。AP 和 CP 可以同时混合存在。

  3. 服务发现

    Eureka:基于拉模式。Eureka Client 会定期从 Server 拉取服务信息,有缓存,默认每 30s 拉取一次。

    Nacos:基于推送模式。服务列表有变化时实时推送给订阅者,服务端和客户端保持心跳连接。


本文到这里就结束啦~

在这里插入图片描述

相关文章:

SpringCloud 学习笔记2(Nacos)

Nacos Nacos 下载 Nacos Server 下载 | Nacos 官网 下载、解压、打开文件&#xff1a; 更改 Nacos 的启动方式 Nacos 的启动模式默认是集群模式。在学习时需要把他改为单机模式。 把 cluster 改为 standalone&#xff0c;记得保存&#xff01; 启动startup.cmd Ubuntu 启动…...

Qt5.15.2实现Qt for WebAssembly与示例

目录 1.什么是Qt for WebAssembly&#xff1f; 1.1 什么是 WebAssembly&#xff1f; 1.2 WebAssembly 的优势 1.3 什么是 Qt for WebAssembly&#xff1f; 1.4 Qt for WebAssembly 的特点 1.5 编译过程 1.6 运行时环境 注意&#xff01;&#xff01;&#xff01;注意&am…...

荣耀手机怎么录制屏幕?屏幕录制后为视频加水印更有“安全感”

在数字时代&#xff0c;屏幕录制已经成为记录和分享信息的重要方式之一。无论是记录游戏的高光时刻&#xff0c;还是制作教学视频&#xff0c;亦或是保存重要的线上会议内容&#xff0c;屏幕录制都能轻松搞定。 荣耀手机作为一款功能强大的设备&#xff0c;自然也提供了便捷的…...

3DXML 与 SOLIDWORKS 格式转换:技术协同及迪威模型方案

一、引言 在产品设计的前沿领域&#xff0c;3DXML 与 SOLIDWORKS 作为主流格式&#xff0c;虽各有所长&#xff0c;但因格式差异&#xff0c;常成为数据流通与协作的阻碍。对于技术人员和学生党而言&#xff0c;掌握二者间的转换技术&#xff0c;不仅能提升设计效率&#xff0…...

CH347使用笔记:CH347结合STM32CubeIDE实现单片机下载与调试

目录 基于 STM32CubeIDE的 CH347 JTAG/SWD调试器使用说明1. CH347驱动安装与配置2. STM32CubeIDE调试器配置2.1 打开相关工程后&#xff0c;进行以下操作2.2 openocd.exe替换2.3 脚本添加2.4 更改调试器选择 3. 下载程序4. 使用过程中可能遇到的问题4.1 CH347未插入4.2 Openocd…...

JS—基本数据类型和引用数据类型:1分钟掌握两者的区别

个人博客&#xff1a;haichenyi.com。感谢关注 一. 目录 一–目录二–分类三–核心区别四–实际场景中的问题五–总结对比 二. 分类 前面说过这么判断数据类型&#xff0c;今天来说说基本数据类型和引用数据类型的区别。 基本数据类型引用数据类型StringObjectNumberFunct…...

使用 CryptoJS 实现 AES 解密:动态数据解密示例

在现代加密应用中,AES(高级加密标准)是一种广泛使用的对称加密算法。它的安全性高、效率好,适合用于各种加密任务。今天,我们将通过一个实际的示例,展示如何使用 CryptoJS 实现 AES 解密,解密动态数据。CryptoJS 是一个基于 JavaScript 的加密库,它支持 AES、DES 等多种…...

[设计模式与源码]1_Spring三级缓存中的单例模式

欢迎来到啾啾的博客&#x1f431;&#xff0c;一个致力于构建完善的Java程序员知识体系的博客&#x1f4da;&#xff0c;记录学习的点滴&#xff0c;分享工作的思考、实用的技巧&#xff0c;偶尔分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604…...

使用React和google gemini api 打造一个google gemini应用

实现一个简单的聊天应用&#xff0c;用户可以通过输入问题或点击“Surprise me”按钮获取随机问题&#xff0c;并从后端API获取回答。 import { useState } from "react"; function App() {const [ value, setValue] useState(""); // 存储用户输入的问题…...

为什么Django能有效防御CSRF攻击?

在当今这个互联网高度发达的时代&#xff0c;Web安全问题层出不穷&#xff0c;其中跨站请求伪造&#xff08;CSRF&#xff0c;Cross-Site Request Forgery&#xff09;就是一个比较常见的威胁。攻击者利用用户的身份信息&#xff0c;发送恶意请求&#xff0c;改变用户的属性或执…...

Oracle常见系统函数

一、字符类函数 1&#xff0c;ASCII(c)和CHR(i)字符串和ascii码互转换 SQL> select ascii(Z) ,ascii(H),ascii( A) from dual;ASCII(Z) ASCII(H) ASCII(A) ---------- ---------- ----------90 72 32SQL> select chr(90),chr(72),chr(65) from dual;C…...

【Visio使用教程】

Visio使用教程 1. Visio 的基本介绍1.1 Visio 是什么&#xff1f;核心特点&#xff1a; 1.2 主要功能与应用场景典型用途&#xff1a;行业应用&#xff1a; 1.3 版本与兼容性1.4 Visio下载1.5 安装 2. Visio 的界面与基础操作2.1 界面布局详解2.2 创建新文档与模板选择2.3 形状…...

蓝桥杯 修剪灌木

问题描述 爱丽丝要完成一项修剪灌木的工作。 有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌 木, 让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后, 她会调转方向, 下一天开 始向左修…...

HTML中滚动加载的实现

设置div的overflow属性&#xff0c;可以使得该div具有滚动效果&#xff0c;下面以div中包含的是table来举例。 当table的元素较多&#xff0c;以至于超出div的显示范围的话&#xff0c;观察下该div元素的以下3个属性&#xff1a; clientHeight是div的显示高度&#xff0c;scrol…...

bbbbb

import java.util.ArrayList; import java.util.List; public class KthPermutation { public static String getPermutation(int n, int k) { // 计算阶乘 int[] factorial new int[n]; factorial[0] 1; for (int i 1; i < n; i) …...

Linux文件

1.Open函数 高频使用的Linux系统调用&#xff1a;open write read close Linux自带的工具&#xff1a;man手册&#xff1a; man 1是普通的shell命令&#xff0c;比如ls man 2是系统调用函数&#xff0c;比如open&#xff0c;write说明 在Linux系统库的定义&#xff1a; int o…...

kafka指北

为自己总结一下kafka指北&#xff0c;会持续更新。创作不易&#xff0c;转载请注明出处。 目录 集群controller选举过程broker启动流程 主题创建副本分布ISRleader副本选举机制LEO 生产数据流程同步发送和异步发送 分区策略ack应答生产者发送消息的幂等性跨分区幂等性问题&…...

Linux安装部署Elasticsearch8 全过程记录

一、安装 Elasticsearch8 1、下载 访问 Elasticsearch 官方网站&#xff08;Download Elasticsearch | Elastic&#xff09;。 在下载页面找到 Elasticsearch 8 的 Linux 版本&#xff08;.tar.gz 格式&#xff09;下载链接&#xff0c;点击下载。 下载Elasticsearch8&…...

ESP32(3)UDP通信

对于 lwIP 的 Socket 的使用方式&#xff0c;它与文件操作非常相似。在文件操作中&#xff0c;我们首先打开文件&#xff0c;然后进行读/写操作&#xff0c;最后关闭文件。在TCP/IP网络通信中&#xff0c;也存在着相同的操作流程&#xff0c;但所使用的接口不再是文件描述符或 …...

汽车机械钥匙升级一键启动的优点

汽车机械钥匙升级一键启动的优点主要包括&#xff1a; 便捷性&#xff1a;一键启动功能的引入极大地提升了用车便捷性。车主无需翻找钥匙&#xff0c;只需在车辆感应范围内轻触启动键&#xff0c;即可轻松发动汽车。 安全性&#xff1a;移动管家专车专用一键启动系统配备了防…...

【matlab例程】三维下的TDOA定位和EKF轨迹滤波例程,TDOA的锚点数量可自定义(订阅专栏后可获得完整代码)

本文所述的MATLAB例程实现了TDOA定位和扩展卡尔曼滤波(EKF)来提高位置估计的准确性,并通过可视化结果进行分析。 文章目录 运行结果MATLAB代码程序讲解关键步骤和功能步骤解释注意事项总结运行结果 三维轨迹: 三维误差曲线: RMSE曲线: 命令行输出内容:...

个人blog系统 前后端分离 前端js后端go

系统设计&#xff1a; 1.使用语言&#xff1a;前端使用vue&#xff0c;并使用axios向后端发送数据。后端使用的是go的gin框架&#xff0c;并使用grom连接数据库实现数据存储读取。 2.设计结构&#xff1a; 最终展示&#xff1a;仅展示添加模块&#xff0c;其他模块基本相似 前…...

OSG简介

OSG OpenSceneGraph (简称 OSG) 是一个开源的高性能3D图形库。 作用 它为开发者提供了一个强大的API&#xff0c;处理和渲染复杂的3D图形。 特点 OSG基于OpenGL构建&#xff0c;提供了对现代图形技术的支持&#xff0c;如着色器、纹理映射、光照模型等高级特性。 跨平台支…...

社区版Uos20.9从源码编译QT5.15.2

主要是在这个文章上学的究极保姆式教你如何在Ubuntu上源码安装Qt5.15.2_ubuntu安装qt5.15.2-CSDN博客 但原文上在环境变量的配置上真用在 uso上好像不行&#xff0c;要加一些引号和$号。原文的测试编译代码也有些问题&#xff0c;include上少了类。略作修改&#xff0c;在UOS社…...

AI学习第二天--大模型压缩(量化、剪枝、蒸馏、低秩分解)

目录 1. 量化&#xff1a;压缩大象的“脂肪” 比喻 技术逻辑 2. 剪枝&#xff1a;修剪大象的“无效毛发” 比喻 技术逻辑 3. 知识蒸馏&#xff1a;让大象“师从巨象” 比喻 技术逻辑 4. 低秩分解&#xff1a;把大象“折叠成纸偶” 比喻 技术逻辑 5. 推理优化&#…...

C++ —— 线程同步(互斥锁)

C —— 线程同步&#xff08;互斥锁&#xff09; 线程同步互斥锁&#xff08;互斥量&#xff09;测试代码mutex互斥锁 线程同步 线程同步&#xff1a;多线程协同工作&#xff0c;协商如何使用共享资源。 C11线程同步包含三部分内容&#xff1a; 互斥锁&#xff08;互斥量&…...

相对路径跳转和绝对路径跳转有什么区别?

在 Vue 3 中使用路由跳转时&#xff0c;相对路径跳转和绝对路径跳转在使用方式、适用场景等方面存在明显区别&#xff0c;以下为你详细介绍&#xff1a; 定义 绝对路径跳转&#xff1a;指的是使用完整的路径来进行路由导航&#xff0c;路径以 / 开头&#xff0c;无论当前处于…...

Flume详解——介绍、部署与使用

1. Flume 简介 Apache Flume 是一个专门用于高效地 收集、聚合、传输 大量日志数据的 分布式、可靠 的系统。它特别擅长将数据从各种数据源&#xff08;如日志文件、消息队列等&#xff09;传输到 HDFS、HBase、Kafka 等大数据存储系统。 特点&#xff1a; 可扩展&#xff1…...

笔记类AI应用体验

笔记类AI应用体验 叮当好记视频一键转笔记&#xff0c; 祝你学习效率起飞 IMAGet笔记印象笔记&#xff08;Evernote&#xff09;&#xff1a;Notion&#xff1a;Trilium Notes&#xff1a;二、开始搭建三、搭建步骤四、创建博客 Obsidian&#xff1a;案例让ai帮我执行大模型学习…...

Mysql篇——SQL优化

本篇将带领各位了解一些常见的sql优化方法&#xff0c;学到就是赚到&#xff0c;一起跟着练习吧~ SQL优化 准备工作 准备的话我们肯定是需要一张表的&#xff0c;什么表都可以&#xff0c;这里先给出我的表结构&#xff08;表名&#xff1a;userinfo&#xff09; 通过sql查看…...

【css酷炫效果】纯CSS实现故障文字特效

【css酷炫效果】纯CSS实现故障文字特效 缘创作背景html结构css样式完整代码基础版进阶版(3D效果) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492053 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚…...

【Java】链表(LinkedList)(图文版)

本博客总结了Java当中链表的实现&#xff0c;以及相关方法的使用&#xff0c;在最后附带了一些常见链表相关处理技巧&#xff0c;希望对你有帮助&#xff01; ps&#xff1a;可拷贝到IDEA上自行测试&#xff0c;代码全部完成测试。 一.链表概述 1.什么是链表&#xff1f; 链…...

审批工作流系统xFlow

WorkFlow-审批流程系统 该项目为完全开源免费项目 可用于学习或搭建初始化审批流程系统 希望有用的小伙伴记得点个免费的star gitee仓库地址 仿钉钉飞书工作审批流系统 介绍 前端技术栈: vue3 ts vite arcodesign eslint 后端技术栈:springbootspring mvc mybatis mavenmysq…...

UNION,UNION ALL 的详细用法

目录 一、基本概念 二、核心区别 三、语法使用规则 四、代码实演示 4.1 两张表字段相同&#xff0c;字段顺序也相同 4.2 两张表字段相同。但字段顺序不同 4.3 两张表存在相同字段&#xff0c;但一张表字段多&#xff0c;一张表字段少 一、基本概念 操作符功能描述去重处…...

Java 集合遍历过程中修改数据触发 Fail-Fast 机制 ,导致报ConcurrentModificationException异常

Java Fail-Fast 机制 Fail-Fast 机制是 Java 集合框架中的一种错误检测机制&#xff0c;用于在遍历集合时检测结构修改。如果在迭代器创建之后&#xff0c;集合被修改&#xff08;例如添加或删除元素&#xff09;&#xff0c;并且这种修改不是通过迭代器自身的 remove() 方法进…...

Javascript 日期相关计算

1、获取当前日期的前一天 // 获取当前日期let today new Date();today.setDate(today.getDate() - 1);// 转换为本地日期字符串格式let yesterdayStr today.toISOString().slice(0, 10);console.log(yesterdayStr); // 例如: "2023-04-03" (格式取决于地区设置) 2…...

自动驾驶背后的数学:特征提取中的线性变换与非线性激活

在上一篇博客「自动驾驶背后的数学&#xff1a;从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数中&#xff0c;我们初步探讨了自动驾驶技术中从传感器数据到控制指令的函数嵌套流程&#xff0c;其中提到了特征提取模块对传感器数据进行线性…...

DNS解析查询工具

dig命令 1 常用命令 命令&#xff1a;dig 您的域名&#xff08;示例&#xff1a;dig www.baidu.com&#xff09; 2、根据解析记录查询&#xff0c;比如MX&#xff0c;CNAME&#xff0c;NS&#xff0c;PTR等&#xff0c;只需将类型加在命令后面即可。 示例&#xff1a;dig bai…...

【eNSP实战】(续)一个AC多个VAP的实现—将隧道转发改成直接转发

在 一个AC多个VAP的实现—CAPWAP隧道转发 此篇文章配置的基础上&#xff0c;将隧道转发改成直接转发 一、改成直接转发需要改动的配置 &#xff08;一&#xff09;将连接AP的接口改成trunk口&#xff0c;并允许vlan100、101、102通过 [AC1]interface GigabitEthernet 0/0/8 …...

解决远程卡在下载vscode-server的问题,一键安装脚本

vscode-server 下载与安装脚本 vscode-server一键安装脚本 简介 此脚本用于下载并安装指定提交 ID 和架构的 VS Code Server。用户可以选择不同的架构&#xff0c;并输入对应的 VS Code 提交 ID 来下载和安装 vscode-server。VS Code提交ID可以在VS Code界面“帮助>关于…...

【unity实战】用unity封装一个复杂全面且带不同射击模式的飞机大战射击系统

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...

LeetCode[42] 接雨水

动态规划 left_max[i] height[i]左侧的最高高度right_max[i] height[i]右侧的最高高度height[i]能接多少水&#xff1f;min(left_max[i], right_max[i])-height[i] class Solution { public:int trap(vector<int>& height) {int len height.size();vector<in…...

c++ 基础题目lambda

1. auto lambda = [](double x) { return static_cast<int>(x); }; 是 匿名函数对象 ,不可直接声明 a.可以赋值给一个与其类型兼容的 std::function 类型的对象 std::function<int(int, int)> lambda = [](int x, int y) { return x + y; }; b.使用具体的 lambda …...

RTSP/Onvif安防视频EasyNVR平台 vs.多协议接入视频汇聚EasyCVR平台:设备分组的区别

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…...

网络编程套接字【端口号/TCPUDP/网络字节序/socket编程接口/UDPTCP网络实验】

网络编程套接字 0. 前言1. 认识端口号2. 认识TCP和UDP协议3. 网络字节序4. socket编程接口5. 实现一个简单的UDP网络程序5.1 需求分析5.2 头文件准备5.3 服务器端设计5.4 客户端设计5.5 本地测试5.6 跨网络测试5.7 UDP小应用——客户端输入命令&#xff0c;服务器端执行 6. 地址…...

【C语言预编译处理精选题】

C语言预编译处理精选题 一、选择易错题1.1 纯文本替换&#xff0c;注意优先级&#xff01;1.2 再来一道文本替换&#xff0c;别马虎1.3 宏定义的替换1.4带参数宏定义的空格问题1.5 " "的include1.6 条件编译1.7 预编译概念 二、填空易错题2.1 注意两个连续的 i2.2 异…...

云钥科技工业相机定制服务,助力企业实现智能智造

在工业自动化、智能制造和机器视觉快速发展的今天&#xff0c;工业相机作为核心感知设备&#xff0c;其性能直接决定了检测精度、生产效率和产品质量。然而&#xff0c;标准化工业相机往往难以满足复杂多样的应用场景需求&#xff0c;‌工业相机定制‌逐渐成为企业突破技术瓶颈…...

用了Cline和华为云的大模型,再也回不去了

这两年AI火热&#xff0c;受影响最大的还是程序员群体&#xff0c;因为编程语言是高度形式化的&#xff0c;完全可以用BNF等形式精确地定义&#xff0c;不像自然语言那样&#xff0c;容易出现歧义。另外开源是软件界的潮流&#xff0c;GitHub上有海量的开源代码可供AI来训练&am…...

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE&#xff0c;安装vs2017后无法使用了&#xff0c;在重新按照新版本arcgis engine或者arcObject费时费力&#xff0c;还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题&#xff0c;1&#xff1a;安装后vs中没有…...

Java对接微信支付全过程详解

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