当前位置: 首页 > news >正文

【Spring Cloud Alibaba】007-Nacos 配置*

【Spring Cloud Alibaba】007-Nacos 配置*

文章目录

  • 【Spring Cloud Alibaba】007-Nacos 配置*
  • 一、概述
    • 1、概述
    • 2、对比 spring cloud config
  • 二、基本使用
    • 1、在管理界面新建配置
    • 2、启动权限
    • 3、 搭建 nacos-config 服务
      • 第一步:引入依赖
      • 第二步:修改 yaml 配置文件
      • 第三步:修改启动类
      • 第四步:运行测试
      • image-20230223162512852
  • 三、动态获取最新配置
  • 四、配置中心原理

一、概述

1、概述

参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使

用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置

jiagou67834rgfsd6

2、对比 spring cloud config

  • spring cloud config 大部分场景结合 git 使用,动态变更还需要依赖 Spring Cloud Bus 消息总线来通过所有的客户端变化;
  • spring cloud config不提供可视化界面;
  • nacos config 使用长轮询更新配置,一旦配置有变动后,通知 Provider 的过程非常的迅速, 从速度上秒杀 spring cloud 原来的 config 几条街。

duibi4355d6

二、基本使用

1、在管理界面新建配置

参考:https://nacos.io/zh-cn/docs/concepts.html

Namespace:代表不同环境,如开发、测试、生产环境。

Group:代表某项目,如XX医疗项目、XX电商项目

DataId:每个项目下往往有若干个工程(微服务),每个配置集(DataId)是一个工程(微服务)主配置文件

image-20230223162541759

2、启动权限

image-20230223152610041

3、 搭建 nacos-config 服务

通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的自动变更

第一步:引入依赖

<!-- spring‐cloud‐starter‐alibaba‐nacos‐config -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

第二步:修改 yaml 配置文件

参考文章:https://www.modb.pro/db/390266

spring:application:name: order-servicecloud:nacos:server-addr: localhost:8848discovery:username: nacospassword: nacosnamespace: publicconfig:group: DEFAULT_GROUPserver-addr: localhost:8848username: nacospassword: nacos、# 新版命名空间不能使用 publicnamespace: 74065c76-2e4e-44ba-935e-a6f88f44f83cconfig:import:- optional:nacos:test.yaml

第三步:修改启动类

public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(OrderApplication.class, args);String name = context.getEnvironment().getProperty("user.name");String age = context.getEnvironment().getProperty("user.age");System.out.println("name is " + name + ", age is " + age);
}

第四步:运行测试

image-20230223162512852

三、动态获取最新配置

@Value 注解可以获取到配置中心的值,但是无法动态感知修改后的值,需要利用 @RefreshScope 注解!

@RestController
@RefreshScope
public class TestController {@Value("${user.nickname}")private String nickname;@GetMapping("/user")public String hello() {return nickname;}
}

四、配置中心原理

image-20230223164221450

http://www.lryc.cn/news/17910.html

相关文章:

  • 《安富莱嵌入式周报》第304期:开源硬件耳机设计,AI单片机STM32N6已确定为M55内核,另外还有新品STM32H5, H50X, H7R, H7S发布
  • vuex篇
  • 嵌入式开发:在嵌入式应用程序中混合C和C++
  • 【2023/图对比/增强】MA-GCL: Model Augmentation Tricks for Graph Contrastive Learning
  • TensorBoard自定义修改单条及多条曲线颜色
  • 时间和空间复杂度
  • 关于Linux下调试
  • 理解TP、FP、TN、FN
  • 软考中级有用吗
  • 计算机网络之IP协议(详解
  • Kubernetes之探针probe
  • 高性能低功耗4口高速USB2.0 HUB NS1.1S 兼容FE1.1
  • 通过VS Code轻松连接树莓派
  • 图纸等敏感文件数据外发时 如何确保效率和安全性?
  • 2023年CDGA考试-第4章-数据架构(含答案)
  • 理解随机游走
  • mqtt协议1- 简介和报文格式
  • 前端用动画快速实现骨架屏效果
  • Python入门(未完待续。。。)
  • 注解配置SpringMVC
  • 多项新规重磅发布,微信视频号近期需要关注这几点
  • Java调用第三方http接口的方式
  • 【跟我一起读《视觉惯性SLAM理论与源码解析》】第五章第六章 对极几何图优化库的使用
  • 从没想过开源 API 工具的 Mock 功能,这么好用
  • 智慧教室--智能管控系统
  • React的useLayoutEffect和useEffect执行时机有什么不同
  • C语言中#include<...>和#include“...“的区别
  • ubuntu本地访问nas
  • 第一章:网络参考模型
  • extends in typescript