【Springboot】Nacos注册中心和配置中心(1.1.3)

44 篇文章 1 订阅
20 篇文章 0 订阅

Github:https://github.com/alibaba/nacos

一、下载Nacos Server

下载链接:https://github.com/alibaba/nacos/releases

以1.1.3版本为例:
在这里插入图片描述
点击下载并解压,打开:..\nacos-server-1.1.3\nacos\bin,双击startup.cmd启动。
在这里插入图片描述
注意:如果运行闪退,需要配置JAVA_HOME

二、配置中心

2.1 配置

1 修改pom.xml文件,引入Nacos Discovery Starter

<!-- 服务注册/发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2 在应用的src/main/resources/application.yml配置文件中配置Nacos Server地址

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

3 在应用的src/main/resources/application.yml配置文件中配置服务的名称

spring:
  application:
    name: gulimall-product

4 使用@EnableDiscoveryClient注解开启服务注册与发现功能

@EnableDiscoveryClient
@SpringBootApplication
public class GulimallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallProductApplication.class, args);
    }

}

2.1 测试访问

地址:localhost:8848/nacos

账号:nacos
密码:nacos

启动项目后,可在nacos页面-服务列表中找到刚刚启动的服务。
在这里插入图片描述

三、配置中心

微服务任何配置信息都可以存储在配置中心,只需在bootstrap.properties声明需要加载配置中心内的哪些配置文件。

Springboot获取常规配置文件的方法,都可以直接用于获取配置中心内的配置。

注意:优先获取配置中心内配置。

3.1 配置

1 修改pom.xml文件,引入Nacos Config Starter

<!-- 配置中心来做配置管理-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2 在应用的src/main/resources/bootstrap.properties配置文件中配置Nacos Config元数据

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3.2 使用方式

可以动态的获取配置中心的值,在项目启动时会自动读取项目名.properties

1 在配置中心创建一个名为gulimail-coupon.properties的数据集(Data Id),命名规则:应用名.properties
在这里插入图片描述
2 给应用名.properties添加一些配置用于测试
在这里插入图片描述
3 使用@Value注解在控制器中读取数据

@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;

4 使用@RefreshScope注解动态获取配置

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
	...
}

5 在配置中心点击“编辑”,修改后可重新发布
在这里插入图片描述
注意:如果配置中心和当前应用配置文件都配置了相同的项,优先使用配置中心的配置。

3.3 细节

每个微服务创建自己的命名空间,如产品、订单、人员等等;使用配置分组区分环境,如开发(dev)、测试(test)、上线(prop)。

3.3.1 命名空间

用于配置隔离,默认值为public(保留空间),所有新添的配置集的命名空间均为public

主要应用微服务配置隔离:每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置。

在这里插入图片描述
下图红框中的内容为已经创建的命名空间。
在这里插入图片描述
相同名称的配置集 可放在不同的命名空间下,用于快速切换配置。

切换命名空间的方式:修改src/main/resources/bootstrap.properties配置文件,选择需要命名空间的UUID

# 当前的命名空间的UUID
spring.cloud.nacos.config.namespace=ebab9fc1-9f93-4997-b3af-7fc23f1a60de

3.3.2 配置集ID

配置集:所有配置的集合

配置集ID,就类似一个文件的名字
在这里插入图片描述

3.3.3 配置分组

默认所有的配置集都属于:DEFAULT_GROUP,在新建配置时可以选择分组Group。

选择分组方式:修改src/main/resources/bootstrap.properties配置文件

spring.cloud.nacos.config.group=dev

3.3.4 加载多个配置集

举例:数据源相关的配置放在datasource.yml中;mybatis相关的配置放在mybatis.yml中;其他配置放在other.yml
举例:
修改src/main/resources/bootstrap.properties配置文件

# 命名空间下的Data Id
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
# Data Id对应的group
spring.cloud.nacos.config.ext-config[0].group=dev
# 是否动态刷新
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望天边星宿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值