SpringCloud Alibaba Nacos--下

news2024/11/23 18:57:56

SpringCloud Alibaba Nacos-下

Nacos 配置中心实例

示意图

image.png

在Nacos Server 加入配置

  1. 进入到Nacos Server
  2. 加入配置, 特别提醒: 文件后缀.yaml 别忘了.

image.png

Data ID: e-commerce-nacos-config-client-dev.yaml

image.png

image.png

创建Nacos 配置客户端模块e-commerce-nacos-config-client5000

创建Module

先创建e-commerce-nacos-config-client5000 模块,参考以前的方法

修改pom.xml

    <!--引入相关的依赖: 我们引入了当前需要的依赖,后面如果有其它需要,再灵活调整-->
    <dependencies>

        <!--加入nacos-config stater  即场景启动器 使用版本仲裁-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!--引入alibaba-nacos 使用版本仲裁-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--引入web-starter 老师说明我们使用版本仲裁(从父项目继承了版本)
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>



        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>


        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--引入e_commerce_center-common-api-->
        <dependency>
            <groupId>com.hspedu.springcloud</groupId>
            <artifactId>e_commerce_center-common-api</artifactId>
            <version>${project.version}</version>
        </dependency>

    </dependencies>

创建application.xml

spring:
  profiles:
    active: dev #指定环境,常见的环境有 dev开发/test测试/prod生产

创建bootstrap.yml

  1. nacos 配置客户端/当前的微服务模块, 会根据配置,找到配置中心的数据(配置文件)

  2. config.server-addr: localhost:8848 可以找到配置中心

  3. spring.application.name 对应是DataId e-commerce-nacos-config

  4. 在application.yml: 配置 spring.profiles.active dev

  5. spring.cloud.nacos.config.file-extension 配置文件的扩展名 .yaml

  6. 小结: 根据配置 就是 到 localhost:8848 下的 e-commerce-nacos-config-dev.yaml 获取配置信息/数据

  7. 规则就是: s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profiles.active}.${spring.cloud.nacos.config.file-extension}来定位配置中心的 Data ID

server:
  port: 20000 #端口

spring:
  application:
    #这里的name需要参考nacos 配置中心的Data Id
    name: e-commerce-nacos-config-client
  #配置nacos
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置

创建主启动类NacosConfigClientApplication5000

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientApplication5000 {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigClientApplication5000.class, args);
    }
}

业务类创建NacosConfigClientController

@RestController
@Slf4j
@RefreshScope //spring cloud原生注解,实现了配置数据的自动刷新
public class NacosConfigClientController {

    /**
     * 1. client 会拉取nacos server 的 e-commerce-nacos-config-client-dev.yaml
     * config:
     *     ip: "122.22.22.22"
     *     name: "大家好"
     * 2. @Value("${config.ip}") 会将 config.ip 赋给  configIp
     * 3. 这里${config.ip} 不能乱写,要有依据
     */
    @Value("${config.ip}")
    private String configIp;

    @Value("${config.name}")
    private String configName;

    @GetMapping("/nacos/config/ip")
    public String getConfigIp() {
        return configIp;
    }
    @GetMapping("/nacos/config/name")
    public String getConfigName() {
        return configName;
    }
}

测试

1 启动Nacos Server
2 启动e-commerce-nacos-config-client5000
3 浏览器: http://localhost:5000/nacos/config/ip

image.png

注意事项和细节

  1. NacosConfigClientController.java 的@Value(“${config.ip}”), 是import org.springframework.beans.factory.annotation.Value;而不是lombok 包下的.

  2. 配置文件application.yml 和bootstrap.yml 结合会得到配置文件/资源的地址

  3. 参考文档: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

image.png

  1. 注意在Nacos Server 的配置文件的后缀是.yaml , 而不是.yml

  2. 在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动, 也就是说如果项目不能正确的获取到Nacos Server 的配置数据,项目是启动不了的.

  3. springboot 中配置文件的加载是存在优先级顺序的, bootstrap.yml 优先级高于application.yml

  4. @RefreshScope 是springcloud 原生注解,实现配置信息自动刷新, 如果在Nacos Server 修改了配置数据,Client 端就会得到最新配置[演示]

Nacos 分类配置(实现配置隔离)

DataID 方案

示意图

image.png

解决方案分析

使用Data ID 方案解决

配置实现

  1. 在nacos server 创建新的配置:e-commerce-nacos-config-client-test.yaml

image.png

image.png

image.png

修改application.yml

spring:
  profiles:
    active: text #指定环境,常见的环境有 dev开发/test测试/prod生产

测试

浏览器输入: http://localhost:5000/nacos/config/ip

image.png

Group 方案

需求分析/图解

image.png

配置实现

  1. 在nacos server 创建新的配置:order/e-commerce-nacos-config-client-dev.yaml

