结论
项目应用名配置文件 ——优先于》扩展配置文件——优先于》共享配置文件——优先于》本地配置文件
例如在nacos 中配置
content-api-dev.yaml
server:
servlet:
context-path: /content
port: 63040
那么在本地修改端口后启动端口仍然为63040
如果要本地优先 则需要进行以下配置
content-api-dev.yaml
#配置本地优先
spring:
cloud:
config:
override-none: true
配置配置中心和注册中心(本地必须配置)
spring:
application:
name: content-api #服务名
profiles:
active: dev #环境名
cloud:
nacos:
server-addr: 192.168.56.200:58848
#注册中心 pom需要引入nacos discovery
discovery:
namespace: dev
group: jhj-ultimate
#配置中心 pom需要引入nacos config
config:
namespace: dev
group: jhj-ultimate
file-extension: yaml
refresh-enabled: true
#扩展配置 引入其他的
extension-configs:
- data-id: content-service-${spring.profiles.active}.yaml
group: jhj-ultimate
refresh-enabled: true
#共享配置 公用的
shared-configs:
- data-id: logging-${spring.profiles.active}.yaml
group: jhj-ultimate
refresh-enabled: true
nacos中每一个配置的名称
名称为 ${spring.application.name}- ${spring.profiles.active}.yaml 其中yaml为配置方式
docker 安装nacos
docker-compose 单机模式安装nacos
由于我将文件保存到mysql中所以需要提前安装mysql
version: '3'
services:
nacos:
image: nacos/nacos-server:2.0.3
container_name: nacos
environment:
# 支持主机名可以使用hostname,否则使用ip,默认ip
- PREFER_HOST_MODE=ip
- TZ=Asia/Shanghai
# 单机模式
- MODE=standalone
# 数据源平台 支持mysql或不保存empty
- SPRING_DATASOURCE_PLATFORM=mysql
# mysql配置,!!!attention必须是mysql所在主机IP
- MYSQL_SERVICE_HOST=192.168.56.200
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
- MYSQL_SERVICE_DB_NAME=ju_config
volumes:
- ./nacos/logs:/home/nacos/logs
ports:
# web port
- 58848:8848
# client grpc to server,服务请求
- 59848:9848
# server grpc to server,服务同步
- 59849:9849
restart: always
作者声明
如有问题,欢迎指正!