Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
直接解压后在bin目录下启动

注意查看启动

启动成功后:默认账号/密码: nacos

测试环境,可以先用 standalone 模式撸起来,享受 coding 的快感,但是,生产环境可以使用 cluster 模式。
cluster 模式需要依赖 MySQL,然后改两个配置文件:
conf/cluster.conf
conf/application.properties
大致如下:
1: cluster.conf,填入要运行 Nacos Server 机器的 ip
192.168.100.155
192.168.100.156
2: 修改NACOS_PATH/conf/application.properties,加入 MySQL 配置
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
创建一个名为nacos_config的 database,将NACOS_PATH/conf/nacos-mysql.sql中的表结构导入刚才创建的库中,这几张表的用途就自己研究吧
我们没有对 Nacos Server 做任何配置,那么数据只有两个位置可以存储:
如果我们现在重启刚刚在运行的 Nacos Server,会发现刚才加的 nacos.properties 配置还在,说明不是内存存储的。
这时候我们打开NACOS_PATH/data,会发现里边有个derby-data目录,我们的配置数据现在就存储在这个库中。
Derby 是 Java 编写的数据库,属于 Apache 的一个开源项目
如果将数据源改为我们熟悉的 MySQL 呢?当然可以。
注意:不支持 MySQL 8.0 版本
这里有两个坑:
Nacos Server 的数据源是用 Derby 还是 MySQL 完全是由其运行模式决定的:
standalone 的话仅会使用 Derby,即使在 application.properties 里边配置 MySQL 也照样无视;
cluster 模式会自动使用 MySQL,这时候如果没有 MySQL 的配置,是会报错的。

所有渠道端可以读取放置在配置中心的配置文件;简单说:“抽取配置文件到nacos,然后服务(系统)只需要指定nacos所建配置文件的路径即可”

命名空间下存在不同的分组,而在组之下就是配置文件(目录结构式管理–三者定位)
这样的服务获取配置文件就需要指定命名空间、分组、配置文件名
默认的命名空间:public(无空间ID)



bootstrap加载优先级高于application.yaml
spring.application.name=nacos_config_test
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP
# 如果不是在public空间下需要指定空间ID
#spring.cloud.nacos.config.namespace=71fa8cbc-535b-4ae1-9535-ec75d3807f0c
spring.cloud.nacos.config.name=nacos_config.properties
naocs-demo:
UTF-8 1.8 1.8 Hoxton.SR8 2.3.2.RELEASE 2.2.5.RELEASE org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-dependencies ${springboot.version} pom import com.alibaba.cloud spring-cloud-alibaba-dependencies ${springcloudalibaba.version} pom import
nacos_config_test:
配置中心依赖:
org.springframework.boot spring-boot-starter-web com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config
RefreshScope 刷新


配置管理

bootstrap.properties
]spring.application.name=nacos_config_test
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=71fa8cbc-535b-4ae1-9535-ec75d3807f0cspring.cloud.nacos.config.extension-configs[0].data-id=myTest.yaml
spring.cloud.nacos.config.extension-configs[0].group=my_group
spring.cloud.nacos.config.extension-configs[0].refresh=truespring.cloud.nacos.config.extension-configs[1].data-id=myTest.yaml
spring.cloud.nacos.config.extension-configs[1].group=test_group
spring.cloud.nacos.config.extension-configs[1].refresh=true
字面意思