微服务——Nacos配置管理

目录

Nacos配置管理——实现配置管理

配置管理实践

 Nacos配置管理——微服务配置拉取

 Nacos配置管理——配置热更新

方式一:

​编辑 方式二(推荐方式):

 Nacos配置管理——多环境配置共享

 优先级问题

  Nacos配置管理——nacos集群搭建

 总结​编辑


Nacos配置管理——实现配置管理

在一个微服务架构的系统中往往会有多台服务器负责不同的微服务。假设配置文件需要做修改,且该配置文件跟数10个微服务关联,则需要逐个去调整配置。并且调整完后还需要重启,生产环境下重启带来影响不可估量。

配置热更新——实现统一修改配置并且立刻生效,需要一个配置管理服务,微服务启动时会去读取该配置管理服务和本地配置结合作为完整配置使用。

配置管理实践

在nacos端点击配置管理->配置列表右边的+,用来新建配置

Data ID:配置文件名称,通常使用 服务名称-profile.yml ,dev就是生产环境

分组默认即可。

配置内容:用来写需要热更新的内容,不能全部配置都写在这里,通常配置开关逻辑业务类型,给

                true开启,给false关闭.还有诸如日期格式,如果需要变更也可以在这里变更。

 

 Nacos配置管理——微服务配置拉取

通常的项目运行过程如下

一般来说nacos地址是存在application.yml中,但是现在要在读取本地配置前先读取nacos配置文件,所以要用到bootstrap.yml配置文件,优先级远高于application.yml.因此要把相关信息放到bootstrap.yml中去

 步骤实现

 在userserver这个服务搞完之后就可以删除相同的配置信息了,如服务名称和nacos服务地址这些都在bootstrap.yml中有了

 之后要读取到nacos配置并使用

在controller中定义一个测试url,用@Value注解获取配置文件内容,然后规定格式返回一个日期。

 成功获取到预期格式日期。

 

 Nacos配置管理——配置热更新

方式一:

 加上注解之后重启项目

修改日期格式后再次访问有所变化成功实现热更新

 方式二(推荐方式):

这种是约定大于配置的注入方式,只要前缀带有pattern并且属性名和对应的上就可以实现自动注入

 然后Controller中的代码修改为。

    @Autowired
    private PatternProperties properties;

    @GetMapping("now")
    public String now(){
        return  LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));
    }

 总结:

 Nacos配置管理——多环境配置共享

使用情况:一个配置属性在开发生产测试环境下的值是相同。如果不同环境的下都写或者都要改就过于麻烦。

新建一个userserver.yaml

现在userserver这个服务可以读到userserver-dev.yaml和userserver.yaml两个配置文件。 

新增加一个属性和一个url接口

   
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
    private String envShareValue;
}


 @GetMapping("prop")
    public PatternProperties properties(){
        return properties;
    }

 启动8081端口的实例作为dev环境,启动8082端口的实例作为test环境。

现在8081的可以读到两个配置文件,8082端口的只能读到一个

 

 优先级问题

  Nacos配置管理——nacos集群搭建

官方给出的Nacos集群图:

 使用nginx作为负载均衡器之后的集群模式图

 上个nacos要实现数据共享,这里整了多个mysql的集群,让多个nacos都访问这个mysql的集群完成读写。

这里要先按照资料里面给出的集群方式搭建好环境。

 此处nginx的配置文件如下所示

	upstream nacos-cluster {
    server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
    }

    server {
    listen       88;
    server_name  localhost;

    location /nacos {
        proxy_pass http://nacos-cluster;
    }
    }

配置文件的地址也要改 

 重新启动两个实例

 然后新建一个配置

 在看到数据库里面就有了这个配置的信息出现了。

先在就做到了三个nacos负载均衡的访问,并且每个nacos都指向同一个数据库了。

 总结

 跑这个玩意启动一定要一个一个来,并且启动时不要运行idea项目,不然内存直接上天了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ADS】导入CMOS衬底文件+使用coilsys生成电感

新建工程经常忘记怎么操作,简记防遗忘。 操作步骤 1.unzip file2.原理图仿真3.Layout加载衬底文件4.使用coilsys生成电感 1.unzip file designKits-》unzip,选择对应库的压缩包,我这里是(TSMC_CRN65GP_v2.zip)。 为了…

BHQ 1Mal,BHQ-1 Maleimide,BHQ1马来酰亚胺,黑洞猝灭剂

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----产品描述: BHQ-1 Maleimide黑洞猝灭剂-1(BHQ-1)被归类为暗猝灭剂,该淬灭剂能够将一定距离内荧光基团发出的光全部吸收,实现对荧光信号的淬灭,所以可得到更强的特异性…

【App管理04-Bug修正 Objective-C语言】

一、咱们刚才已经把这个给大家做完了吧 1.这个Label怎么显示到上面去了, 我们现在是把它加到我们的控制器的View里面吧 我们看一下这个坐标是怎么算的,来,我们找一个坐标, 咱们的坐标,是不是用这个View的frame,减的吧 来,咱们在这里,输出一下这个Frame,看一下吧 在…

2023年第三届能源、电力与电气工程国际会议 (CoEEPE 2023)

会议简介 Brief Introduction 2023年第三届能源、电力与电气工程国际会议(CoEEPE 2023) 会议时间:2023年11月22日-24日 召开地点:澳大利亚墨尔本 大会官网:www.coeepe.org 2023年第三届能源、电力与电气工程国际会议(CoEEPE 2023)由安徽大学、…

