Nacos简介
Nacos是阿里巴巴集团开发的一款开源平台,用于配置/服务发现/服务管理,Nacos可以帮助我们很容易的构建云本机应用程序和微服务架构。Nacos基本上支持现在所有类型的服务,比如说GRPC/Dubbo服务/SpringCloud Restful服务/Kubernetes服务。
作为微服务开发人员都应该知道的,Eureka作为服务注册中心,总考虑到Eureka的闭源问题,Nacos的出现,程序员们就可以把服务注册中心改为Nacos了。
Nacos配置中心-QuickStart
首先增加依赖。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
在bootstrap.yml
中增加配置。注意一定要在bootstrap.yml
中配置。
spring:
cloud:
nacos:
config:
server-addr: localhost:8848 #配置中心地址
file-extension: yaml #配置文件后缀默认是properties
application:
name: nacos-demo
profiles:
active: dev
增加配置类NacosConfig
。@RefreshScope
注解用来动态更新Nacos中最新的配置。
@Data
@Component
@RefreshScope
public class NacosConfig {
@Value("${your.configuration}")
private String configuration;
}
测试类。
@RestController
public class TestController {
@Autowired
private NacosConfig nacosConfig;
@GetMapping("/hello")
public String hello() {
System.out.println("hello world");
return nacosConfig.getConfiguration();
}
}
我们再看下Nacos中的配置。
我们可以看到Data Id
需要与配置中的属性保持一直,即spring.application.name-spring.profiles.active.file-extension
相同应用不同环境配置共享
只需要提取一个以 spring.application.name 命名的配置文件,然后将其所有环境的公共配置放在里 面即可。例如:
可以被spring.application.name=nacos-demo
的所有服务共享。
不同微服务中间共享配置
有的时候我们需要将多个服务相同的配置信息设置成公用配置。例如:
Nacos提供两种方式配置共享:
-
shared-dataids
spring: cloud: nacos: config: server-addr: localhost:8848 #配置中心地址 file-extension: yaml #配置文件后缀默认是properties # 共享配置的DataId,多个使用,分隔 # 越靠后,优先级越高 shared-dataids: common1.yaml refreshable-dataids: common1.yaml application: name: nacos-demo profiles: active: dev
-
ext-config
spring: cloud: nacos: config: server-addr: localhost:8848 #配置中心地址 file-extension: yaml #配置文件后缀默认是properties # 共享配置的DataId,多个使用,分隔 # 越靠后,优先级越高 #shared-dataids: common1.yaml #refreshable-dataids: common1.yaml ext-config: - data-id: common1.yaml group: DEFAULT_GROUP refresh: true application: name: nacos-demo profiles: active: dev
实例化数据库
Nacos Server 默认使用的是内嵌的数据库,生产环境建议修改使用 mysql 数据库存储配置信息。
在配置文件application.properties添加配置:
### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://www.xm-fighting.com:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=xm
db.password=hw4372156
创建数据库,在Nacos Server conf文件夹下,找到nacos-mysql.sql文件,导入创建的数据库即可。