微服务——Nacos配置管理

news2024/11/25 7:08:04

目录

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项目,不然内存直接上天了。

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

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

相关文章

Linux 云服务器上部署 web 项目

目录 1)安装 jdk 2)安装 tomcat 3) 设置安全组 4)安装mysql 5) 建库建表 6) 打包部署 1)安装 jdk 使用包管理器进行安装 常用的包管理器 yum (centos 自带的包管理器) apt pacman 我们使用 yum 来进行安装程序 yum list 查看当前的软件包有哪些 命令: yum list | gre…

Oracle 列出一天内每5分钟一条数据

select trunc(sysdate) (rownum-1) / (24*60/5) time from dual connect by rownum < 24*60/5效果如图&#xff0c; 类似的 列出一年内每天、每个月也是用connect by搭配rownum使用

记一次Mysql慢SQL优化过程

缘起 最近有个同事让我看看一个测试环境的SQL&#xff0c;因为这个SQL执行了几十秒&#xff0c;导致接口超时了。 sql为(里面表名已经使用test_table开头的表名脱敏&#xff0c;返回的字段使用*脱敏&#xff0c;别名未修改)&#xff1a; select* fromtest_table1 e join test…

分布式文件存储与数据缓存 FastDFS

一、FastDFS概述 1.1 什么是分布式文件系统 单机时代 初创时期由于时间紧迫&#xff0c;在各种资源有限的情况下&#xff0c;通常就直接在项目目录下建立静态文件夹&#xff0c;用于用户存放项目中的文件资源。如果按不同类型再细分&#xff0c;可以在项目目录下再建立不同的…

【Linux -- systemctl管理服务】

Linux – systemctl管理服务 文章目录 Linux -- systemctl管理服务一、通过systemctl管理单一服务(service unit)二、通过systemctl查看系统上所有的服务三、通过systemctl管理不同的操作环境(target unit)四、通过systemctl分析各服务之间的依赖性总结 一、通过systemctl管理单…

ssh打开远程vscode

如果想要远程打开其他终端的vscode&#xff0c;首先要知道远程终端的ip地址和用户名称以及用户密码 1、打开本地vscode 2、点击左下角蓝色区域 3、页面上部出现如下图&#xff0c;点击ssh&#xff0c;我这里已经连接&#xff0c;所以是connect to host 4、选择Add New SSH Host…

系统架构设计师-软件架构设计(1)

目录 一、软件架构的概念 1、架构的本质 2、架构的作用 二、架构发展历史 三、架构的 “4 1” 视图 1、逻辑视图&#xff08;Logical View&#xff09; 2、开发视图&#xff08;Development View&#xff09; 3、进程视图&#xff08;Process View&#xff09; 4、物理视图…

Python操作文件:从入门到“悟”

一、打开文件 Python里面打开文件可以使用内置的open函数。 open函数的定义如下&#xff1a; def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue): # known special case of open常用参数介绍&#xff1a; file&#xff1a;指定要打…

苹果账号被禁用怎么办

转载&#xff1a;苹果账号被禁用怎么办 目录 禁用的原因 解除Apple ID禁用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKQ1ILhC-1689932607373)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw)]​编辑 …

win10电脑便签常驻桌面怎么设置?

你是否曾经因为繁忙的工作而忘记了一些重要的事项&#xff1f;相信很多人都会回答&#xff1a;忘记过&#xff01;其实在快节奏的职场中&#xff0c;我们经常需要记录一些重要的信息&#xff0c;例如会议时间、约见客户时间、今天需要完成的工作任务等。而为了能够方便地记录和…

【简单认识MySQL函数和高级语句】

文章目录 一.常用查询1.按关键字排序&#xff08;ORDER BY 语句&#xff09;1、语法格式2、 ASC和DESC的排序概念3、举例1、按分数排序&#xff0c;默认不指定是升序排列2、分数按降序排列3、order by 还可以结合where进行条件过滤&#xff0c;筛选地址是南京的学生按分数降序排…

07.计算机网络——数据链路层

文章目录 数据链路层以太网帧格式MAC地址理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响 ARP协议**ARP**协议的作用ARP协议的工作流程ARP数据报的格式 数据链路层 ​ 数据链路层在物理层提供的服务的基础上向网络层提供服务&#xff0c;…

了解持续集成、交付和部署

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; 软件开发公司变得越来越敏捷。他们不断适应新技术和实践&#xff0c;以在其业务领域保持领先地位。在软件开发中&#xff0c;三种策略&#xff1b;持续集成、持续交付和持续部署是为了快速、一致地开发、部署、测试和…

Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin

Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin <?xml version"1.0" encoding"utf-8"?> <resources><dimen name"my_size_dp">20dp</dimen><dimen name"my_size_px">20px</dime…

研发机器配网方案(针对禁止外网电脑的组网方案)

背景&#xff1a;公司是研发型小公司&#xff0c;难免会使用A某D和K某l 等国内免费软件&#xff0c;这两个是业界律师函发得最多的软件。最简单的方案是离网使用&#xff0c;但是离网使用比较麻烦的是要进行文件传输&#xff0c;需要使用U盘拷贝&#xff0c;另外研发型企业一般…

【UE5】CallCustomEvent插件的使用文档

该插件是一款可以帮助你调用任意的蓝图自定义事件 使用该插件调用自定义事件时&#xff0c;你不需要实现获取对方类的引用 比如我在A类里创建了一个名叫“MyPrint”的自定义事件 因为该节点有三个参数&#xff0c;所以我们在B类中调用三个参数的CallCustomEvent节点 然后在B类…

蓝桥杯刷题记录-2020省赛

比较全面的记录2020省赛题目&#xff0c;本篇文章全文都是采用Python解题&#xff0c;题目都是基础简单的题目 1.成绩统计 解题代码&#xff1a; import os import sys nint(input()) well0 ok0 for i in range(n):aint(input())if a>85:well1ok1elif a>60:ok1 print(&…

网络安全:密码学基本理论.

网络安全&#xff1a;密码学基本理论. 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律&#xff0c;应用于编制密码以保守通信秘密的&#xff0c;称为编码学&#xff1b;应用于破译密码以获取通信情报的&#xff0c;称为破译学&#xff0c;总称密码学. 目录…

【itext7】itext7操作PDF文档之添加表单控件(单行文本框、多行文本框、单选框、复选框、下拉框、按钮)

这篇文章&#xff0c;主要介绍itext7操作PDF文档之添加表单控件&#xff08;单行文本框、多行文本框、单选框、复选框、下拉框、按钮&#xff09;。 目录 一、itext操作PDF表单 1.1、添加单行文本框 1.2、添加多行文本框 1.3、添加单选框 1.4、添加复选框 1.5、添加下拉框…

目标检测——SSD模型介绍

目录 SSD网络结构backboneextra部分loc和clsPriorBox层先验框的生成方法loc的预测结果 模型训练正负样本标记损失函数困难样本挖掘 模型预测 SSD网络结构 backbone extra部分 loc和cls PriorBox层先验框的生成方法 loc的预测结果 模型训练 正负样本标记 损失函数 困难样本挖掘…