当前位置: 首页 > 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…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...