前提先把nacos和ribbon装好
nacos可以将配置集中管理,同时也可进行配置的热更新
设置统一的配置文件
1.
2.
微服务拉取配置
微服务先从bootstrap中获取nacos地址,后读取nacos中的配置文件,再到本地配置文件
1)引入nacos-config依赖
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2)添加bootstrap.yaml
spring:
application:
name: userservice # 服务名称
profiles:
active: dev #开发环境,这里是dev
cloud:
nacos:
server-addr: localhost:8848 # Nacos地址
config:
file-extension: yaml # 文件后缀名
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
作为文件id,三个属性的值加起来就是配置文件
配置热更新
方式一:
在@Value注入的变量所在类上添加注解@RefreshScope,其余两个不用加,会自动调用更新
方式二:
新建一个类,用来存储配置文件中的属性
使用@ConfigurationProperties注解代替@Value注解。
@ConfigurationProperties(prefix = "pattern")
方式三:
直接自动注入Environment
配置共享
因为微服务启动时会读取多个配置文件,如果配置文件不包括环境,就会被多个环境共享
优先级
搭建Nacos集群
搭建集群的基本步骤:
-
搭建数据库,初始化数据库表结构
-
下载nacos安装包
-
配置nacos
-
启动nacos集群
-
nginx反向代理
1.进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf,并添加127.0.0.1:8845
127.0.0.1:8846
127.0.0.1:8847
这些IP要根据nacos网页控制台的集群管理>节点列表里的节点IP来定义,端口号不要冲突
2.然后修改application.properties文件,添加数据库配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123
3.将nacos的文件夹复制三份,并分别将application.properties中的server.port的值修改为对应的端口号后,启动他们
4.修改nginx的配置文件
upstream nacos-cluster {
server 127.0.0.1:8845;
server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
server {
listen 80;
server_name localhost;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
5.application.yml文件配置:
spring:
cloud:
nacos:
server-addr: localhost:80 # Nacos地址
优化
-
实际部署时,需要给做反向代理的nginx服务器设置一个域名,这样后续如果有服务器迁移nacos的客户端也无需更改配置.
-
Nacos的各个节点应该部署到多个不同服务器,做好容灾和隔离