Spirng Cloud Alibaba Nacos注册中心的使用 (环境隔离、服务分级存储模型、权重配置、临时实例与持久实例)
文章目录
- 一、环境隔离
- 1. Namespace(命名空间):
- 2. Group(分组):
- 3. Services(服务):
- 4. DataId(数据ID):
- 5. 实战演示:
- 5.1 默认情况(public):
- 5.2 Namespace的创建:
- 5.3 微服务接入namespace:
- 二、服务分级存储模型
- 1. 服务级别:
- 2. 集群级别:
- 3. 区域级别:
- 三、权重配置
- 1. 服务升级:
- 2. 服务选择:
- 四、临时实例与持久实例
- 1. 临时实例:
- 2. 持久化实例:
一、环境隔离
在Nacos中,数据模型的相关概念包括namespace、group、services和dataId。
1. Namespace(命名空间):
- Namespace是Nacos的最高级别的隔离单位,用于隔离不同的应用或环境。
- 每个Namespace都是相互隔离的,拥有独立的配置和服务注册表。
- 通过Namespace可以实现不同环境的配置和服务管理,如开发环境、测试环境和生产环境可以使用不同的Namespace。
2. Group(分组):
- Group是在同一个Namespace下对服务或配置进行逻辑上的分组。
- 通过Group可以对服务或配置进行分类和管理,方便进行版本控制、灰度发布等操作。
- 一个Group可以包含多个服务或配置。
3. Services(服务):
- Services表示一组提供相同服务的实例集合。
- 在Nacos中,服务注册中心用于将服务实例注册到服务列表中,并提供服务发现和负载均衡等功能。
- 每个服务都有一个唯一的服务名(Service Name),可以根据服务名来查找和管理服务实例。
4. DataId(数据ID):
- DataId是指在Nacos中唯一标识一个配置的字符串。
- 对于配置管理来说,DataId对应于配置文件的文件名或者配置项的唯一标识符。
- 对于服务注册和发现来说,DataId对应于服务的唯一标识符。通过DataId可以唯一定位到一个配置或服务。
这些概念在Nacos中的组织结构和管理方式,可以帮助用户更好地进行配置管理和服务注册与发现。
5. 实战演示:
5.1 默认情况(public):
在Nacos中,默认情况下,所有的服务(services)、配置(data)和分组(group)都在同一个Namespace中,该Namespace的名称为public。这意味着默认情况下,所有的服务和配置都在同一个命名空间下进行管理和隔离。
5.2 Namespace的创建:
找到命名空间菜单:
新建命名空间:
命名空间不填默认会自动生成,填写完,点击确定按钮。
可以看到,页面里已经创建好了一个新的namespace。
5.3 微服务接入namespace:
这里可以先看下这篇文章:Spring Cloud Alibaba 整合 Nacos 实战
5.3.1 消费者 consumer 默认处于public命名空间:
5.3.2 provider修改yml配置:
cloud:nacos:discovery:server-addr: 127.0.0.1:8848namespace: c431c2a3-91bc-40ed-a99c-6fe856ac1e7d
5.3.3 启动provider 对应namespace如下:
5.3.4 consumer向provider发起调用:
控制台报错如下:
因为namespace不同,会导致consumer找不到provider
二、服务分级存储模型
在分布式系统中,实例之间的关系可以分为以下几个级别:
1. 服务级别:
每个实例都属于同一个服务,即 consumer 服务。
2. 集群级别:
多个实例可以组成一个集群。
例如consumer-1、consumer-2和consumer-3 可以组成一个consumer-service集群。
127.0.0.1:8101 # 北京机房
127.0.0.1:8102 # 上海机房
127.0.0.1:8103 # 上海机房
3. 区域级别:
如果实例分布在不同的区域或数据中心,可以将它们划分为不同的区域级别。
例如,consumer-1和 consumer-2 部署在北京机房,而consumer-3 部署在上海。
服务分级模型如下:
在微服务相互访问时,最好优先访问同一集群的实例,因为本地访问速度更快。仅当本集群不可用时,才考虑访问其他集群的实例。
例如:北京机房的consumer服务应该优先调用北京同机房的provider服务,在调不通的情况下才应该去访问上海机房的provider服务。
接下来,给consumer配置不通集群
在Nacos中,可以通过配置 cluster-name 属性 来指定集群的名称。可以将同一机房内的实例都配置相同的集群名称,这样它们就会被认为是同一个集群的成员。
修改yml如下:
spring:application:name: consumer #微服务名称#配置nacos注册中心地址cloud:nacos:discovery:server-addr: 127.0.0.1:8848cluster-name: SH
此时启动,三个consumer对应实例,打开nacos控制台的服务列表:
点击详情,可以看到consumer有两台在上海集群,一台在北京:
三、权重配置
Nacos中的服务权重功能可以帮助解决一些问题,包括服务升级和服务选择。
1. 服务升级:
当系统需要进行服务升级或者版本迭代时,可以通过设置服务的权重来实现平滑的升级过程。例如,如果要升级一个服务的新版本,可以先将新版本的实例的权重设置为较低的值,然后逐步提高权重,同时降低旧版本实例的权重,实现新旧版本的平滑过渡。
2. 服务选择:
通过设置不同实例的权重,可以实现对不同实例的选择和分配。例如,可以将某些性能更好或者资源更充足的实例设置较高的权重,从而使得请求更有可能被路由到这些实例上。这样可以实现负载均衡和资源优化,提高系统的性能和可用性。
通过Nacos的权重功能,可以灵活地控制和调整服务的权重,以满足不同场景和需求。这为服务的管理和运维提供了更多的控制和灵活性。
在nacos控制台,找到 consumer 服务的实例列表,点击编辑,即可修改权重:
这里我们将provider 权重修改为0:
通过consumer 调用 provider 则该实例永远不会被访问,报错如下:
权重为 0 表示该实例的服务不可用或不参与负载均衡,因此请求不会被路由到该实例上。
四、临时实例与持久实例
1. 临时实例:
默认nacos就是临时实例,临时实例是指在服务注册后,当实例下线或者断开连接时,Nacos会立即将其从服务列表中删除。
这意味着临时实例在下线后不会被其他服务调用。
2. 持久化实例:
与之相对的是持久化实例,持久化实例在下线后仍然会保留在服务列表中,其他服务仍然可以调用它。
在Nacos中,可以通过配置来指定实例是临时实例还是持久化实例。
修改yml文件中ephemeral属性为false :
spring:cloud:nacos:discovery:ephemeral: false
观察consumer的临时实例 已经变为了 false
观察provider的临时实例 已经变为了 false
相关文章:
Spirng Cloud Alibaba Nacos注册中心的使用 (环境隔离、服务分级存储模型、权重配置、临时实例与持久实例)
文章目录 一、环境隔离1. Namespace(命名空间):2. Group(分组):3. Services(服务):4. DataId(数据ID):5. 实战演示:5.1 默…...
26663-2011 大型液压安全联轴器 课堂随笔
声明 本文是学习GB-T 26663-2011 大型液压安全联轴器. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了大型液压安全联轴器的分类、技术要求、试验方法及检验规则等。 本标准适用于联接两同轴线的传动轴系,可起到限制…...
ChatGPT架构师:语言大模型的多模态能力、幻觉与研究经验
来源 | The Robot Brains Podcast OneFlow编译 翻译|宛子琳、杨婷 9月26日,OpenAI宣布ChatGPT新增了图片识别和语音能力,使得ChatGPT不仅可以进行文字交流,还可以给它展示图片并进行互动,这是一次ChatGPT向多模态进化的…...
二、VXLAN BGP EVPN基本原理
VXLAN BGP EVPN基本原理 1、BGP EVPN2、BGP EVPN路由2.1、Type2路由——MAC/IP路由2.2、Type3路由——Inclusive Multicast路由2.3、Type5路由——Inclusive Multicast路由 ————————————————————————————————————————————————…...
Evil.js
Evil.js install npm i lodash-utils什么?黑心996公司要让你体统跑路了? 想在离开前给你们的项目留点小礼物? 偷偷地把本项目引入你们的项目吧,你们的项目会有但不仅限于如下的神奇效果: 仅在周日时: 当…...
使用sqlmap的 ua注入
文章目录 1.使用sqlmap自带UA头的检测2.使用sqlmap随机提供的UA头3.使用自己写的UA头4.调整level检测 测试环境:bWAPP SQL Injection - Stored (User-Agent) 1.使用sqlmap自带UA头的检测 python sqlmap.py -u http://127.0.0.1:9004/sqli_17.php --cookie“BEEFHOO…...
华为云云耀云服务器L实例评测 | 实例评测使用之体验评测:华为云云耀云服务器管理、控制、访问评测
华为云云耀云服务器L实例评测 | 实例评测使用之体验评测:华为云云耀云服务器管理、控制、访问评测 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器是什么华为云云耀…...
resultmap
自定义映射resultMap resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名称不一致,则可以通过resultMap设置自定义映射 建moudel项目【实现多对一、一对多的表操作demo】 temp员工表、dept部门表 导入依赖【mysql驱动、junit、mybatis、日志依赖log4…...
宽带光纤接入网中影响家宽业务质量的常见原因有哪些
1 引言 虽然家宽业务质量问题约60%发生在家庭网(见《家宽用户家庭网的主要质量问题是什么?原因有哪些》一文),但在用户的眼里,所有家宽业务质量问题都是由运营商的网络质量导致的,用户也因此对不同运营商家…...
C++ - 封装 unordered_set 和 unordered_map - 哈希桶的迭代器实现
前言 unordered_set 和 unordered_map 两个容器的底层是哈希表实现的,此处的封装使用的 上篇博客当中的哈希桶来进行封装,相当于是在 哈希桶之上在套上了 unordered_set 和 unordered_map 。 哈希桶的逻辑实现: C - 开散列的拉链法&…...
gradle中主模块/子模块渠道对应关系通过配置实现
前言: 我们开发过程中,经常会面对针对不同的渠道,要产生差异性代码和资源的场景。目前谷歌其实为我们提供了一套渠道包的方案,这里简单描述一下。 比如我主模块依赖module1和module2。如果主模块中声明了2个渠道A和B,…...
28383-2012 卷筒料凹版印刷机 学习笔记
声明 本文是学习GB-T 28383-2012 卷筒料凹版印刷机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了卷筒料凹版印刷机的型式、基本参数、要求、试验方法、检验规则、标志、包装、运输与 贮存。 本标准适用于机组式的卷筒料凹版…...
stable diffusion学习笔记【2023-10-2】
L1:界面 CFG Scale:提示词相关性 denoising:重绘幅度 L2:文生图 女性常用的负面词 nsfw,NSFW,(NSFW:2),legs apart, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, (…...
flink选择slot
flink选择slot 在这个类里修改 package org.apache.flink.runtime.resourcemanager.slotmanager.SlotManagerImpl; findMatchingSlot(resourceProfile):找到满足要求的slot(负责从哪个taskmanager中获取slot)对应上图第8,9&…...
世界前沿技术发展报告2023《世界信息技术发展报告》(六)网络与通信技术
(六)网络与通信技术 1. 概述2. 5G与光通讯2.1 美国研究人员利用电磁拓扑绝缘体使5G频谱带宽翻倍2.2 日本东京工业大学推出可接入5G网络的高频收发器2.3 美国得克萨斯农工大学通过波束管理改进5G毫米波通信2.4 联发科完成全球首次5G NTN卫星手机连线测试2…...
spark SQL 任务参数调优1
1.背景 要了解spark参数调优,首先需要清楚一部分背景资料Spark SQL的执行原理,方便理解各种参数对任务的具体影响。 一条SQL语句生成执行引擎可识别的程序,解析(Parser)、优化(Optimizer)、执行…...
算法练习2——移除元素
LeetCode 27 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑…...
动态规划算法(2)--最大子段和与最长公共子序列
目录 一、最大子段和 1、什么是最大子段和 2、暴力枚举 3、分治法 4、动态规划 二、最长公共子序列 1、什么是最长公共子序列 2、暴力枚举法 3、动态规划法 4、完整代码 一、最大子段和 1、什么是最大子段和 子段和就是数组中任意连续的一段序列的和,而…...
CentOS上网卡不显示的问题
文章目录 1.问题描述 1.问题描述 ifconfig下看不到ens33网卡了。systemctl status network #查看网卡状态报下面的问题网上说的解决方式有以下三种: 第一种: 和 NetworkManager 服务有冲突,这个好解决,直接关闭 NetworkManger 服…...
localStorage实现历史记录搜索功能
📝个人主页:爱吃炫迈 💌系列专栏:JavaScript 🧑💻座右铭:道阻且长,行则将至💗 文章目录 为什么使用localStorage如何使用localStorage实现历史记录搜索功能(…...
计算机网络(一):概述
参考引用 计算机网络微课堂-湖科大教书匠计算机网络(第7版)-谢希仁 1. 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施计算机网络已经像水、电、煤气这些基础设施一样,成为我们生活中不可或…...
visual code 下的node.js的hello world
我装好了visual code ,想运行一个node.js 玩玩。也就是运行一个hello world。 一:安装node.js : 我google 安装node.js 就引导我到下载页面:https://nodejs.org/en/download 有 Windows Installer (.msi) 还有Windows Binary (…...
MySQL——四、SQL语句(下篇)
MySQL 一、常见的SQL函数1、数学函数2、日期函数3、分组函数(聚合函数)4、流程控制函数 二、where条件查询和order by排序三、分组统计四、多表关联查询1、交叉连接CROSS2、内连接inner3、外连接:outer4、子查询 五、分页查询 一、常见的SQL函数 1、length(str):获…...
蓝桥杯每日一题2023.10.2
时间显示 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 输入为毫秒,故我们可以先将毫秒转化为秒,由于只需要输出时分,我们只需要将天数去除即可,可以在这里多训练一次天数判断 #include<bits/stdc.h> using namespace std…...
红外遥控器 数据格式,按下及松开判断
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。 同类产品的红…...
win32进程间通信方式(13种)
win32进程间通信 文件映射共享内存匿名管道命名管道远程过程调用(RPC)对象连接与嵌入(OLE)动态数据交换(DDE)剪贴板WM_COPYDATA消息邮件槽其它 文件映射 特点:本地间通信,不能用于网…...
基于Vue+ELement搭建动态树与数据表格实现分页模糊查询
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《ELement》。🎯🎯 …...
多线程案例 - 单例模式
单例模式 ~~ 单例模式是常见的设计模式之一 什么是设计模式 你知道象棋,五子棋,围棋吗?如果,你想下好围棋,你就不得不了解一个东西,”棋谱”,设计模式好比围棋中的 “棋谱”. 在棋谱里面,大佬们,把一些常见的对局场景,都给推演出来了,照着棋谱来下棋,基本上棋力就不会差到哪…...
云原生Kubernetes:对外服务之 Ingress
目录 一、理论 1.Ingress 2.部署 nginx-ingress-controller(第一种方式) 3.部署 nginx-ingress-controller(第二种方式) 二、实验 1.部署 nginx-ingress-controller(第一种方式) 2.部署 nginx-ingress-controller(第二种方式) 三、问题 1.启动 nginx-ingress-controll…...
Java21 新特性
文章目录 1. 概述2. JDK21 安装与配置3. 新特性3.1 switch模式匹配3.2 字符串模板3.3 顺序集合3.4 记录模式(Record Patterns)3.5 未命名类和实例的main方法(预览版)3.6 虚拟线程 1. 概述 2023年9月19日 ,Oracle 发布了…...
企业网络营销网站设计/百度营销推广
目录 一、linux分区介绍 二、增加一块硬盘并进行分区和挂载 三、详细操作步骤 一、linux分区介绍 1.原理介绍 1)对于Linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构&…...
做网站 商标分类/长沙seo关键词
1.概述 2.类加载器 类的加载是由类加载器完成的,类加载器包括: 根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器(java.lang.Cla…...
网站ui设计师招聘/seo关键词排名技巧
1,技术的可行性:教学辅助系统可以由个人的电脑配置即可满足开发要求,然而在程序设计方面我们可以选择Javascript,HTML,CSS等来编写前台网页,同时可以用MySQL来写后台的数据库。 2, 经济的可行性:因为这个项…...
务川网站建设wguser/互联网营销师培训学校
成绩分析问题_m0_59519985的博客-CSDN博客 饮料换购问题_m0_59519985的博客-CSDN博客 刷题统计(注意类型)_m0_59519985的博客-CSDN博客 天干地支(Java)_m0_59519985的博客-CSDN博客 递增序列: 题目描述 本题为填…...
更换网站首页模板怎么做/做网络推广有哪些平台
PHP - PDT - HTML Syntax Validator (for PHP Files)由于HTML Syntax Validator (for PHP Files)可能会导致内存不足,此时可以关闭HTML Syntax Validator (for PHP Files),位置在Windows菜单,Preferences菜单项,Validation&#x…...
wordpress获取用户昵称/沈阳seo顾问
问题描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1). 思路:加入一个辅助栈用来存储最小值集合 (这里要注意题目并没有说栈内的元素类型…...