网站建设谈单情景对话,互联网 网站建设,外贸set是什么意思,莆田网站建设设计文章目录 1. 配置中心定义2. 解决哪些问题3. 常用的配置中心4. 使用示例1#xff09;没引入 Nacos 配置中心2#xff09;引入依赖3#xff09;配置Nacos连接信息4#xff09;在 Nacos 上配置属性5#xff09;在 Spring Boot 中使用配置6#xff09;启动服务验证7没引入 Nacos 配置中心2引入依赖3配置Nacos连接信息4在 Nacos 上配置属性5在 Spring Boot 中使用配置6启动服务验证7实时更新配置 5. 代码参考结语 在上一篇 【Spring实战】32 Spring Boot3 集成 Nacos 服务注册中心 文章中我们介绍了 Nacos 的定义、背景、功能和特性并通过简单示例演示了如何在 Gateway 网关中应用。但是在微服务架构中配置中心也是一个非常重要的组件它可以帮助我们集中管理应用的配置信息。Nacos 作为一个优秀的配置中心工具为微服务提供了灵活且可靠的配置管理。本文将介绍如何在 Spring Boot 项目中集成 Nacos 配置中心实现统一的配置管理。
1. 配置中心定义
在 Spring 框架中配置中心是指一种集中式管理应用程序配置信息的机制。它的目标是通过集中存储和管理配置实现配置的动态更新、版本管理和统一管理以提高系统的灵活性、可维护性和可扩展性。
2. 解决哪些问题
配置中心通常用于解决以下问题 集中管理配置 将应用程序的配置集中存储在一个地方便于管理和维护避免配置散落在各个应用实例中 动态更新配置 允许在运行时动态修改配置无需重启应用从而提高系统的可用性和灵活性 版本管理 提供配置的版本管理方便进行配置的回滚、比较和历史查看 统一配置管理 统一管理所有微服务的配置确保它们之间的配置一致性简化系统的部署和维护
3. 常用的配置中心 Spring Cloud Config Spring Cloud提供了一个名为Spring Cloud Config的子项目用于构建分布式系统中的配置服务和客户端。它支持配置文件存储在Git、SVN等版本控制系统中也可以通过HTTP、JDBC等方式获取配置 Nacos Nacos是一个综合性的服务发现和配置管理平台它可以作为配置中心支持动态配置管理、服务发现、服务健康监测等功能。Nacos提供了丰富的功能适用于构建和管理云原生应用 Zookeeper Zookeeper是一个分布式的协调服务也可以用作配置中心。它提供了一个简单的键值存储系统用于存储和管理配置信息 Consul Consul是一个分布式的服务发现和配置管理工具。它支持健康检查、服务注册和发现同时也可以用作配置中心
4. 使用示例
下面通过一个简单的示例演示 Spring Boot 项目如何使用 Nacos 配置管理中心。 1没引入 Nacos 配置中心
定义一个配置文件配置一个我们用于测试的名字key 是 koala.user.name value 是 cheney
application.yml
server:port: 9501servlet:context-path: /account
koala:user:name: cheney
写一个 REST 请求并且使用 Spring 提供的 Value(${koala.user.name}) 来从配置文件中获取名字
HelloController.java
package com.cheney.koala.account.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class HelloController {Value(${koala.user.name})private String userName;GetMapping(hello)public String hello() {return String.format(Hello %s, userName);}
}
创建一个普通的 Spring boot 启动类
KoalaAccountApplication.java
package com.cheney.koala.account;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication
public class KoalaAccountApplication {public static void main(String[] args) {SpringApplication.run(KoalaAccountApplication.class, args);}
}启动服务验证
访问下面的 URL然后就可以读取到了我们提前在 application.yml 中配置的名字 http://localhost:9501/account/hello ⚡ 这个时候存在一个问题如果我们需要修改名字的话那么就需要去修改代码并且重启服务才可以
那么如何解决呢引入 Nacos 配置中心
2引入依赖
继续在上面的 Spring Boot 项目中引入 Nacos 配置中心的依赖。在pom.xml文件中添加如下依赖
引入了如下配置中心的依赖 spring-cloud-starter-alibaba-nacos-config dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2022.0.0.0-RC1/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependency3配置Nacos连接信息
在 bootstrap.yml 中配置 Nacos 服务器的连接信息
bootstrap.yml
spring:application:name: accountcloud:nacos:discovery:server-addr: 127.0.0.1:8848
其中 127.0.0.1:8848 是实际的 Nacos 服务器地址account 是 Nacos 命名空间
4在 Nacos 上配置属性
首先启动 Nacos 服务并登录管理页面 http://localhost:8848/nacos 点击 配置列表 - 创建配置 分别输入 Data ID描述信息此处我选择了 YAML 其他配置格式也是可以的然后就是配置内容了
信息填写完成后点击 发布 这样一条配置信息就创建好了。可以点击后面的一系列操作按钮进行增删改查操作
5在 Spring Boot 中使用配置
继续使用上面的 Spring Boot 项目代码增加一个连接 Nacos 的配置
bootstrap.yml
spring:application:name: accountcloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: yaml这里配置了 Nacos 的地址 127.0.0.1:8848已经我们使用的配置文件格式 yaml
6启动服务验证
再次访问下面的 URL然后就可以读取到了我们提前在 Nacos 配置中心中配置的名字 http://localhost:9501/account/hello 7实时更新配置
我们在 Nacos 配置中心中修改 koala.user.name 对应名字的值保存配置。 点击发布之后可以看到修改哪里了。然后确认发布确定即可。 然后再次访问下面的 URL http://localhost:9501/account/hello 你会发现为什么没有显示我们新修改的值呢它不是实时刷新么。。。。
原因是如果我们想要实时刷新则需要在 HelloController 上新加一个 RefreshScope 然后我们重启服务访问 URL http://localhost:9501/account/hello 再去将配置中心中 koala.user.name 对应名字的值修改为 cheney保存配置。 再次访问 URL http://localhost:9501/account/hello 发现可以动态刷新成 Nacos 配置中心中的最新值啦
5. 代码参考 https://gitee.com/cheney09/koala-system 结语
本文我们成功的将 Spring Boot 项目集成了 Nacos 配置中心实现了动态配置管理。Nacos的优秀特性使得配置的管理变得更加灵活和便捷适用于各种规模的微服务项目。希望这篇文章能够帮助你顺利地将 Nacos 配置中心引入到你的 Spring Boot 项目中。