第一篇:Spring-Cloud-Nacos:配置中心

Spring-Cloud合集

第一篇:Spring-Cloud-Nacos:配置中心
第二篇:Spring-Cloud-Nacos:服务注册与发现
第三篇:Spring-Cloud-Nacos:负载均衡
第四篇:Spring-Cloud-Gateway:网关
第五篇:Spring-Cloud-Sentinel:Sentinel作为熔断器
项目源码:Spring-Cloud-Nacos

前言

Nacos可以实现分布式下的配置管理,可以动态的进行配置的更改。

正文

首先下载Nacos服务:
Nacos下载
Nacos官网
在这里插入图片描述

如果GitHub下载太慢,也可以去我的网盘上下载

链接:https://pan.baidu.com/s/1XI_ous59pz9um-9WSJWefg
提取码:l9k3

下载后解压,目录如下:
在这里插入图片描述
进入bin文件夹
在这里插入图片描述
可以看到启动与关闭脚本,.cmd后缀为windows下的脚本命令,.sh为MacOs下的脚本。
打开终端,运行脚本(注意:加入参数 -m standalone 表示在单机模式下启动)

#window下直接进入bin文件夹下,在目录上输入cmd启动终端,输入命令
startup.cmd -m standalone
#Mac同理,打开终端进入bin文件夹,执行命令
sh startup.sh -m standalone

出现以下界面说明启动成功,可以访问http://localhost:8848进入Nacos配置中心,初始账户密码为:nacos/nacos。
在这里插入图片描述
进入本地Nacos服务(http://localhost:8848/nacos),进行配置,要注意的是Data ID要与application.name相同,后缀.properties可加也可不加。但是配置的格式要与resource下的bootstrap文件相同。选择yaml格式的时候需要在bootstrap中配置spring.cloud.nacos.config.file-extension=yaml
在这里插入图片描述
在这里插入图片描述
启动Nacos服务后,开始构建项目,由于之后还有关于注册中心和负载均衡、网关等内容,因此我们建立一个多模块的Maven项目,新建Maven父模块Spring-Cloud-Nacos。
在这里插入图片描述
删除src文件在这里插入图片描述
引入父依赖,Spring-Cloud版本为:2020.0.1、spring-boot版本为:2.4.2、spring-cloud-alibaba版本为:2021.1,更多版本对应信息参考: Spring-Cloud-Alibaba

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2020.0.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.4.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

新建子模块nacos-config(配置中心)
在这里插入图片描述
在这里插入图片描述
引入Nacos-Config子模块依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
  <!-- 注意:Nacos官网文档并没有引入bootstrap依赖,但是高版本是需要的,不然会报错 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
</dependencies>

resource下新建配置文件:bootstrap.properties

server.port=8080

#必须配置application.name,这是nacos的data_id的一部分,不配置无法找到Nacos的配置文件
spring.application.name=nacos-config

#Nacos地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

#当配置文件格式为yaml时,需要进行如下配置(当前是.properties格式,故注释)
#spring.cloud.nacos.config.file-extension=yaml

#指定命名空间ID
#spring.cloud.nacos.config.namespace=***************

#本地配置,通过Nacos进行更改
user.name=ZhangSan
user.age=18

如果Nacos服务配置中新建了命名空间,并在命名空间下创建配置,那么bootstrap.properties中需要声明命名空间ID:

spring.cloud.nacos.config.namespace=***

在这里插入图片描述

新建启动类NacosConfigApplication

package com.king.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author TheKing
 * @version 1.0
 * @className ConfigApplication
 * @description
 * @date 2022/7/25 16:29
 */
@SpringBootApplication
public class NacosConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApplication.class,args);
    }

}

新建controller请求,添加 @RefreshScope 开启配置动态更新

package com.king.config.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author TheKing
 * @version 1.0
 * @className NacosConfigComtroller
 * @description
 * @date 2022/7/25 16:32
 */
@RestController
@RefreshScope
public class NacosConfigComtroller {

    @Value("${user.name}")
    String name;

    @Value("${user.age}")
    String age;

    @GetMapping("/get")
    public String getProperties(){
        return "My name is:"+name+" ,age:"+age;
    }
}

接着去到NacosConfigApplication启动类,启动项目
在这里插入图片描述
或者添加启动类配置启动项目
在这里插入图片描述

启动项目,访问http://localhost:8080/get,出现以下内容,代表成功覆盖了bootstrap.properties的内容。
在这里插入图片描述

可以更改Nacos中的配置并发布,测试动态更新是否生效。
在这里插入图片描述
再次访问http://localhost:8080/get,出现以下界面:
在这里插入图片描述

源码下载

TY-The-King’s GitHub
TY-The-King’s GitHub Blog
项目源码:Spring-Cloud-Nacos

更多Nacos的使用方法可到官网文档查看: Nacos官网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值