桓台网站制作,网站建设部署与发布答案,wordpress收费阅读,端午节网站怎么做6.1 Nacos实现配置管理
配置更改热更新 在nacos左侧新建配置管理 Data ID#xff1a;就是配置文件名称 一般命名规则#xff1a;服务名称-环境名称.yaml 配置内容填写#xff1a;需要热更新需求的配置 配置文件的id#xff1a;[服务名称]-[profile].[后缀名] 分组#…6.1 Nacos实现配置管理
配置更改热更新 在nacos左侧新建配置管理 Data ID就是配置文件名称 一般命名规则服务名称-环境名称.yaml 配置内容填写需要热更新需求的配置 配置文件的id[服务名称]-[profile].[后缀名] 分组默认即可 格式目前支持yaml和properties
6.2 微服务配置拉取
配置获取的步骤如下 服务启动会先读取bootstrap.yml文件的内容将有关nacos地址的内容写在bootstrap文件中。 1.引入Nacos的配置管理客户端依赖
!--nacos配置管理依赖--
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
/dependency2.在userservice中的resource目录添加一个bootstrap.yml文件这个文件是引导文件优先级高于application.yml
spring:application:name: userservice # 服务名称profiles:active: dev # 开发环境这里是devcloud:nacos:server-addr: localhost:8848 # Nacos地址config:file-extension: yaml # 文件后缀名如何证明拉取到了配置呢 微服务获取nacos中的配置信息 读取nacos配置内容 我们在user-service中将pattern.dateformat这个属性注入到UserController中做测试
RestController
RequestMapping(/user)
public class UserController {// 注入nacos中的配置属性Value(${pattern.dateformat})private String dateformat;// 编写controller通过日期格式化器来格式化现在时间并返回GetMapping(now)public String now(){return LocalDate.now().format(DateTimeFormatter.ofPattern(dateformat, Local.CHINA));}
}总结
将配置交给Nacos管理的步骤 在Nacos中添加配置文件 在微服务中引入nacos的config依赖 在微服务中添加bootstrap.yml配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件。
6.3 配置热更新
配置自动刷新 Nacos中的配置文件变更后微服务无需重启就可以感知。不过需要通过下面两种配置实现
方式一在Value注入的变量所在类上添加注解RefreshScope
Slf4j
RestController
RequestMapping(/user)
RefreshScope
public class UserController{Value(${pattern.dateformat})private String dateformat;
}方式二使用ConfigurationProperties注解
Component
Data
ConfigurationProperties(predix pattern)
public class PatternProperties{private String dateformat;
}总结
Naocs配置更改后微服务可以实现热更新方式 通过Value注解注入结合RefreshScope来刷新 通过ConfigurationProperties注入自动刷新
注意事项 不是所有的配置都适合放到配置中心维护起来比较麻烦。 建议将一些关键参数需要运行时调整的参数放到nacos配置中心一般都是自定义配置。
6.4 多环境配置共享
微服务启动时会从nacos读取多个配置文件
[spring.application.name]-[spring.profiles.active].yaml例如userservice-dev.yaml[spring.application.name].yaml例如userservice.yaml
无论profile如何变化[spring.application.name].yaml这个文件一定会加载因此多环境共享配置可以写入这个文件。
多种配置的优先级 服务名-profile.yaml 服务名称.yaml 本地配置
总结
微服务会从nacos读取的配置文件
[服务名]-[spring.profile.active].yaml环境配置[服务名].yaml默认配置多环境共享
优先级 [服务名]-[环境].yaml [服务名].yaml 本地配置
6.5 nacos集群搭建
Nacos生产环境下一定要部署为集群状态
6.5.1 集群结构图
我们计划的集群结构
6.5.2 搭建集群
搭建集群的基本步骤
搭建数据库初始化数据库表结构下载nacos安装包配置nacos启动nacos集群nginx反向代理
6.5.2.1 初始化数据库
Nacos默认数据存储在内嵌数据库Derby中不属于生产可用的数据库。 官方推荐的最佳实践是使用带有主从的高可用数据库集群主从模式的高可用数据库参考后续课程。 这里以单点的数据库为例讲解
6.5.2.2 下载nacos
6.5.2.3 配置nacos
解压nacos安装包以后 目录说明
bin启动脚本conf配置文件 进入nacos的conf目录修改配置文件cluster.conf.example重命名为cluster.conf。然后添加内容
# 添加内容为nacos集群分别的安装IP和端口 例如
192.168.16.101:8845
192.168.16.101:8846
192.168.16.101:8847然后修改application.properties文件添加数据库配置
spring.datasource.platformmysqldb.num1db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
db.user.0root
db.password.01236.5.2.4 启动
将nacos文件复制三份分别命名为nacos1、nacos2、nacos3 然后分别修改三个文件夹中的application.properties, nacos1:
server.port8845nacos2:
server.port8846nacos3:
server.port88476.5.2.5 nginx反向代理
安装解压nginx 修改conf/nginx.conf文件配置如下
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 { # nacos默认路径proxy_pass http://nacos-cluster;}
}对于nacos的操作和之前一样新增完配置之后会在数据库的conf.info表中新增一条配置信息做了数据持久化
总结
集群搭建步骤
搭建MySQL集群并初始化数据库表下载解压nacos修改集群配置节点信息、数据库配置分别启动多个nacos节点nginx反向代理