当前位置: 首页 > 后端技术 > Java

快速搭建SpringCloudAlibabaNacos配置中心!

时间:2023-04-01 18:41:38 Java

SpringCloudAlibaba是阿里巴巴提供的一站式微服务开发解决方案,已被SpringCloud正式收录。Nacos作为SpringCloudAlibaba的核心组件之一,提供了两个非常重要的功能:服务注册(服务注册和发现)功能,以及统一配置中心功能。Nacos简介Nacos致力于帮助开发者发现、配置和管理微服务。它提供了一组易于使用的功能集,帮助开发者快速实现动态服务发现、服务配置、服务元数据和流量管理。Nacos特性介绍Nacos具有以下特性:服务发现和服务健康监控:支持基于DNS和RPC的服务发现,支持对服务进行实时健康检查,防止向不健康的主机或服务实例发送请求。动态配置服务:动态配置服务让您可以集中、外部、动态地管理所有环境的应用配置和服务配置。动态DNS服务:动态DNS服务支持加权路由,让您更容易实现数据中心内网的中间层负载均衡、更灵活的路由策略、流量控制和简单的DNS解析服务。服务及其元数据管理:支持从微服务平台建设的角度对数据中心所有服务及其元数据进行管理。配置中心功能的实现1.添加依赖新建一个SpringBoot项目,添加nacosconfig和web(非必需)框架依赖,如下图:PS:添加web依赖的主要作用是方便后续代码测试。如果是老项目,需要手动添加nacosconfig的依赖,修改pom.xml文件,添加如下内容:org.springframework.bootspring-boot-starter-webcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-config2。配置NacosConfig信息在应用的/src/main/resources/目录下,创建一个bootstrap配置文件bootstrap.yml(或bootstrap.properties),添加如下NacosConfig配置信息:spring:application:name:nacosconfig#项目名称匹配nacosDataIdcloud:nacos:config:server-addr:127.0.0.1:8848#nacos地址和端口file-extension:yaml#配置文件获取格式:yamlusername:nacos#nacos认证用户名密码:nacos#nacos认证密码server:port:9001#项目启动端口3.写代码读取配置文件创建controller,使用@Value注解读取配置信息,读取方式同SpringBoot读取本地配置代码:importorg.springframework.beans.factory。注释。值;导入org.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassTestController{//从nacos读取配置项config.info@Value("${config.info}")privateStringconfigInfo;@GetMapping("/getconfig")publicStringgetConfigInfo(){返回配置信息;}}4.Nacos控制台添加配置信息在Nacos控制台创建并设置配置文件,执行步骤如下首先在配置列表中点击“添加”按钮,如下图:进入配置页面并新建一个YAML或Properties配置文件,如下图所示:上述关键参数的含义及规则解释如下。①DataIDDataID的拼接格式如下:${prefix}-${spring.profiles.active}。${file-extension}其中prefix默认为spring.application.name的值,也可以通过配置项spring.cloud进行配置。nacos.config.prefix进行配置。spring.profiles.active是当前环境对应的profile。当activeprofile为空时,对应的connector-将不存在,dataId的拼接格式变为${prefix}.${file-extension}file-extension来配置内容的数据格式,可以通过配置配置项spring.cloud.nacos.config.file-extension。目前仅支持属性类型。②GroupGroup分组选项主要用于隔离不同的配置项。它的默认值为DEFAULT_GROUP,可以通过spring.cloud.nacos.config.group进行配置。配置好相应的内容后,点击下方的“发布”按钮。添加成功后会自动返回配置列表,如下图:启动项目,查看执行结果如下图:动态刷新功能动态刷新功能是指:修改的配置内容在Nacos配置中心可以实时读取,无需重启项目。默认情况下,Nacos会为所有成功获取数据的Nacos配置项添加监控功能。当它检测到服务器配置发生变化时,会实时触发org.springframework.cloud.context.refresh.ContextRefresher的refresh方法。但是如果需要动态刷新Bean,需要参考Spring和SpringCloud的规范,建议在类上加上@RefreshScope或@ConfigurationProperties注解。以上述案例为例,如果需要添加动态刷新功能,只需要在controller中添加@RefreshScope注解即可,实现代码如下:importorg.springframework.beans.factory.annotation。价值;导入org.springframework.cloud.context.config.annotation.RefreshScope;导入org.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RefreshScope//开启配置文件动态刷新publicclassTestController{//从nacos读取配置项config.info@Value("${config.info}")私有字符串配置信息;@GetMapping("/getconfig")publicStringgetConfigInfo(){返回配置信息;}}final执行结果如下:亮点功能介绍Nacos配置中心有两个实用的功能:一是修改配置时的内容对比,让修改后的配置内容一目了然,防止误操作;二是历史版本一键回滚功能,让您轻松溯源回滚配置文件。1、配置文件对比修改配置文件时,首先会出现配置文件对比预览页面,如下图:这样可以清楚的看到本次修改和添加的具体配置信息,从而减少错误。变化风险。2、历史版本一键回滚Nacos提供配置版本管理和一键回滚功能,帮助用户在更改配置错误时快速恢复,降低微服务系统在配置管理中不可避免遇到的可用性风险。项目源码https://gitee.com/mydb/spring-cloud-alibaba-example/tree/master/spring-cloud-nacos-config总结作为SpringCloudAlibaba的核心组件之一,Nacos提供了两个非常重要的功能:注册中心和配置中心功能。其中,配置中心是将配置文件从本地化到云端(Nacos服务器)的过程,不仅可以保证配置文件的安全,还可以在本地修改、查看、回滚和动态刷新配置文件即时的。参考文档Nacos官方文档:https://nacos.io/zh-cn/docs/w...是非自评,名誉自听,得失由数定。公众号:Java中文社区Java访谈合集:https://gitee.com/mydb/interview