3. SpringCloudAlibaba、nacos 实现配置中心

news2024/10/7 16:21:30

一、微服务中配置文件的问题

image.png

1.1 配置文件的问题:

  1. 配置文件的数量会随着服务的增加持续递增
  2. 单个配置文件无法区分多个运行环境
  3. 配置文件内容无法动态更新,需要重启服务

1.2 引入配置中心

引入配置中心:刚才架构就会成为这样。是由配置中心统一管理
在这里插入图片描述

  1. 统一配置文件管理
  2. 提供统一标准接口,服务根据标准接口自行拉取配置
  3. 支持动态更新的到所有服务

二、Nacos Config数据模型

Nacos Config数据模型

image.png

数据模型最佳实践

Namespace代表不同的运行环境:Dev/Test/Prod
Group代表某一类配置,比如中间件配置、数据库配置
Datald某个项目中具体的配置文

三、nacos实现配置中心

3.1 父pom或者子项目添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

3.2 配置文件改成 bootstrap.yml

spring:
  application:
    name: product-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
 		# 配置文件的类型 我们找 yaml 
        file-extension: yaml
        # 命名空间的 id 
        namespace: 89b87df8-4e58-4363-a11a-ff1863b6f5fb
        # nacos里面没有 group区分 默认的 DEFAULT_GROUP 就可以
        group: DEFAULT_GROUP

3.3 设置从配置中心获取redis的配置信息

1.nacos添加配置

在这里插入图片描述

2.添加配置信息

在这里插入图片描述

3.添加获取redis信息 java代码

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@Data
@Component
@RefreshScope  // 刷新配置注解  如果nacos里面的配置变更了  项目里的配置也会跟着刷新
@ConfigurationProperties(prefix = "redis")
public class RedisConfig {

    private String host;

    private String port;

    private String password;

}

4.测试

在这里插入图片描述

四、 nacos中的扩展配置和共享配置

4.1 扩展配置

extension-configs:extension-configs 是 Nacos 支持的一种扩展配置方式。通过配置 extension-configs,可以将指定的配置文件作为扩展配置,用于补充服务配置。扩展配置与服务配置是相互独立的,扩展配置不会直接影响服务的正常运行。它可以用于提供一些额外的配置项,例如自定义的拓展属性或配置文件,供服务在需要时进行访问和使用

springboot 中 properties 文件配置如下:

#支持一个应用有多个DataId配置,mybatis.yaml datasource.yaml
# extension-configs 和 shared-configs 都是个列表,默认从0开始配置 如果还有就是 [1]
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yaml
#可以不配置,使用默认
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
#这里需要设置为true,动态可以刷新,默认为false
spring.cloud.nacos.config.extension-configs[0].refresh=true

4.2 共享配置

shared-configs:shared-configs 是 Nacos 支持的一种共享配置方式。通过配置 shared-configs,可以将指定的配置文件作为共享配置,供多个服务实例共享使用。共享配置可以被多个服务实例同时订阅和读取,这样可以实现配置的集中管理和共享。在配置中心中创建共享配置后,服务实例可以订阅共享配置,并根据需要获取最新的配置数据

场景:

上面我们已经演示了配置中心获取配置了,现在有这么一个场景,上面我们在product服务配置了一个redis,现在我们的order服务也需要使用redis,他俩使用的redis,还是同一个,那我是不是order上面也同样加上redis的配置信息,但是如果使用的服务多了,是不是每个服务都要加,那我们能不能加一个公共的配置,让他们共享呢?

1.nacos配置信息

在这里插入图片描述
product-service 里面只有一个 name配置项
在这里插入图片描述

而redis里面的配置 我们放到了
redis.yaml 当中
在这里插入图片描述

2.java代码配置如下

spring:
  application:
    name: product-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
        file-extension: yaml
        namespace: 89b87df8-4e58-4363-a11a-ff1863b6f5fb
        group: DEFAULT_GROUP
        shared-configs:
          #  shared-configs  使用列表时,可以使用短横线(-)作为列表项的标记
          #  相当于 配置 这样 
          # spring.cloud.nacos.config.shared-configs[0].data-id= common.yaml
          # spring.cloud.nacos.config.shared-configs[0].refresh=true
          - dataId: redis.yaml
            # 这里需要设置为true,动态可以刷新,默认为false
            refresh: true

3.测试

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET Core Web API入门之二:Swagger详细使用路由设置

ASP.NET Core Web API入门之二&#xff1a;Swagger详细使用 一、引言二、Swagger的作用以及优点2.1 作用2.2 优点 三、API接口添加注释3.1 编辑项目文件3.2 修改 Startup.cs 文件的 ConfigureServices 方法3.3 修改浏览器的网页标题3.4 注册路由中间件3.4 接口添加注释 四、运行…

基于html+css的图展示125

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

项目管理专业人员能力评价(CSPM)好考吗?考试时间什么时候?

2021年10月&#xff0c;中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系&#xff0c;开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会&#xff08;CAS&#xff09;组织开展的项…

和数集团Baas服务如何推动区块链技术应用和产业发展?

近日&#xff0c;《区块链和分布式记账技术 参考架构》(GB/T 42752-2023)国家标准正式发布。这是我国首个获批发布的区块链技术领域国家标准。该标准在区块链技术应用和产业发展方面提出了参考架构规范&#xff0c;包括用户视图、功能视图、实现视图和部署视图。在功能架构方面…

启程阿拉德之怒三端架设教程

阿拉德之怒是一款横版动作冒险RPG手游&#xff0c;游戏采用虚拟按键模式呈现指尖上的连击盛宴&#xff0c;波动血气等不同的奥义带来多系转职技能&#xff0c;讲述不同时空交错的节点诞生的大陆之上&#xff0c;来个各界的强者们汇聚在一起冒险战斗故事&#xff0c;领悟鬼手之力…