Linux:Linux的发展史和作用有哪些?

文章目录 Linux是什么?Linux的开源特征为什么要学习Linux?Linux的应用场景有哪些? Linux是什么? 简单来说,Linux就是操作系统,它和Windows等软件一样,都只是操作系统,并无区别 Linu…

如何将ubuntu LTS升级为Pro

LTS支持周期是5年; Pro支持周期是10年。 Ubuntu Pro专业版笔记 步骤: 打开“软件和更新” 可以看到最右侧的标签是Ubuntu Pro。 在没有升级之前,如果使用下面两步: sudo apt updatesudo apt upgrade 出现如下提示&#xff…

vue 实现课程表甘特图

1 封装 components <template><view style"padding-bottom: 100rpx;"><view class"header flex_sb"><div class"header_list flex" v-for"(item,index) in timeList" :key"item.value"><div&g…

微信小程序——页面跳转方法和场景用法总结

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

如何在APP开发中实现多平台兼容?

随着移动互联网的发展&#xff0c;各大 APP平台也如雨后春笋般崛起&#xff0c;现在市面上主流的 APP平台基本都已经支持 IOS、 Android、 WP等多个平台的开发&#xff0c;但对于一些只想专注于做一款 APP的企业来说&#xff0c;往往只能选择在一个平台开发一个 APP&#xff0c…

opencv hand openpose

使用opencv c 来调用caffemodel 使用opencv 得dnn 模块调用 caffemodel得程序&#xff0c;图片自己输入就行&#xff0c;不做过多得解释&#xff0c;看代码清单。 定义手指关节点 const int POSE_PAIRS[20][2] { {0,1}, {1,2}, {2,3}, {3,4}, // thumb {0,5}, {5,6}, {6,7}…

索引能优化查询,那么谈谈索引的优点和缺点?索引原理

面试必备&#xff1a;索引能优化查询&#xff0c;那么谈谈索引的优点和缺点?索引原理 简述&#xff1a; 优点: 第一&#xff0c;通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。 第二&#xff0c;可以大大加快数据的检索速度&#xff0c;这也是创建…

leetcode刷题常用代码片段

Vscode是常用的开发工具&#xff0c;代码插入能够把常见的代码嵌入智能提醒&#xff0c;减轻了很大的工作量&#xff0c;下面是我刷题的配置&#xff0c;直接复制黏贴到自己的cpp.json里就可以用了 左下角&#xff0c;打开设置&#xff0c;选择用户代码片段&#xff0c;选择自…

idea中Easy Code模版配置

首先找到模版位置 找到使用的模版&#xff0c;我用的是MybatisPlus-H,这是我新建的一个模版 controller.java.vm模版 ##导入宏定义 $!{define.vm}##设置表后缀&#xff08;宏定义&#xff09; #setTableSuffix("Controller")##保存文件&#xff08;宏定义&#xff…

Tensorflow(二)

一、过拟合 过拟合现象:机器对于数据的学习过于自负(想要将误差减到最小)。 解决方法:利用正规化方法 二、卷积神经网络(CNN) 卷积神经网络是近些年来逐渐兴起的人工神经网络&#xff0c;主要用于图像分类、计算机视觉等。 卷积:例如对图片每一小块像素区域的处理&#xff…

利用Stable diffusion Ai 制作艺术二维码超详细参数和教程

大家有没有发现最近这段时间网上出现了各种各样的AI艺术二维码&#xff0c;这种二维码的出现&#xff0c;简直是对二维码的“颠覆式创新”&#xff0c;直接把传统的二维码提升了一个维度&#xff01;作为设计师的我们怎么可以不会呢&#xff1f; 今天就教大家怎么制作这种超有艺…

Error: unknown flag: --export 【k8s,kubernets报错】

报错情况如下&#xff1a; [rootk8smaster ~]# kubectl get deploy nginx -oyaml --export > my2.yaml Error: unknown flag: --export See kubectl get --help for usage.原因&#xff1a; --export在所使用的版本中已被移除 解决&#xff1a;去除--export即可&#xff0c…

七、Kafka源码分析之网络通信

1、生产者网络设计 架构设计图 2、生产者消息缓存机制 1、RecordAccumulator 将消息缓存到RecordAccumulator收集器中, 最后判断是否要发送。这个加入消息收集器&#xff0c;首先得从 Deque 里找到自己的目标分区&#xff0c;如果没有就新建一个批量消息 Deque 加进入 2、消…

微信小程序 Page页面

新建页面只需要在app.json配置好路径&#xff0c;编译器自动新增了页面 项目首页&#xff0c;在app.json哪个页面是第一位&#xff0c;哪个页面就是小程序首页

Java面试笔记

JAVA基础知识 语法结构 1.类 2.属性 3.方法 4.静态代码块 构造器 构造函数&#xff0c;构造类的对象&#xff0c;默认隐式&#xff0c;创建对象&#xff0c;先执行父类构造函数&#xff0c;再执行子类构造函数 父类的super必须在第一行 代码块 优先级最高&#xff0c;只…

3ds Max图文教程: 使用动态工具Mass FX 创建风铃动画

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 简单的场景设置 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我将向您展示风铃背后的动态 通过简单的场景设置进行模拟。一旦你有了这个想法&#xff0c;你就可以应用这个 技术到复杂的风铃结构。 基…