Sping Cloud配置和注册中心

1.Nacos实现原理了解吗?

在这里插入图片描述

Nacos是注册中心,主要是帮助我们管理服务列表。Nacos的实现原理大概可以从下面三个方面来讲:

  1. 服务注册与发现:当一个服务实例启动时,它会向Nacos Server发送注册请求,将自己的信息注册到注册中心。Nacos Serve会将这些信息保存在内存中,并提供REST接口供其它服务查询。
  2. 服务健康检测:Nacos通过心跳检测来检查服务是否正常,服务实例会定期向Nacos Serve发送心跳。如果Nacos Serve在定期的时间内没有收到服务实例的心跳,则会将其标注为不可用。如果还没有收到心跳,就从服务实例中移除。
  3. 服务负载均衡:Nacos会向客户端返回一个服务列表,客户端可以选择本地的负载均衡算法选择其中的一个进行调用。
    Eureka的实现原理是一样的。

服务实例启动时,会将自己的信息注册到注册中心。Nacos Serve会将注册信息保存在内存,并提供REST接口供其它服务访问。Nacos通过心跳监测来检查服务实例是否异常,如果定期时间内没有返回心跳,就将服务实例设置为不可用。如果过段时间还没有返回心跳,则将服务实例从实例列表中移除。注册中心会将服务实例列表发送给Nacos客户端,Nacos客户端会根据本地的负载均衡算法选择一个实例调用。

2.Nacos是如何实现配置的动态更新的?

  1. Nacos采用的是长轮询的方式向Nacos Server发起配置更新的查询功能,服务端配置没有变更的时候连接是一直打开的,直到服务端配置发生变更或者连接超时才会返回。
  2. Nacos 客户端需要获取服务端的变更配置,比较本地配置信息和服务器的配置信息。一旦发现服务端的配置有差异就表示服务器的配置有更新,需要将更新的配置拉取到本地。

Nacos采用长轮询的方式来检查配置信息变更,如果服务端配置信息没变更,连接就会一直打开。如果服务端的配置信息发生变更,就将变更的配置信息拉取到本地。

3.Nacos如何完成配置共享和热更新的?

  1. 首先添加配置信息到Nacos中
  2. 然后在bootstrap.yaml文件中拉取共享配置。

Spring 在初始化的时候会读取bootstrap文件。比如我们将购物车上限数量10,设置到Nacos中。这样我们更新购物车上限数量时,就不需要重启系统了。

Nacos实现配置共享和热更新时,首先将配置信息添加到Nacos中,然后在bootstrap.yaml文件中拉取共享配置。Spring初始化的时候会先读取bootstrap.yaml文件,然后读取application.yaml文件。

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

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

相关文章

C++笔记之父类引用是否可以访问到子类特有的属性?

C++笔记之父类引用是否可以访问到子类特有的属性? code review! 参考笔记 1.C++笔记之在基类和派生类之间进行类型转换的所有方法 文章目录 C++笔记之父类引用是否可以访问到子类特有的属性?1.主要原因2.示例代码3.说明4.如何访问子类特有的属性5.注意事项6.总结在 C++ 中,…

JavaScript逆向工程:如何判断对称加密与非对称加密

在现代Web应用安全分析中,加密算法的识别是JavaScript逆向工程的关键环节。本文将详细介绍如何在逆向工程中判断JavaScript代码使用的是对称加密还是非对称加密。 一、加密算法基础概念 1. 对称加密 (Symmetric Encryption) 特点:加密和解密使用相同的…

物理备份工具 BRM vs gs_probackup

什么是BRM 上一篇文章讲了openGauss的物理备份工具gs_probackup,今天来说说BRM备份工具。 BRM备份恢复工具全称为:Backup and Recovery Manager,是MogDB基于opengauss的备份工具 gs_probackup 做了一些封装和优化,面向MogDB数据库实现备份和…

问问lua怎么写DeepSeek,,,,,

很坦白说,这十年,我几乎没办法从互联网找到这个这样的代码,互联网引擎找不到,我也没有很大的“追求”要传承,或者要宣传什么;直到DeepSeek的出现 兄弟,Deepseek现在已经比你更了解你楼下的超市…

react+Tesseract.js实现前端拍照获取/选择文件等文字识别OCR

