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 测试访问
账号: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