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

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题 遭受干旱侵袭的植物群落 背景 不同种类的植物对压力的反应方式不同。例如&#xff0c;草原对干旱非常敏感。干旱发生的频率和严重 程度各不相同。大量的观察表明&#xff0c;不同物种的数量在植物群落如何适应连续几代的干旱周期中 起着重要作用。在一些只有一种植物的…...

Win10显示dds及tga缩略图

整理之前做游戏MOD时收集的模型资源,3D游戏模型的贴图文件格式基本都是dds或tga的,毕竟无损压缩、支持嵌入MipMap、带透明通道、可以被GPU硬解balabala...道理我都懂但这俩玩意系统根本直接查看不了,就算装上专门的看图软件或插件,文件夹视图下也没有缩略图预览,只能一个个点开…...

Lesson5.1---Python 之 NumPy 简介和创建数组

一、NumPy 简介 NumPy&#xff08;Numerical Python&#xff09;是 Python 的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵&#xff0c;比 Python 自身的嵌套列表&#xff08;nested list structure&#xff09;结构要高效的多&#xff08;该结构也可以用来表示…...

Exchange 2013升级以及域名绑定等若干问题

环境简介Exchange 2013服务器位于ad域中&#xff0c;系统为Windows server 2012 R2&#xff0c;其内部域名为&#xff1a;mail.ad.com一. Exchange客户端无法在浏览器中正常运行在域中部署Exchange服务器后&#xff0c;除了可以通过outlook、foxmail等邮件客户端来使用邮箱功能…...

linux安装jenkins

1. 官网寻找安装方式 进入到jenkins官网&#xff0c;找到对应的下载页面&#xff1a;https://www.jenkins.io/download/ 根据自己系统还有想要使用的版本&#xff0c;进行选择即可。这里我们使用CentOS作为示例&#xff0c;版本选择长期支持版&#xff08;LTS&#xff09; 2.…...

【MySQL】MySQL表的增删改查(CRUD)

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;MySQL数据库&#x1f447; ✨算法专栏&#xff1a;算法基础&#x1f447; ✨每日一语&#xff1a;生命久如暗室&#xff0c;不碍朝歌暮诗 目 录&#x1f513;一. CRUD&#x1f512;二. 新增&#xff08;Creat…...

GCC for openEuler 数据库性能优化实践

GCC for openEuler是基于开源GCC开发的编译器工具链&#xff08;包含编译器&#xff0c;汇编器&#xff0c;链接器&#xff09;&#xff0c;在openEuler社区开源发布&#xff0c;并通过鲲鹏社区免费提供二进制包&#xff0c;支持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数据库(数据库约束)

目录 数据库约束 数据库约束的类型&#xff1a; null约束 &#xff1a; unique约束&#xff08;唯一约束&#xff09;&#xff1a; default约束&#xff08;默认值约束&#xff09;&#xff1a; primary key约束&#xff08;主键约束&#xff09;&#xff1a; for…...

Hive的安装与配置

一、配置Hadoop环境先看看伪分布式下的集群环境有没有错误的情况&#xff1a;输入命令&#xff1a;start-all.sh jps查看伪分布式的所有进程是否完善二、解压并配置HiveHive压缩包→ https://pan.baidu.com/s/1eOF_ICZV8rV-CEh3nX-7Xw 提取码: m31e 复制这段内容后打开百度网盘…...

关于医院医用医疗隔离电源系统应用案例的分析探讨

【摘要】&#xff1a;介绍该三级医院采用安科瑞医用隔离电源柜&#xff0c;使用落地式安装方式&#xff0c;从而实现将TN系统转化为IT系统&#xff0c;同时监测系统绝缘情况。 【关键词】医用隔离电源柜&#xff1b;IT系统&#xff1b;绝缘情况&#xff1b;中西医结合医院&…...

【LeetCode】剑指 Offer 07. 重建二叉树 p62 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/ 1. 题目介绍&#xff08;07. 重建二叉树&#xff09; 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的…...

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资料)

这个岗位的不同还有每个公司的薪资也是不一样的&#xff0c;具体的数字肯定是没有的&#xff0c;但大概的比例还是有的&#xff0c;据PMI调查&#xff0c;在获得PMP证书的人当中&#xff0c;在PMP认证一年后&#xff0c;年薪有所增长的比例为66%&#xff0c;上涨幅度主要集中在…...

基于国产龙芯 CPU 的气井工业网关研究与设计(一)

当前&#xff0c;我国气田的自动化控制程度还未完全普及&#xff0c;并且与世界已普及的气井站的自 动化程度也存在一定的差距。而在天然气资源相对丰富的国家&#xff0c;开采过程中设备研发资 金投入较大&#xff0c;研发周期较长&#xff0c;更新了一代又一代的自动化开采系…...

40/365 javascript 数据类型

1.数据类型 number类型&#xff1a;整数&#xff0c;小数都属于这一类&#xff0c;不具体区分 字符串&#xff1a;hello, "hello" 布尔类型&#xff1a;true,false 逻辑运算符&#xff1a; && || ! 比较运算符&#xff1a; : 类型不一致&#x…...

后勤管理系统—服务台管理功能