image.png

image.png

image.png

  1. 在nacos server 创建新的配置:seckill/e-commerce-nacos-config-client-dev.yaml

image.png

image.png

修改application.yml

spring:
  profiles:
    active: dev #指定环境,常见的环境有 dev开发/test测试/prod生产

修改bootstrap.yml

  1. 增加group 参数
server:
  port: 20000 #端口

spring:
  application:
    #这里的name需要参考nacos 配置中心的Data Id
    name: e-commerce-nacos-config-client
  #配置nacos
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置
        group: search #指定search组,默认是DEFAULT_GROUP

测试

1 浏览器: http://localhost:5000/nacos/config/ip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfWwPJNv-1686312360306)(<转存失败,建议直接上传图片文件 …/%E5%9B%BE%E7%89%87/image-20230526074910029.png>)]

image.png

Namespace 方案

示意图

image.png

解决方案分析

1. 在nacos server 创建新的namespace , baidu 和alibaba

image.png

image.png

image.png

image.png

2. 在nacos server 创建新的group/dataid

image.png

image.png

image.png

修改application.yml

spring:
  profiles:
    active: dev #指定环境,常见的环境有 dev开发/test测试/prod生产

修改bootstrap.yml-下

增加Namespace 参数

server:
  port: 20000 #端口

spring:
  application:
    #这里的name需要参考nacos 配置中心的Data Id
    name: e-commerce-nacos-config-client
  #配置nacos
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置
        group: search #指定search组,默认是DEFAULT_GROUP
        namespace: e37564de-2e0a-4f79-96e9-23ac35b90936  #指定对应namespace id[阿里]

测试

浏览器输入: http://localhost:5000/nacos/config/ip

image.png

Namespace/Group/Data ID 关系

image.png

详解介绍

Nacos默认的命名空间是public,Namespace主要用来实现配置隔离, 隔离范围大
Group默认是DEFAULT GROUP,Group可以把不同的微服务划分到同一个分组里面去
Service就是微服务, 相同的Service可以是一个Cluster(簇/集群), Instance 就是微服务的实例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kafka集群报错找不到broker

一、问题描述 某次用户反馈&#xff0c;kafka消费这边消息失败&#xff0c;报错消费者被踢出消费组或broker状态异常无法连接&#xff0c;后实际验证端口确实不通 现场测试验证&#xff0c;报错&#xff1a;报错&#xff1a;Failed to find brokers to send ListGroups……fi…

