Nacos详细使用操作文档(图文详细)
文章目录
- Nacos详细使用操作文档(图文详细)
- 1、安装
- 2、Nacos作为注册中心
- 2.1、Nacos服务注册【ICRMS】
- 2.2、Nacos 服务调用
- 2.2.1、Feign 远程调用【Personnel】
- 2.2.2)、RestTemplate+Ribbon 远程调用【Personnel】
- 3、Nacos作为配置中心
- 4、Nacos 命令空间
- 5、Nacos配置文件参数详解
Nacos详细使用操作文档(图文详细)
1、安装
- 官方链接: https://nacos.io/zh-cn/docs/what-is-nacos.html
- 参考地址(单机版): https://blog.csdn.net/weixin_44187730/article/details/104263230
- 参考地址(集群版): https://blog.csdn.net/weixin_44187730/article/details/104552937
2、Nacos作为注册中心
2.1、Nacos服务注册【ICRMS】
- 1、导入服务发现功能的jar包
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 2、开启服务注册发现功能
package com.moonpac.icrms.config;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;/*** @Copyright (C), 2016-2022 MP* @ClassName: ICRMSCloudConfig* @Author: hf* @Date: 2022/9/4 16:07* @Description: ICRMS服务 - 关于Nacos配置-服务注册-服务发现-Feign远程调用*/
@Configuration
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.moonpac.icrms.feign")
public class ICRMSCloudConfig {}
- 3、编写bootstrap.yaml配置、指定Nacos的服务地址
spring:application:#服务名称name: aiops-icrmscloud:nacos:discovery:# 集群方式多个地址以,分割server-addr: 10.173.28.204:8848
2.2、Nacos 服务调用
2.2.1、Feign 远程调用【Personnel】
- ①、导入feign进行远程调用功能
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- ②、消费端调用写法,声明式调用【声明调用接口】
package com.moonpac.personnel.feign;import com.moonpac.personnel.feign.fallback.ICRMSTestFeignServiceFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/*** @Copyright (C), 2016-2022 MP* @ClassName: ICRMSTestController* @Author: hf* @Date: 2022/9/4 16:27* @Description: ICRMS 测试Feign调用*/
@FeignClient(//指定服务名,nacos注册的服务名name = "aiops-icrms",//指定容错类-当远程调用失败时进入容错类中fallbackFactory = ICRMSTestFeignServiceFallbackFactory.class
)
//指定公共请求前缀
@RequestMapping("/icrms")
public interface ICRMSTestFeignService {@GetMapping("/list")List<String> list();
}
- ③、Feign容错类
package com.moonpac.personnel.feign.fallback;import com.moonpac.personnel.feign.ICRMSTestFeignService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;import java.util.Arrays;
import java.util.List;/*** @Copyright (C), 2016-2022 MP* @ClassName: ICRMSTestServiceFallbackFactory* @Author: hf* @Date: 2022/9/4 16:29* @Description: Feign 远程调用容错*/
@Service
@Slf4j
public class ICRMSTestFeignServiceFallbackFactory implements FallbackFactory<ICRMSTestFeignService> {@Overridepublic ICRMSTestFeignService create(Throwable throwable) {//捕获到异常throwable.printStackTrace();return new ICRMSTestFeignService() {//捕获到异常@Overridepublic List<String> list() {return Arrays.asList("Feign远程调用报错了...","错了");}};}
}
- ④、配置类
package com.moonpac.personnel.config;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;/*** @Copyright (C), 2016-2022 MP* @ClassName: PersonnelCloudConfig* @Author: hf* @Date: 2022/9/4 16:23* @Description: Personnel服务关于Nacos配置-服务注册-服务发现-Feign远程调用*/
@Configuration
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.moonpac.personnel.feign")
public class PersonnelCloudConfig {}
- ⑤、controller写法
package com.moonpac.personnel.controller;import com.moonpac.personnel.feign.ICRMSTestFeignService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Copyright (C), 2016-2022 MP* @ClassName: PersonnelFeignController* @Author: hf* @Date: 2022/9/4 16:43* @Description: Feign 远程调用服务*/
@Slf4j
@RestController
@RequestMapping("/personnel")
@RequiredArgsConstructor
public class PersonnelFeignController {private final ICRMSTestFeignService icrmsTestFeignService;@GetMapping("/list")public Object list() {//远程调用开始,即将通过Feign 远程调用接口log.info("远程调用开始,即将通过Feign 远程调用其它服务接口...");return icrmsTestFeignService.list();}}
- ⑥、调用效果

2.2.2)、RestTemplate+Ribbon 远程调用【Personnel】
- ① 配置类
package com.moonpac.personnel.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;/*** @Copyright (C), 2016-2022 MP* @ClassName: PersonnelRestTemplateConfig* @Author: hf* @Date: 2022/9/4 16:59* @Description: Personnel 用户中心服务 RestTemplate配置*/
@Configuration
public class PersonnelRestTemplateConfig {@LoadBalanced@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
}
- ② controller写法
package com.moonpac.personnel.controller;import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;/*** @Copyright (C), 2016-2022 MP* @ClassName: PersonnelTemplateController* @Author: hf* @Date: 2022/9/4 16:43* @Description: RestTemplate 远程调用服务*/
@Slf4j
@RestController
@RequestMapping("/personnel/template")
@RequiredArgsConstructor
public class PersonnelTemplateController {private static final String ICRMS_SERVER_ADDR = "http://aiops-icrms";private final RestTemplate restTemplate;@ApiOperation("RestTemplate 测试调用")@GetMapping("/list")public Object list() {log.info("RestTemplate 测试远程调用.....");return restTemplate.getForEntity(ICRMS_SERVER_ADDR + "/icrms/list", Object.class);}}
- ③、调用效果

3、Nacos作为配置中心
配置中心:
集中管理配置、配置动态更新、回滚配置…
- 1、导入服务发现功能的jar包
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 2、创建一个bootstrap.yaml或bootstrap.properties必须叫此名称
- SpringBoot默认规则,bootstrap.yaml里面的配置优先于application.yaml配置。
#Nacos 配置中心配置
spring:application:name: aiops-personnelcloud:nacos:config:# nacos 地址server-addr: 10.173.28.204:8848
- 3、默认配置规则
- dataId: 配置文件名 .properties或.yaml
- prefix−{prefix}-prefix−{spring.profile.active}.${file-extension}
- 前缀-当前环境.文件扩展名
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 prefix.{prefix}.prefix.{file-extension}
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
aiops-icrms.properties aiops-icrms.yaml
总结: 只需要给Nacos中创建一个dataId名称叫做 当前项目名.properties 当前项目名.yaml
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDBXHlaq-1676619824775)(./images/nacos/604EF494-59ED-4b33-9C22-DC40E94397D0.png)]
- 4、开启域刷新动态获取配置,实例代码
package com.moonpac.personnel.controller;import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;/*** @Copyright (C), 2016-2022 MP* @ClassName: PersonnelParamsConfig* @Author: hf* @Date: 2022/9/4 17:16* @Description:*/
@Slf4j
@RestController
@RequestMapping("/personnel/params")
@RequiredArgsConstructor
//开启域动态刷新主类配置
@RefreshScope
public class PersonnelParamsConfigController {@Value("${personnel.version:11}")private String personnelVersion;@Value("${personnel.content:11}")private String personnelContent;@ApiOperation("Nacos配置中心测试")@GetMapping("/getParams")public Object getP() {HashMap<Object, Object> hashMap = new HashMap<>(3);hashMap.put("content", personnelContent);hashMap.put("version", personnelVersion);return hashMap;}}
- 5、所有的配置信息都可以写到Nacos中。
4、Nacos 命令空间
- 1、Nacos命名空间概念
- 命名空间:主要用于区分不同环境。
- 默认情况,本项目在public下找 项目名.properties文件 项目名.yaml
- Nacos组: 可以区分不同业务,不同业务不同组。
最佳实践:
使用namespace来区分不同的服务【每个服务都有自己的名称空间】。
使用Group来区分不同环境【dev,prod,test】

