微服务——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中的代码修改为。
@Autowiredprivate 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项目,不然内存直接上天了。
相关文章:
微服务——Nacos配置管理
目录 Nacos配置管理——实现配置管理 配置管理实践 Nacos配置管理——微服务配置拉取 Nacos配置管理——配置热更新 方式一: 编辑 方式二(推荐方式): Nacos配置管理——多环境配置共享 优先级问题 Nacos配置管理——nacos集群搭建 总结编辑 Nacos配置管理——实现配置管…...
如何为WordPress博客网站配置免费域名HTTPS证书
文章目录 如何为WordPress博客网站配置免费域名HTTPS证书前置条件:步骤1 申请免费的域名HTTPS证书步骤2 将HTTP证书配置到cpolar的配置文件中2.1 创建证书文件夹2.2 修改cpolar配置文件2.3 重启cpolar服务2.4 查看后台Wordpress隧道是否在线正常2.5 用浏览器打开站点…...
React之内置的高阶组件
React之内置的高阶组件 React内置了一些高阶组件,以便对一些组件做特殊处理,从而提高代码性能。例如React.memo、React.forwardRef 注意:高阶组件不是Reacts视图组件 什么是高阶组件 高阶组件本质是高阶函数。高阶组件接收一个组件作为参数&…...
【kubernetes系列】flannel之vxlan模式原理
概述 在Kubernetes中要保证容器之间网络互通,网络至关重要。而Kubernetes本身并没有自己实现容器网络,而是而是借助CNI标准,通过插件化的方式自由接入进来。在容器网络接入进来需要满足如下基本原则: Pod无论运行在任何节点都可…...
PostgreSQL -- 备份恢复命令
前言 这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:RodmaChen PostgreSQL -- 备份恢复命令 一. pg_dump常用参数二. pg_dumpall三. psql四. pg_restore五.参考文章 PostgreSQL 13.7 一. pg_dump常用参数 pg_dump 把一个数据…...
【基于Spark的电影推荐系统】环境准备
概览 本科毕设做过电影推荐系统,但当时的推荐算法只有一个,现在已经忘记大部分了,当时也没有记录,因此写这个博客重新来记录一下。此外,技术栈由于快秋招原因来不及做过多的部分,因此只实现简单的功能&…...
团簇大小分布计算方法,fix ave/histo命令详解
LAMMPS是一款广泛应用于分子动力学模拟的强大软件。在模拟过程中,我们经常需要对系统的物理性质进行分析和统计。 fix ave/histo命令则是LAMMPS中一个非常有用的命令,它可以帮助我们对系统进行直方图统计分析。 本文将深入介绍fix ave/histo命令的用法和…...
CAN标准帧和拓展帧
转自:https://www.cnblogs.com/fengliu-/p/9277165.html CAN2.0B标准帧 CAN 标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。 位置 7 6 5 4 3 2 1 0 字节01 FF RTR DLC(数据长度&#…...
android 清除缓存方法
获得应用的存储信息 private void getAppStorageInfo(String packageName){StorageStatsManager storageStatsManager (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);StorageManager storageManager (StorageManager) context.getSystemS…...
介绍下你们项目中各微服务之间怎么调用的?
各微服务模块之间的数据交互主要通过一些常见的通信机制进行。以下是几种常见的数据交互方式: RESTful API:REST(Representational State Transfer)是一种基于HTTP协议的通信机制,它使用标准的HTTP方法(如…...
MySql提示:The Server Quit Without Updating PID File(…)失败 103.36.167
01问题 可能是 /usr/local/mysql/data/rekfan.pid 文件没有写的权限 。 解决办法 给予权限,执行 1. # chown -R mysql:mysql /var/data 2. #chmod -R 755 / usr/local/mysql/data 然后重新启动mysqld。 43.242.205 02问题 可能进程里已经存在…...
FPGA学习——按键消抖的两种实现方法
文章目录 一、按键消抖简介1.1、为什么要按键消抖 二、C4开发板原理图三、按键消抖源码3.1、方案一(每当检测到下降沿便开始重新计数)3.2、方案二(检测到第一次下降沿后便开始计数) 四、仿真代码及仿真波形图五、拓展:…...
SecureCRT如何将复制的内容粘贴到word中仍然保持原有字体颜色
SecureCRT如何将复制的内容粘贴到word中仍然保持原有字体颜色 QQ 109792317 说明:当SecureCRT加载了配色文件后,输出的关键字会被不同颜色高亮显示,但是如果复制粘贴到word中会发现成了纯文本,字体颜色消失了。 如何保留 &#x…...
微信小程序分享页面代码
在微信小程序中实现分享功能需要以下几个步骤: 1. 在app.json文件中配置分享参数,例如标题、路径等。示例如下: json { "pages": [ "pages/index/index" ], "window": { "navigationBarTit…...
Hadoop 之 Hbase 配置与使用(四)
Hadoop 之 Hbase 配置与使用 一.Hbase 下载1.Hbase 下载 二.Hbase 配置1.单机部署2.伪集群部署(基于单机配置)3.集群部署1.启动 hadoop 集群2.启动 zookeeper 集群3.启动 hbase 集群4.集群启停脚本 三.测试1.Pom 配置2.Yml 配置3.Hbase 配置类4.Hbase 连…...
使用TensorFlow和VGG-19模型实现艺术风格迁移:一步一步打造你的数字艺术世界
在当下的AI领域,神经风格迁移是最富有创新性和艺术性的技术之一。这项技术可以将一种图像的风格迁移至另一种图像,创造出让人眼前一亮的视觉效果。这种转变所展现的技术之美,让我们深感人工智能所带来的可能性。本文将带领大家一步步通过TensorFlow和VGG-19模型实现风格迁移…...
FBX/GLTF在线转换
3Dconvert是一个可以进行3D模型格式转换的在线工具,并支持3D模型在线预览和转换成果下载。网站访问地址:3D模型在线转换。 1、上传3D模型文件 3D模型在线转换工具的使用非常便捷,首先在网站首页选择需要转换的目标格式,网站支持…...
Tensorflow(二)
一、过拟合 过拟合现象:机器对于数据的学习过于自负(想要将误差减到最小)。 解决方法:利用正规化方法 二、卷积神经网络(CNN) 卷积神经网络是近些年来逐渐兴起的人工神经网络,主要用于图像分类、计算机视觉等。 卷积:例如对图片每一小块像素区域的处理ÿ…...
NoSQL之 Redis 部署,配置与优化
文章目录 NoSQL之 Redis配置与优化一.关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景 二.Redis简介1.了解Redis2.Redis 具有以下几个优点3.Redis为何这么快 三.Redis 安装及应用1.Redis 安装部署2.Redi…...
汽车行业 Y 公司对接斯堪尼亚 SCANIA EDI 项目案例
斯堪尼亚是一家来自瑞典的重型车辆制造公司,成立于1891年,总部位于斯德哥尔摩,主要专注于生产卡车、客车和工业发动机,以及相应的服务与解决方案。斯堪尼亚的产品以其高品质、可靠性和先进技术而闻名。其卡车广泛应用于货运和运输…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