实战干货,pytest自动化测试-Git中的测试用例运行(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 我们每天写完自动…

httprunner 2.x的基本使用(二)

上一章&#xff1a; httprunner 2.x介绍与使用_做测试的喵酱的博客-CSDN博客 下一章&#xff1a; 一、 api 文件夹&#xff08;没有任何数据依赖的场景&#xff09; api 文件夹&#xff1a;执行接口case的最小单元。如果一个接口case&#xff0c;没有任何数据依赖&#xff0…

虚拟ECU实践:汽车发动机控制器仿真

虚拟化技术使得在Windows PC上对汽车ECU&#xff08;Electronic Control Unit&#xff0c;电子控制器单元&#xff09;进行闭环仿真成为可能&#xff0c;能有效改善ECU开发过程。一些开发任务得以从道路、测试平台和HIL&#xff08;Hardware in the Loop&#xff0c;硬件在环&a…

Python入门教程+项目实战-13.3节-集合的快速查找

目录 13.3.1 键的输出顺序 13.4.2 键的数据类型 13.4.3 集合的快速查找 13.4.4 知识要点 13.4.5 系统学习python 13.3.1 键的输出顺序 集合类型的底层实现基于哈希表&#xff0c;键的输出顺序取决于键在哈希表中的存储顺序。 对哈希表结构不是很熟悉的同学&#xff0c;可…

【DBA生存之四大守则---读书笔记】

&#x1f448;【上一篇】 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 【下一篇】&#x1f449; &#x1f53b;《Oracle 数据库性能优化》一书的序言中提到: 兴趣勤奋坚持方法成功 很遗憾我不能给以上公式画上“”&#xff0c;但是无…

Coggle 30 Days of ML 打卡任务一

Coggle 30 Days of ML 打卡任务一 任务一&#xff1a;两个赛题数据可视化 难度/分值&#xff1a;低/1 打卡内容&#xff1a; 参赛选手名称&#xff1a;AppleDoctor完成日期&#xff1a;2023.6.6任务完成情况&#xff1a; 使用的编程语言&#xff1a;Python实现的功能&#…

八大排序算法

八大排序算法 是指常用的八种排序算法&#xff0c;它们包括&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a;通过不断交换相邻元素的位置&#xff0c;将最大&#xff08;或最小&#xff09;的元素逐渐"冒泡"到最后&#xff08;或最前&#xf…

【技术分享】华为防火墙双机热备

组网需求 如图所示&#xff0c;两台FW旁挂在数据中心的核心交换机侧&#xff0c;保证数据中心网络安全。通过核心交换机的流量都会被引流到旁挂的FW上进行安全检测&#xff0c;引流的方式为静态路由方式。企业希望两台FW以主备备份方式工作。正常情况下&#xff0c;流量通过FW_…

android 如何分析应用的内存(五)

android 如何分析应用的内存&#xff08;五&#xff09; 接上文 lldb的工具篇的GUI部分。分成两部分&#xff1a; vscode 的LLDBas的LLDB 接下来是as的LLDB as的LLDB 为了进行LLDB的调试&#xff0c;需要对as进行配置&#xff0c;事实上&#xff0c;每一个在AS中编辑的应…

充电桩检测仪表TK4860E交流充电桩检定装置

波形失真度测量&#xff1a;具备电压电流波形失真度测量功能。 时钟校验功能&#xff1a;实时时钟显示&#xff0c;可完成充电桩的时钟时刻误差测试。 温湿度测量&#xff08;选配件&#xff09;&#xff1a;可选配蓝牙温湿度计&#xff0c;通过蓝牙连接平板电脑&#xff0c;…

properties、yaml作为配置文件的特点

说明&#xff1a;在软件开发中&#xff0c;经常需要把一些配置写在文件中&#xff0c;如数据库配置、MyBatis配置等。这样&#xff0c;后续如果数据库参数有改动&#xff0c;就可以避免直接对代码做修改&#xff0c;只要修改配置文件中关于数据库的配置。关于配置文件的选择&am…

数据分析师,如何写好分析报告来体现数据价值

对数据敏感 数据分析&#xff0c;从名字中就能看出来&#xff0c;数据是数据分析师实际工作中的核心。 对数据敏感是对数据分析师的要求&#xff0c;也是数据分析师在日常工作中培养出来的独特技能&#xff0c;相对于其他岗位的员工&#xff0c;他们会更容易眼发现数据信息中…

SPC Control Chart Tools for .Net Crack

.Net 的 SPC 控制图工具 版本 3.1 具有集成表格支持、频率直方图、Cpk 和 Ppk 统计和缩放功能的 X-Bar R Chart 添加变量控制图&#xff08;X-Bar R、X-Bar Sigma、Individual Range、Median Range、EWMA、MA、MAMR、MAMS 和 CuSum 图&#xff09;、属性控制图&#xff08;p-…

【第三章:链路层】

目录 知识框架No.0 引言No.1 功能零、基本功能概念一、封装成帧1、字符计数法2、字符填充法3、零比特填充法4、违规编码法 二、透明传输三、差错控制1、位错1.1、奇偶校验码1.2、循环冗余码CRC2、帧错2.1、海明码 四、流量控制1、停止-等待协议2、滑动窗口协议2.1、后退N帧协议…

Mybatis 学习笔记总结

1.概念 2.开发环境搭建 2.1 开发环境 2.2 创建Maven工程 <!--junit测试--><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope>&l…

【P56】JMeter 响应时间图(Response Time Graph)

文章目录 一、响应时间图&#xff08;Response Time Graph&#xff09;参数说明二、准备工作三、测试计划设计 一、响应时间图&#xff08;Response Time Graph&#xff09;参数说明 可以以图形的方式查看和分析各事务和取样器的响应时间 使用场景&#xff1a;用于评估测试结…

ASEMI代理英飞凌TLE4250-2G汽车级线性稳压器

编辑-Z TLE4250-2G参数描述&#xff1a; 型号&#xff1a;TLE4250-2G 输入电压VI&#xff1a;45V 输出电压VQ&#xff1a;40V 结点温度Tj&#xff1a;-40~ 150℃ 储存温度Tstg&#xff1a;-50~150℃ 输出电容器要求CQ&#xff1a;1F 连接到焊接点RthJSP&#xff1a;30K…

简单使用feign

feign是一款非常好用的&#xff0c;能直接把我们省去端口号的编写&#xff0c; 下面直接开始&#xff0c;需要有一定的SpringCloud的基础&#xff0c;不然可能看不明白&#xff0c;我这里很多都是关键步骤。敬请原谅。 首先我们需要引入feign的依赖 <!-- 引入openfiegn-->…

开发技术-使用 JDB 调试

Java 调试器&#xff08;JDB&#xff09;是 JDK 内置的命令行工具。从调试的指令和命令行接口两方面看的话&#xff0c;JDB 至少从概念上是 GNU 调试器&#xff08;GDB&#xff0c;受 Unix DB 的影响&#xff09;的继承者。 示例&#xff1a; public class SimpleDebugging {p…