nacos的服务注册与动态配置切换

一.向pom.xml文件中引入依赖 依赖缺少将无法注册

//1.基本的版本信息

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
​
//jdk版本
<java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        
​
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
​
//spring boot版本
<spring-boot.version>2.4.2</spring-boot.version>
​
//基于spring cloud的spring colud alibaba版本
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
​
//Spring cloud 版本    
<spring-cloud.version>2020.0.6</spring-cloud.version>
</properties>

//2.添加依赖信息

    //此依赖spring boot 项目的启动依赖必不可少

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

    //如果你想使用nacos的动态配置切换功能,则必须添加该依赖 否则无需添加

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

   //如果你没有直接将上面图片中nacos的配置写入到application.yml文件中,而是重新创建了一个bootstrap.yml文件则需要此依赖,否则不需要

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

     //此依赖实现nacos的注册发现 必须添加否则无法注册服务到nacos

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId
</dependency>
​
​

//3.依赖的版本控制

<dependencyManagement>
    //在1中我们以及添加了版本信息 在此进行版本控制,意思就是<groupId>org.springframework.cloud</groupId> ,这个dependencies可以理解为只要group id为org.springframework.cloud,则使用这个版本
    <dependencies>
•        <dependency>
•            <groupId>org.springframework.cloud</groupId>
•            <artifactId>spring-cloud-dependencies</artifactId>
•            <version>${spring-cloud.version}</version>
•            <type>pom</type>
•            <scope>import</scope>
          </dependency>
          //spring boot版本控制
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            //sping cloud alibaba版本控制
            <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>
</dependencyManagement>

//4.使用docker 安装nacos后如果无法使用 ip:8848 访问到nacos,

检查防火墙设置:如果端口映射设置正确,但仍无法访问Nacos,那么可能是由于防火墙设置阻止了对 Nacos容器端口的访问。可以通过以下命令检查防火墙设置:

sudo iptables -A INPUT -p tcp --dport 8848 -j ACCEPT

     如果此时还未访问成功,请检查你的访问路径是否为 ip:8848/nacos,nacos绝对不可以丢

    //如果是云服务器则还需要在界面打开端口8848

 //5注册成功,将会在控制台展示nacos的相关信息

二.nacos服务注册的配置文件的攥写

spring:
  application:
    name: gzwd-oss //当前的注册的微服务名称,必须添加
  profiles:
    active: dev //代表当前是一个开发环境,如果是测试环境就写test,不加也不影响注册
  cloud:
    nacos:
      discovery:    
       enabled: true
       server-addr:  //必须添加,当前nacos的地址

三.动态配置切换功能

      1.添加依赖 spring-cloud-starter-alibaba-nacos-config (具体添加依赖在第一步中可以找到),这我们就可以在配置文件中添加spring.nacos.config配置了

      2.更新配置文件

spring:
  application:
    name: gzwd-oss
  profiles:
    active: dev//2.当前动态配置data-id的前缀,拼接在prefix的后面
  cloud:
    nacos:
//动态配置切换的配置
      config:
      //nacos的地址
        server-addr: 
      //1.当前动态配置data-id的前缀,如果不设置则是默认的spring.application.name
        prefix: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace:
        file-extension: yml //3.当前动态配置data-id的后缀,拼接在prefix的后面
        data-id: gzwd-oss-dev.yml
​
      discovery:
        enabled: true
        server-addr:
storage:
  config: minio //测试动态切换功能,将minio切换成aliyun
​
•           
​
​

         通过配置文件中的1,2,3获得data-id为,spring.cloud.nacos.prefix(没有默认为spring.application.name)+spring.profiles.active.yml(yml 是由spring.cloud.nacos.file-extension确定)

   3.nacos的配置

          将2中获得的data_id添加,group默认为 DEFAULT_GROUP,与配置文件中的保持一致即         可,配置格式与data_id的后缀保持一致

         切换minio为aliyun

4.动态配置功能检验

     //spring boot启动时,会自动配置,@ConfigurationProperties(prefix = "storage")会将我          们配置文件中stroge:中的同名属性,放入到 同名属性中,

     //@Component并将ExamplePropertie加入到ioc容器中去(控制反转ioc)

@Component
@ConfigurationProperties(prefix = "storage")
//@RefreshScope  这个注解是刷新这个bean的注解,如果你最好无法存根检测出正确结果,可以加上该注解尝试刷新ExampleProperties
public class ExampleProperties {
    private String config;
​
    // getters and setters
    public String getConfig() {
        return config;
    }
​
    public void setConfig(String config) {
        this.config = config;
    }
}

//检测结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值