哪些网站用黑体做的,工业设计专业最好的大学,页面设计结构的特色,深圳注册公司核名在哪里核名作者 | 磊哥来源 | Java中文社群#xff08;ID#xff1a;javacn666#xff09;转载请联系授权#xff08;微信ID#xff1a;GG_Stone#xff09;Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案#xff0c;目前已被 Spring Cloud 官方收录。而 Nacos 作…作者 | 磊哥来源 | Java中文社群IDjavacn666转载请联系授权微信IDGG_StoneSpring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一提供了两个非常重要的功能服务注册中心服务注册和发现功能和统一配置中心功能。Nacos 简介Nacos 致力于帮助开发者发现、配置和管理微服务。它提供了一组简单易用的特性集帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 特性介绍Nacos 具有以下特性服务发现和服务健康监测支持基于DNS和基于RPC的服务发现支持对服务的实时的健康检查阻止向不健康的主机或服务实例发送请求。动态配置服务动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态 DNS 服务动态 DNS 服务支持权重路由让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。服务及其元数据管理支持从微服务平台建设的视角管理数据中心的所有服务及元数据。配置中心功能实现1.添加依赖创建一个新的 Spring Boot 项目添加 nacos config 和 web非必须框架依赖如下图所示PS添加 web 依赖主要作用是为了方便后面代码测试。如果是老项目那么需要手动添加 nacos config 的依赖修改 pom.xml 文件添加以下内容dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependency
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
/dependency2.配置 Nacos Config 信息在应用的 /src/main/resources/ 目录下创建引导配置文件 bootstrap.yml或 bootstrap.properties添加以下 Nacos Config 配置信息spring:application:name: nacosconfig # 项目名称和 nacos DataId 相匹配cloud:nacos:config:server-addr: 127.0.0.1:8848 # nacos 地址和端口file-extension: yaml # 获取配置文件的格式yamlusername: nacos # nacos 认证用户名password: nacos # nacos 认证密码
server:port: 9001 # 项目启动端口3.编写代码读取配置文件创建一个控制器使用 Value 注解读取配置信息读取方式和 Spring Boot 读取本地配置代码一致import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class TestController {// 从 nacos 中读取配置项 config.infoValue(${config.info})private String configInfo;GetMapping(/getconfig)public String getConfigInfo(){return configInfo;}
}4.Nacos 控制台添加配置信息在 Nacos 控制台创建并设置配置文件执行步骤如下所示。首先在配置列表中点击“添加”按钮如下图所示进入配置页面新建 YAML 或 Properties 配置文件如下图所示以上关键参数的含义和规则说明如下。① Data IDData ID 的拼接格式如下{spring.profiles.active} . ${file-extension}其中prefix 默认为 spring.application.name 的值也可以通过配置项 spring.cloud.nacos.config.prefix 来配置。spring.profiles.active 即为当前环境对应的 profile当 active profile 为空时对应的连接符 - 也将不存在dataId 的拼接格式变成 {file-extension}file-extension 为配置内容的数据格式可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 类型。② GroupGroup 分组选项主要是用来隔离不同的配置项目的它的默认值为 DEFAULT_GROUP可以通过 spring.cloud.nacos.config.group 配置。配置好相应的内容之后点击底部的“发布”按钮即可添加成功之后会自动返回配置列表如下图所示启动项目查看执行结果如下图所示动态刷新功能动态刷新功能是指在 Nacos 配置中心修改的配置内容在不重启项目的前提下可以实时的读取到。Nacos 默认会为所有获取数据成功的 Nacos 的配置项添加了监听功能在监听到服务端配置发生变化时会实时触发 org.springframework.cloud.context.refresh.ContextRefresher 的 refresh 方法。但如果需要对 Bean 进行动态刷新需要参照 Spring 和 Spring Cloud 规范推荐给类添加 RefreshScope 或 ConfigurationProperties 注解。以上面的案例来说如果需要添加动态刷新功能只需要在控制器上添加 RefreshScope 注解即可实现代码如下import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;RestController
RefreshScope // 开启配置文件的动态刷新
public class TestController {// 从 nacos 中读取配置项 config.infoValue(${config.info})private String configInfo;GetMapping(/getconfig)public String getConfigInfo(){return configInfo;}}最终的实现结果如下亮点功能介绍Nacos 配置中心有两个很好用的功能一个是修改配置时的内容对比让您一眼就可以看出此次修改的配置内容防止误操作第二个是历史版本一键回滚功能让您能够轻松的实现溯源和回滚配置文件。1.配置文件对比在修改配置文件时会先出现一个配置文件的对比预览页面如下图所示这样您就可以清楚的看到此次修改和添加的具体配置信息了从而减少了误改的风险。2.历史版本一键回滚Nacos 通过提供配置版本管理及其一键回滚能力帮助用户改错配置的时候能够快速恢复降低微服务系统在配置管理上的一定会遇到的可用性风险。项目源码https://gitee.com/mydb/spring-cloud-alibaba-example/tree/master/spring-cloud-nacos-config总结Nacos 作为 Spring Cloud Alibaba 的核心组件之一提供了两个非常重要的功能注册中心和配置中心功能。其中配置中心是将配置文件从本地化变更为云端化的过程Nacos 服务端这样既能保证配置文件的安全性又能实时的修改、查看、回滚和动态刷新配置文件了。参考文档Nacos官方文档https://nacos.io/zh-cn/docs/what-is-nacos.html是非审之于己毁誉听之于人得失安之于数。公众号Java中文社群Java面试合集https://gitee.com/mydb/interview往期推荐Spring Cloud Alibaba Nacos 的 2 种健康检查机制玩转Nacos参数配置多图勿点SpringCloud Ribbon中的7种负载均衡策略