需求背景 在开发过程中可能会存在用户上传一张图片后下方需要自己识别出来文字数字等信息,有的时候会通过后端来识别后返回,但是也会存在纯前端去识别的情况,这个时候就需要使用到Tesseract.js这个库了 附Tesseract.js官方(htt…

蓝桥杯考前复盘

明天就是考试了,适当的停下刷题的步伐。 静静回望、思考、总结一下,我走过的步伐。 考试不是结束,他只是检测这一段时间学习成果的工具。 该继续走的路,还是要继续走的。 只是最近,我偶尔会感到迷惘,看…

前端-Vue3

1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…

[ctfshow web入门] web39

信息收集 题目发生了微妙的变化,只过滤flag,include后固定跟上了.php。且没有了echo $flag;,虽说本来就没什么用 if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){include($c.".php");} }else{…

【动手学深度学习】LeNet:卷积神经网络的开山之作

【动手学深度学习】LeNet:卷积神经网络的开山之作 1,LeNet卷积神经网络简介2,Fashion-MNIST图像分类数据集3,LeNet总体架构4,LeNet代码实现4.1,定义LeNet模型4.2,定义模型评估函数4.3&#xff0…

代码随想录第15天:(二叉树)

一、二叉搜索树的最小绝对差(Leetcode 530) 思路1 :中序遍历将二叉树转化为有序数组,然后暴力求解。 class Solution:def __init__(self):# 初始化一个空的列表,用于保存树的节点值self.vec []def traversal(self, r…

计算机操作系统-【死锁】

文章目录 一、什么是死锁?死锁产生的原因?死锁产生的必要条件?互斥条件请求并保持不可剥夺环路等待 二、处理死锁的基本方法死锁的预防摒弃请求和保持条件摒弃不可剥夺条件摒弃环路等待条件 死锁的避免银行家算法案例 提示:以下是…

vue拓扑图组件

vue拓扑图组件 介绍技术栈功能特性快速开始安装依赖开发调试构建部署 使用示例演示截图组件源码 介绍 一个基于 Vue3 的拓扑图组件,具有以下特点: 1.基于 vue-flow 实现,提供流畅的拓扑图展示体验 2.支持传入 JSON 对象自动生成拓扑结构 3.自…

go 通过汇编分析函数传参与返回值机制

文章目录 概要一、前置知识二、汇编分析2.1、示例2.2、汇编2.2.1、 寄存器传值的汇编2.2.2、 栈内存传值的汇编 三、拓展3.1 了解go中的Duff’s Device3.2 go tool compile3.2 call 0x46dc70 & call 0x46dfda 概要 在上一篇文章中,我们研究了go函数调用时的栈布…

python-1. 找单独的数

问题描述 在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上的数字是什么。 要求: 设…

算法学习C++需注意的基本知识

文章目录 01_算法中C需注意的基本知识cmath头文件一些计算符ASCII码表数据类型长度运算符cout固定输出格式浮点数的比较max排序自定义类型字符的大小写转换与判断判断字符是数字还是字母 02_数据结构需要注意的内容1.stringgetline函数的使用string::findsubstr截取字符串strin…

从零开始写android 的智能指针

Android中定义了两种智能指针类型,一种是强指针sp(strong pointer),源码中的位置在system/core/include/utils/StrongPointer.h。另外一种是弱指针(weak pointer)。其实称之为强引用和弱引用更合适一些。强…

【leetcode hot 100 152】乘积最大子数组

错误解法:db[i]表示以i结尾的最大的非空连续,动态规划:dp[i] Math.max(nums[i], nums[i] * dp[i - 1]); class Solution {public int maxProduct(int[] nums) {int n nums.length;int[] dp new int[n]; // db[i]表示以i结尾的最大的非空连…

图论整理复习

回溯: 模板: void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯&#xff…

uniapp离线打包提示未添加videoplayer模块

uniapp中使用到video标签,但是离线打包放到安卓工程中,运行到真机中时提示如下: 解决方案: 1、把media-release.aar、weex_videoplayer-release.aar放到工程的libs目录下; 文档:https://nativesupport.dcloud.net.cn/…

打包构建替换App名称

方案适用背景 一套代码出多个安装包,且安装包的应用名称、图标都不一样考虑三语名称问题 通过 Gradle 脚本实现 gradle.properties 里面定义标识来区分应用,如下文里的 APP_TYPEAAA 、APP_TYPEBBB// 定义 groovy 替换方法 def replaceAppName(String …