Nacos服务注册和配置中心(Config,Eureka,Bus)2

Nacos数据模型

        Nacos领域模型,Namespace命名空间、Group分组、集群这些都是为了进行归类管理,把服务和配置文件进行归类,归类之后就可以实现一定的效果,比如隔离。对于服务来说,不同命名空间中的服务不能够互相访问调用
        Namespace:命名空间,对不同的环境进行隔离,比如隔离开发环境、测试环境和生产环境。
        Group:分组,将若干个服务或者若干个配置集归为一组,通常习惯一个系统归为一个组。
        Service:某一个服务,比如商品微服务。
        DataId:配置集或者可以认为是一个配置文件。
        Namespace + Group + Service,如同Maven中的GAV坐标,GAV坐标是为了锁定Jar,而这里是为了锁定服务。
        Namespace + Group + DataId,如同Maven中的GAV坐标,GAV坐标是为了锁定Jar,而这里是为了锁定配置文件

        Namespace 代表不同的环境,如开发dev、测试test、生产环境prod
        Group 代表某项目,比如圆心云项目
        Service 某个项目中具体xxx服务
        DataId 某个项目中具体的xxx配置文件

 Nacos配置中心

        1.创建命名空间 

        2.创建配置文件         写完后点击下面的发布然后返回既可,点击详情就可以看到我们刚刚配置的信息

 

         3.在page项目中导入配置所需的依赖

 

<!-- 引入alibaba-nacos-config依赖,可以从Nacos配置中心获得配置信息 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

        4.在page项目中添加配置信息,prefix默认为该项目的注册名称,可以省略,在创建文件的时候用服务名,并将该yml的文件名改为bootstrap(优先级更高),不然无法提前获取配置文件

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extension: yaml
#        prefix: aaa

        5.新建配置类

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RefreshScope//nacos自动刷新配置文件数据给客户端
@RestController
@RequestMapping("config")
public class NacosConfigController {@Value("${leq.username}")private String name;@RequestMapping("rote")public String roteString(){return name;}}

        6.重启该项目,访问rote接口

http://localhost:9100/config/rote

        可以看到我们刚刚写的信息,然后将信息更改在次刷新,就可以看到我获取到的配置文件会实时刷新,比config的配置要简便许多,而且功能更强大

         点击发布后,选择确认发布

 

         7.配置多个配置文件,创建一个test1.yaml和test2.taml的配置文件,并查看数据

        

 

 

         8.编写page中的配置文件,添加test1和test2 ,并在配置类中添加信息

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RefreshScope//nacos自动刷新配置文件数据给客户端
@RestController
@RequestMapping("config")
public class NacosConfigController {@Value("${leq.username}")private String name;@Value("${leq.hello}")private String aaa;@Value("${leq.password}")private String bbb;@RequestMapping("rote")public String roteString(){return name+",aaa:"+aaa+",bbb:"+bbb;}}

        9.重启page项目,刷新刚刚访问的接口,可以看到我们刚刚添加的配置文件也能获取到,非常方便,数据也是会实时更新的 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tql!一款Go编写的RAT主机管理工具

工具介绍 这是一款使用go编写的RAT主机群管理工具&#xff0c;已具备命令控制台、文件管理、屏幕截屏、开机启动服务、NPS代理等功能。 流量&#xff1a;支持TCP&#xff0c;UDP/KCP协议&#xff0c;通讯默认使用tls证明书进行加密 关注【Hack分享吧】公众号&#xff0c;回复…

Openlayers layer 基础及重点内容讲解

图层就像是含有文字或图形等元素的图片,一张张按顺序叠放在一起,组合起来形成页面的最终效果。 在 openlayers 中,图层是使用 layer 对象表示的,主要有 WebGLPoints Layer、热度图(HeatMap Layer)、图片图层(Image Layer)、切片图层(Tile Layer)和 矢量图层(Vector Layer…

Spring Boot环境配置Envirnoment

Srping Boot 中我们使用 EnvironmentAware 注入 Environment 对象后&#xff0c;可以在 Environment 中获得系统参数&#xff0c;命令行采参数&#xff0c;文件配置等信息。 Environment 是如何存储&#xff0c;管理这些值的呢&#xff1f;变量发生冲突怎么办呢&#xff1f;我…

Python生成exe文件运行出现黑框闪退如何查看运行bug?

cmd进行回车 第一&#xff1a;进入到可执行exe文件目录&#xff0c;如下图所示 第二&#xff1a;输入可执行文件名&#xff0c;然后就会出现报错提示

Java开发 - 深入理解Redis哨兵机制原理

前言 Redis的主从、哨兵模式、集群模式&#xff0c;在前文中都已经有了详细的搭建流程&#xff0c;可谓是手把手教程&#xff0c;也得到了很多朋友的喜欢。由于前文偏向于应用方面&#xff0c;就导致了理论知识的匮乏&#xff0c;我们可能会用了&#xff0c;但却不明所以&…

自定义实现list及其功能

#pragma once #include <iostream> #include <assert.h> using namespace std;namespace test {//******************************设置结点******************************template<class T>struct list_node{T _data;list_node<T>* _next;list_node&l…

ES6 Generator和Promise

目录 Generator 如何创建Generator函数 ? 模拟发起异步请求 Promise 实例化 实例方法 工厂函数 静态方法 Promise.all([p1,p2,....]) Promise.race([p1,p2,....]) Promise.any([p1,p2,....]) Promise.allSettled([p1,p2,....]) Generator Generator是ES6提供的一种…

云计算与大数据——MPI集群配置

什么是MPI集群&#xff1f; MPI&#xff08;消息传递接口&#xff09;是一种用于编写并行程序的标准&#xff0c;它允许在多个计算节点上进行通信和协作。MPI集群配置是指在一个或多个计算节点上设置MPI环境以实现并行计算。 MPI集群配置的步骤&#xff1a; 硬件选型&#x…

C++--day3(内联函数、结构体、类、封装、this、构造函数、析构函数)

#include <iostream>using namespace std;class My_stack { private:int *ptr; //指向堆区空间int top; //记录栈顶元素int size; public://有参构造My_stack(int size):ptr(new int[size]),top(-1){this->sizesize;cout<<"My_stack::有参构造&…

Django MultiValueDictKeyError 表单数据用request.POST 非表单数据用request.body

表单数据&#xff1a;Content-Type(请求头)为application/x-www-form-urlencoded的数据。 用request.POST获取 a request.POST.get(a) a request.POST[a] alist request.POST.getlist(a) 非表单数据&#xff1a;Content-Type(请求头)为非application/x-www-form-urlenco…

2023年郑州/杭州/深圳CSPM-3中级国标项目管理认证招生

CSPM-3中级项目管理专业人员认证&#xff0c;是中国标准化协会&#xff08;全国项目管理标准化技术委员会秘书处&#xff09;&#xff0c;面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系&#xff0c;建立健全人才职业能力评价和激励机制的要…

【动态内存错误详解和C的内存分区】

常见的动态内存错误 1.动态内存错误2.经典案例分析2.1案例一2.1.1**问题分析**2.1.2**修改错误** 2.2案例二2.2.1 原因分析2.2.2 解决问题 c/c内存分布1.2 内存分区简介1.2.1 栈区(stack)1.2.2 堆区(heap)1.2.3 全局(静态)区1.2.4 常量区1.2.5 代码区 1.动态内存错误 &#xf…