门户网站建设公司价位,域名出售网站,东莞企业网站设计公司,怎样自己做淘宝客网站一、Nacos 功能介绍
Nacos#xff08;Dynamic Naming and Configuration Service#xff09;是阿里巴巴开源的一个分布式服务注册、配置管理#xff0c;以及服务健康管理平台。在微服务架构中#xff0c;配置管理是至关重要的一环#xff0c;Nacos 提供了可靠、动态的配置…一、Nacos 功能介绍
NacosDynamic Naming and Configuration Service是阿里巴巴开源的一个分布式服务注册、配置管理以及服务健康管理平台。在微服务架构中配置管理是至关重要的一环Nacos 提供了可靠、动态的配置管理功能为分布式系统的配置中心提供了便捷的解决方案。
Nacos的主要功能图 Nacos 除了可以作为服务的注册中心同样可以作为集中管理配置信息的配置中心来使用。我们通过在 Nacos 的控制台中对配置信息进行修改可以直接作用到应用避免应用的重新发布这个过程叫配置的热更新。
下面我们就来一步一步介绍如何在 Spring Cloud 微服务项目里搭建 Nacos 配置中心。 二、安装 Nacos
Nacos的安装相对简单首先需要从官方网站下载最新版本的Nacos Server压缩包。解压后通过执行相应的启动脚本即可启动Nacos服务。在启动过程中可以通过修改配置文件来配置Nacos的各项参数例如数据库配置、端口号等。
可以参考我之前写过的这篇文章SpringCloud-搭建Nacos服务中心 三、项目引入 Nacos
首先我们准备好或者创建一个微服务项目如果不会创建可以参考
SpringCloud-创建多模块项目
项目准备好之后我们引入 Nacos引入注册中心的流程可以参考下面的文章
SpringCloud-项目引入Nacos
这次由于我们需要使用到 Nacos 配置管理的功能所以每个服务模块的 pom.xml 里还需要引入用于 Nacos 配置管理的 jar 包
!-- Maven 依赖 --
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
/dependency四、Nacos控制台新建配置
我们访问 Nacos 的控制台页面Nacos 控制台默认地址是 localhost:8848/nacos创建配置 配置起名为springcloud-provider.yaml类型选为 YAML 类型配置内容我们写一个时间格式
pattern:dateformat: yyyy-MM-dd HH:mm:ss
其他内容我们先不写Namespace 用于指定命名空间来实现环境隔离Namespace 是最外层的环境向内依次是 Group 和服务。 点击发布可以看到这条配置已经显示在控制台了。
创建配置成功接着我们要去实现项目读取 Nacos 上的配置。 五、微服务项目读取配置
1、创建bootstrap.yml文件
在 /resource 文件夹下创建 bootstrap.yml 文件和原先的 application.yml 配置文件平级并将原先配置文件中的 nacos 配置的部分移动到优先级更高的文件 bootstrap.yml 里。
bootstrap.yml
server:#程序端口号port: 8083
spring:application:name: springcloud-providerprofiles:active: devcloud:nacos:config:file-extension: yamlusername: nacospassword: nacosserver-addr: 127.0.0.1:8848discovery:server-addr: 127.0.0.1:8848 原先的 application.yml 变成
management:endpoints:web:exposure:#公开所有端点include: * 2、增加bootstrap.yml的读取依赖
每个想要进行 Nacos 配置管理的服务模块不仅需要创建 bootstrap.yml 文件还需要引入能够在项目启动时自动发现并加载 bootstrap.yml 文件的依赖在 pom.xml 里添加
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactIdversion3.0.1/version
/dependency 这样在在项目启动时bootstrap.yml 文件就可以自动被发现并加载了。 3、编写读取配置信息的接口
在 Spring Cloud 项目中我们可以通过注入 Value 注解来读取 Nacos 中的配置信息。
创建 ConfigController 类
package com.example.springcloudprovider.demos.web;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;RestController
RequestMapping(/config)
RefreshScope
public class ConfigController {Value(${pattern.dateformat})private String dateformat;GetMapping(dateformat)public String now(){return dateformat;}}4、测试读取配置信息
启动项目访问测试接口localhost:8083/config/dateformat 可以看到我们在 Nacos 上配置的日期格式已经被加载到项目里了。 六、测试Nacos对配置热更新
1、修改Nacos上配置内容
我们在 Nacos 控制台里修改配置将 dateformat 改为 yyyy-MM-dd HH:mm:ssss 2、查看项目内配置是否更新
再次访问测试接口localhost:8083/config/dateformat 可以看到我们的项目配置已经被热更新了即配置实时更新不需要重新启动或部署项目。