数图互通是一家IT类技术型软件科技公司&#xff0c;专业的不动产、工作场所、空间、固定资产、设备家具、设施运维及可持续性管理解决方案软件供应商。 一、后勤管理系统服务台管理功能包含&#xff1a; 1、专业自动化、集中管理的自助服务助理&#xff0c;随时响应服务请求。…...

Spring Boot 是什么,应该如何学习,有哪些优缺点

1、Spring Boot 是什么&#xff1f; Spring Boot是一个基于Spring框架的开源项目&#xff0c;它简化了Spring应用程序的开发过程&#xff0c;提供了一种快速、便捷、可扩展的方式来构建Spring应用程序。 Spring Boot通过自动化配置机制简化了Spring应用程序的配置过程&#x…...

使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

这里写自定义目录标题项目介绍项目过程介绍训练yolov5目标检测斗地主收集数据集yolov5调参项目介绍 你好&#xff01; 欢迎阅读我的文章&#xff0c;本章将介绍&#xff0c;如何使用yolov5和强化学习训练一个AI斗地主&#xff0c;本项目将分为三个部分&#xff0c;其中包含&am…...

面试官最爱问的Verilog模三检测器,我用状态机+随机测试搞定了(附完整代码)

数字IC面试实战&#xff1a;用状态机随机测试征服模三检测器难题 最近在准备数字IC设计岗位面试的朋友们&#xff0c;一定对"手撕代码"环节又爱又恨。这个环节题目相对固定&#xff0c;但要在面试官犀利的追问下完美呈现&#xff0c;却需要深厚的功底。今天我们就来深…...

Docker 27车载部署必踩的9个坑,第7个导致某头部智驾平台批量召回ECU固件更新

第一章&#xff1a;Docker 27车载部署容器稳定性综述Docker 27&#xff08;即 Docker v27.x 系列&#xff09;作为面向边缘与车载场景深度优化的发行版&#xff0c;显著增强了容器在资源受限、网络波动、电源中断频发等车规级环境下的运行韧性。其内核调度器适配了 Linux CFS 的…...

C++ 多态编程与纯虚函数详解

C++ 多态编程与纯虚函数详解 多态(Polymorphism)是面向对象编程的核心特性之一,它允许同一接口表现出不同的行为。C++ 支持编译时多态(静态多态)和运行时多态(动态多态)。本文重点讲解运行时多态,以及实现它的关键工具——虚函数与纯虚函数。 一、多态的基本概念 静态…...

Parquet Viewer:重新定义浏览器数据查看体验的WebAssembly数据处理工具

Parquet Viewer&#xff1a;重新定义浏览器数据查看体验的WebAssembly数据处理工具 【免费下载链接】parquet-viewer View parquet files online 项目地址: https://gitcode.com/gh_mirrors/pa/parquet-viewer 在大数据时代&#xff0c;处理和分析Parquet文件已成为数据…...

MeterSphere二次开发避坑指南:搞定Kafka、Flyway和JMeter镜像配置的那些坑

MeterSphere二次开发实战&#xff1a;破解Kafka配置、Flyway迁移与JMeter镜像三大难题 当你在深夜的办公室里盯着满屏红色错误日志&#xff0c;第17次尝试启动MeterSphere开发环境时&#xff0c;或许会和我当初一样怀疑人生——为什么官方文档里轻描淡写的配置项&#xff0c;实…...

从市场调研到用户画像:因子分析如何帮你发现隐藏的‘消费者因子’?

解码消费者心智&#xff1a;如何用因子分析从海量问卷中提炼黄金洞察 当市场部同事将一份包含87个问题的用户满意度问卷扔到你桌上时&#xff0c;那些密密麻麻的评分数据就像未经处理的矿石——价值连城却难以直接利用。这正是因子分析大显身手的时刻。想象一下&#xff0c;你不…...

DenseNet凭什么拿CVPR最佳论文?深入剖析‘特征重用’与‘密集连接’的设计哲学

DenseNet革命&#xff1a;特征重用的神经网络设计范式突破 从ResNet到DenseNet的进化之路 2017年CVPR最佳论文奖授予了《Densely Connected Convolutional Networks》&#xff08;DenseNet&#xff09;&#xff0c;这一荣誉绝非偶然。在深度学习领域&#xff0c;网络架构的创新…...

2026年创业者必看:友价源码如何助力6000+项目稳健起飞?

在互联网浪潮席卷的今天&#xff0c;每一个创业者都渴望找到一款既能承载梦想又能稳健前行的工具。然而&#xff0c;在源码市场中&#xff0c;选择往往伴随着困惑与风险。直到我遇到了友价源码&#xff0c;一个让无数创业者安心的名字。温州友价网络科技有限公司&#xff0c;这…...

B站视频下载终极指南:轻松保存大会员4K高清内容

B站视频下载终极指南&#xff1a;轻松保存大会员4K高清内容 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法离线观看B站精彩…...

PCA人脸识别算法研究

PCA(主成分分析)人脸识别是一种基于统计学习的降维方法,由Matthew Turk和Alex Pentland于1991年首次系统提出并应用于人脸识别任务。这种方法通过将高维人脸图像数据映射到低维"特征脸"(Eigenfaces)子空间,显著降低了计算复杂度,同时保留了数据中的主要判别信…...