网站建设和网页建设的区别,上海注册汽车租赁公司,信阳网站开发建设公司,泉州建站方案Nacos的配置管理
放个妹子能增加访问量#xff1f;
动态配置服务
动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
动态配置消除了配置变更时重新部署应用和服务的需要#xff0c;让配置管理变得更加高效和敏捷。
配置中心化管…Nacos的配置管理
放个妹子能增加访问量
动态配置服务
动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
动态配置消除了配置变更时重新部署应用和服务的需要让配置管理变得更加高效和敏捷。
配置中心化管理让实现无状态服务变得更简单让服务按需弹性扩展变得更容易。
前提
需要搭建一个nacos单机或者集群按照链接文档搭建
创建配置
这里先创建配置好在应用集成的时候说明参数释义
创建命名空间,在命令空间菜单下点击新建空间名为nacos-config-example 点击创建配置按照以下图示创建,并点击发布 这里有个dataId是应用获取nacos配置文件的唯一标识匹配规则在应用集成
应用集成
创建nacos-config-example模块
引入依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependency/dependenciesspring-boot版本号为2.4.2,nacos-config版本号为2021.1,bootstrap版本号为3.0.3在父pom中定义此处不展示
创建ConfigApplication,此处将controller也写在一块
package cn.axj.config;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
SpringBootApplication
public class ConfigApplication {Value(${useLocalCache})private boolean useLocalCache;/*** 测试连接获取配置信息*/GetMapping(/config)public Object config(){return useLocalCache;}public static void main(String[] args) {SpringApplication.run(ConfigApplication.class,args);}
}
在resources下创建bootstrap.yml文件并配置nacos配置中心的相关信息
spring:application:name: nacos-config-examplecloud:nacos:config:group: nacos-config-example-groupnamespace: nacos-config-exampleserver-addr: 192.168.56.102:8848,192.168.56.104:8848,192.168.56.105:8848file-extension: ymlprefix: ${spring.application.name}参数释义:
参数名称参数释义参数作用server-addrnacos的ip地址集群模式下需要配置所有的节点信息配置nacos机器地址namespace对应nacos的命名空间配置的隔离性和安全性group在配置的时候有个组信息默认是DEFAULT_GROUP配置的隔离性file-extension配置文件结束标记目前只支持yml或者properties获取nacos配置文件的组成部分prefix配置的前缀默认是${spring.application.name}可以自定义可不配置使用默认
tips: 这里可以看到nacos没有配置usernamepassword可以直接访问到nacos并获取配置信息。这是因为nacos默认的弱鉴权机制官方强烈不推荐nacos暴露到公网环境中如果要暴露到公网环境中需要自己实现nacos的鉴权插件实现自己的鉴权逻辑,不然会有巨大的安全风险。
关于应用会从nacos配置中心获取哪一份配置的说明
说明之所以需要配置 spring.application.name 是因为它是构成 Nacos 配置管理 dataId字段的一部分。
在 Nacos Spring Cloud 中dataId 的完整格式如下
${prefix}-${spring.profiles.active}.${file-extension}prefix 默认为 spring.application.name 的值也可以通过配置项 spring.cloud.nacos.config.prefix来配置。spring.profiles.active 即为当前环境对应的 profile详情可以参考 Spring Boot文档。 注意当 spring.profiles.active 为空时对应的连接符 - 也将不存在dataId 的拼接格式变成 ${prefix}.${file-extension}file-exetension 为配置内容的数据格式可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
启动ConfigApplication访问localhost:8080/config,看到返回最开始配置的false
在线编辑动态刷新 选中nacos-config-example.yml点击编辑将useLocalCache配置改成true并点击发布 访问localhost:8080/config,看到返回还是最开始配置的false
如何实现动态刷新
在controller类上面加上SpringCloud的原生注解RefreshScope,需要动态刷新的controller都需要加上在ConfigApplication上面加上RefreshScope注解
RestController
SpringBootApplication
RefreshScope
public class ConfigApplication {...
}重启应用由于此时useLocalCache的值已经变成true所以此时访问localhost:8080/config会返回true 将useLocalCache的值改成false并点击发布,再次访问localhost:8080/config观察返回值是否同步更新
一键回滚
当动态更新配置的时候由于错误配置等各种原因需要将配置还原nacos提供了历史版本功能。可以直接回滚到想要的版本中去。
点击历史版本或者菜单栏点击历史版本模块 历史版本界面 点击详情可以看到当前版本的配置内容点击对比可以看到当前版本对应上一个版本的变动内容点击回滚后点击回滚配置可以将配置更新到当前版本
监听查询
监听查询有配置和ip的维度。
通过搜索对应的配置信息可以查询到有哪个ip的机器获取过该配置信息。 如图所示nacos-config-example被192.168.56.1获取过。
tips,由于我的nacos(192.168.56.102-105)在虚拟机环境下所以宿主机ip为192.168.56.1