- 2、配置命名空间
#Nacos 配置中心配置
spring:application:name: aiops-personnelcloud:nacos:config:# nacos 地址server-addr: 10.173.28.204:8848# 设置默认的文件类型file-extension: yaml# 设置命名空间--此处填写的是ID 重要!!!# 设置命名空间--此处填写的是ID 重要!!!# 设置命名空间--此处填写的是ID 重要!!!namespace: 9dbdfc95-0174-49bd-9c2a-bc276ca41ecc
- 3、Nacos添加管理配置文件

- 4、加载使用配置
#Nacos 配置中心配置
spring:application:name: aiops-personnelcloud:nacos:config:# nacos 地址server-addr: 10.173.28.204:8848# 设置默认的文件类型file-extension: yaml# 设置命名空间--此处填写的是ID 重要!!!namespace: 9dbdfc95-0174-49bd-9c2a-bc276ca41eccextension-configs:# 批量加载配置文件- {dataId: "application-monitor.yaml",group: "DEV",refresh: true}- {dataId: "application-logback.yaml",group: "DEV",refresh: true}- {dataId: "application-sentinel.yaml",group: "DEV",refresh: true}- {dataId: "application-zipkin.yaml",group: "DEV",refresh: true}
5、Nacos配置文件参数详解
- 参考链接: https://blog.csdn.net/qq_40309050/article/details/124325382
相关文章:
Nacos详细使用操作文档(图文详细)
文章目录Nacos详细使用操作文档(图文详细)1、安装2、Nacos作为注册中心2.1、Nacos服务注册【ICRMS】2.2、Nacos 服务调用2.2.1、Feign 远程调用【Personnel】2.2.2)、RestTemplateRibbon 远程调用【Personnel】3、Nacos作为配置中心4、Nacos 命令空间5、Nacos配置文件参数详解N…...
如何评价2023年美赛ABC题目
A题 遭受干旱侵袭的植物群落 背景 不同种类的植物对压力的反应方式不同。例如,草原对干旱非常敏感。干旱发生的频率和严重 程度各不相同。大量的观察表明,不同物种的数量在植物群落如何适应连续几代的干旱周期中 起着重要作用。在一些只有一种植物的…...
Win10显示dds及tga缩略图
整理之前做游戏MOD时收集的模型资源,3D游戏模型的贴图文件格式基本都是dds或tga的,毕竟无损压缩、支持嵌入MipMap、带透明通道、可以被GPU硬解balabala...道理我都懂但这俩玩意系统根本直接查看不了,就算装上专门的看图软件或插件,文件夹视图下也没有缩略图预览,只能一个个点开…...
Lesson5.1---Python 之 NumPy 简介和创建数组
一、NumPy 简介 NumPy(Numerical Python)是 Python 的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比 Python 自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示…...
Exchange 2013升级以及域名绑定等若干问题
环境简介Exchange 2013服务器位于ad域中,系统为Windows server 2012 R2,其内部域名为:mail.ad.com一. Exchange客户端无法在浏览器中正常运行在域中部署Exchange服务器后,除了可以通过outlook、foxmail等邮件客户端来使用邮箱功能…...
linux安装jenkins
1. 官网寻找安装方式 进入到jenkins官网,找到对应的下载页面:https://www.jenkins.io/download/ 根据自己系统还有想要使用的版本,进行选择即可。这里我们使用CentOS作为示例,版本选择长期支持版(LTS) 2.…...
【MySQL】MySQL表的增删改查(CRUD)
✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗 目 录🔓一. CRUD🔒二. 新增(Creat…...
GCC for openEuler 数据库性能优化实践
GCC for openEuler是基于开源GCC开发的编译器工具链(包含编译器,汇编器,链接器),在openEuler社区开源发布,并通过鲲鹏社区免费提供二进制包,支持aarch64处理器架构。 关键特性 支持鲲鹏微架构芯…...
【C++】类和对象(第二篇)
文章目录1. 类的6个默认成员函数2. 构造函数2.1 构造函数的引出2.2 构造函数的特性3. 析构函数3.1 析构函数的引出3.2 析构函数的特性4. 拷贝构造函数4.1 概念4.2 特性5.赋值运算符重载5.1 运算符重载概念注意练习5.2 赋值重载实现赋值重载的特性6. const成员函数7. 取地址及co…...
MySQL数据库(数据库约束)
目录 数据库约束 数据库约束的类型: null约束 : unique约束(唯一约束): default约束(默认值约束): primary key约束(主键约束): for…...
Hive的安装与配置
一、配置Hadoop环境先看看伪分布式下的集群环境有没有错误的情况:输入命令:start-all.sh jps查看伪分布式的所有进程是否完善二、解压并配置HiveHive压缩包→ https://pan.baidu.com/s/1eOF_ICZV8rV-CEh3nX-7Xw 提取码: m31e 复制这段内容后打开百度网盘…...
关于医院医用医疗隔离电源系统应用案例的分析探讨
【摘要】:介绍该三级医院采用安科瑞医用隔离电源柜,使用落地式安装方式,从而实现将TN系统转化为IT系统,同时监测系统绝缘情况。 【关键词】医用隔离电源柜;IT系统;绝缘情况;中西医结合医院&…...
【LeetCode】剑指 Offer 07. 重建二叉树 p62 -- Java Version
题目链接:https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/ 1. 题目介绍(07. 重建二叉树) 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的…...
ERROR 1114 (HY000): The table ‘tt2‘ is full
insert 操作时提示is full 问题原因 rootlocalhost 11:55:41 [t]>show table status from t like ‘tt2’ \G ; *************************** 1. row *************************** Name: tt2 Engine: MEMORY Version: 10 Row_format: Fixed Rows: 7056 Avg_row_length: 944…...
考了PMP证后工资大概是多少 ?(含pmp资料)
这个岗位的不同还有每个公司的薪资也是不一样的,具体的数字肯定是没有的,但大概的比例还是有的,据PMI调查,在获得PMP证书的人当中,在PMP认证一年后,年薪有所增长的比例为66%,上涨幅度主要集中在…...
基于国产龙芯 CPU 的气井工业网关研究与设计(一)
当前,我国气田的自动化控制程度还未完全普及,并且与世界已普及的气井站的自 动化程度也存在一定的差距。而在天然气资源相对丰富的国家,开采过程中设备研发资 金投入较大,研发周期较长,更新了一代又一代的自动化开采系…...
40/365 javascript 数据类型
1.数据类型 number类型:整数,小数都属于这一类,不具体区分 字符串:hello, "hello" 布尔类型:true,false 逻辑运算符: && || ! 比较运算符: : 类型不一致&#x…...
后勤管理系统—服务台管理功能
数图互通是一家IT类技术型软件科技公司,专业的不动产、工作场所、空间、固定资产、设备家具、设施运维及可持续性管理解决方案软件供应商。 一、后勤管理系统服务台管理功能包含: 1、专业自动化、集中管理的自助服务助理,随时响应服务请求。…...
Spring Boot 是什么,应该如何学习,有哪些优缺点
1、Spring Boot 是什么? Spring Boot是一个基于Spring框架的开源项目,它简化了Spring应用程序的开发过程,提供了一种快速、便捷、可扩展的方式来构建Spring应用程序。 Spring Boot通过自动化配置机制简化了Spring应用程序的配置过程&#x…...
使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)
这里写自定义目录标题项目介绍项目过程介绍训练yolov5目标检测斗地主收集数据集yolov5调参项目介绍 你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含&am…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