基于ubuntu22.04-深入浅出 eBPF

笔者在很早之前就看eBPF这类似的文章&#xff0c;那时候看这个技术一脸懵逼&#xff0c;不知道它是用来做什么&#xff0c;可以解决什么问题。所以也没有太关注这个技术。很庆幸最近刚好有机会研究这个技术。 什么是BPF BPF的全称是Berkaley Packet Filter,即伯克利报文过法器…

计算机视觉的应用7-利用YOLOv5模型启动电脑摄像头进行目标检测

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用7-利用YOLOv5模型启动电脑摄像头进行目标检测&#xff0c;本文将详细介绍YOLOv5模型的原理&#xff0c;YOLOv5模型的结构&#xff0c;并展示如何利用电脑摄像头进行目标检测。文章将提供样例代码&a…

【GitLab】-HTTP Basic: Access denied.remote:You must use a personal access token

写在前面 本文简要说明GitLab配置accessToken以及双因子认证&#xff08;Two-factor authentication&#xff09;。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.配置accessToken3.克隆项目4.双因子认证 三、参考资料写在后面 一、场景描述 在使用账号和密码的方式拉取公…

数据库的 Schema 变更实现

一、减少元数据变更的措施 元数据变更是数据库管理中不可避免的工作项&#xff0c;减少元数据变更次数可降低数据库维护和管理成本&#xff0c;减轻对业务的影响。这里我们可以优先考虑以下 3 点&#xff1a; 精细计划 在数据库设计和开发阶段&#xff0c;精细设计元数据结构…

月度精华汇总 | 最新XR行业资讯、场景案例、活动都在这一篇里啦!

​ 在过去的一个月中&#xff0c;平行云为您带来了关于XR领域的一系列精彩文章&#xff0c;涵盖了行业资讯、应用案例&#xff0c;市场互动&#xff0c;帮助您掌握XR领域最新动态&#xff0c;了解实时云渲染、Cloud XR技术的价值&#xff0c;以及平行云实时云渲染解决方案LarkX…

【每日算法】【160. 相交链表】

☀️博客主页&#xff1a;CSDN博客主页 &#x1f4a8;本文由 我是小狼君 原创&#xff0c;首发于 CSDN&#x1f4a2; &#x1f525;学习专栏推荐&#xff1a;面试汇总 ❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏 ⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&…

【陈老板赠书活动 - 04期】- 【C++、Linux、算法等系列众书】

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;与几分醉意.一起搞的赠书活动一次30本书哦&#xff01;&#xff01;…

软件项目质量管理的4大注意事项

1、制定质量计划和评估标准 项目质量管理首先需要制定详细的质量计划&#xff0c;明确项目质量目标&#xff0c;制定质量评估标准和验收方案。质量计划需与项目计划密切相关&#xff0c;并确保项目质量管理与项目进度和成本控制相配合。 软件项目质量管理的4大注意事项 2、构建…

Java+Swing+mysql仿QQ聊天工具

JavaSwingmysql仿QQ聊天工具 一、系统介绍二、功能展示1.用户登陆2.好友列表3.好友聊天4.服务器日志 三、系统实现四、其它1.其他系统实现2.获取源码 一、系统介绍 系统主要功能&#xff1a;用户登陆、好友列表、好友聊天、服务器日志 二、功能展示 1.用户登陆 2.好友列表 3…

想要避免计划外停机?预测性维护技术是关键

在现代工业领域&#xff0c;非计划停机是一项令人头疼的问题&#xff0c;它导致生产损失、利润减少&#xff0c;并给运营团队带来巨大的压力。然而&#xff0c;基于时间的维护策略并不能有效应对所有设备故障&#xff0c;因为大部分故障表现出随机模式&#xff0c;难以准确预测…

深入探索基于Webdriver的分层自动化框架搭建

目录 前言&#xff1a; 1、基于webdriver的分层自动化框架及平台搭建&#xff0c;目前刚好在做这一块的工作&#xff0c;对于分层次和平台搭建&#xff0c;想问下大神有什么好的建议&#xff1f; 2、希望大神能自己的工作经历和经验&#xff0c;对初入测试行业的后辈有何建议…

SpringCloudAlibaba环境搭建版本说明

可以通过www.github.com网站搜索alibaba&#xff0c;点击第一个超链接 点击wiki 点击版本说明 里面有对应版本&#xff1a; 也可以通过版本说明 alibaba/spring-cloud-alibaba Wiki GitHub这个链接直接访问

模板学堂|DataEase地图视图功能详解

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场&#xff08;https://dataease.io/templates/&#xff09;。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板&#xff0c;方便用户根据自身的业务需求和使用场景选择对应的仪表板模板&#xff0c;并…

【渗透测试学习】RCE漏洞是什么意思?其危害是什么?

RCE漏洞是网络安全中非常常见的漏洞之一&#xff0c;该漏洞又叫做远程代码执行漏洞&#xff0c;属于高危漏洞&#xff0c;其有着巨大的危害和影响。但很多人初识网络安全时&#xff0c;对RCE漏洞并不是很了解&#xff0c;到底是什么是RCE漏洞?RCE漏洞危害是什么?又该如何预防…

全国PMO专业人士年度盛会︱2023第十二届中国PMO大会会议日程

由PMO评论主办的第十二届中国PMO大会拟定于2023年8月12-13日在北京召开&#xff0c;本次大会主题为&#xff1a;“拥抱变革 展现PMO力量”&#xff0c;将特邀知名企业卓有建树的PMO实践精英来演讲&#xff0c;交流经验分享智慧&#xff0c;推动PMO在变革中不断成长、进化&#…