当前位置: 首页 > news >正文

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。这意味着默认情况下,所有的服务和配置都在同一个命名空间下进行管理和隔离。

default

5.2 Namespace的创建:

找到命名空间菜单:

new
新建命名空间:
在这里插入图片描述

命名空间不填默认会自动生成,填写完,点击确定按钮。

deev

可以看到,页面里已经创建好了一个新的namespace。

5.3 微服务接入namespace:

这里可以先看下这篇文章:Spring Cloud Alibaba 整合 Nacos 实战

5.3.1 消费者 consumer 默认处于public命名空间:
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如下:
provider
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控制台的服务列表:

detail

点击详情,可以看到consumer有两台在上海集群,一台在北京:

上海

三、权重配置

Nacos中的服务权重功能可以帮助解决一些问题,包括服务升级和服务选择。

1. 服务升级:

当系统需要进行服务升级或者版本迭代时,可以通过设置服务的权重来实现平滑的升级过程。例如,如果要升级一个服务的新版本,可以先将新版本的实例的权重设置为较低的值,然后逐步提高权重,同时降低旧版本实例的权重,实现新旧版本的平滑过渡。

2. 服务选择:

通过设置不同实例的权重,可以实现对不同实例的选择和分配。例如,可以将某些性能更好或者资源更充足的实例设置较高的权重,从而使得请求更有可能被路由到这些实例上。这样可以实现负载均衡和资源优化,提高系统的性能和可用性。

通过Nacos的权重功能,可以灵活地控制和调整服务的权重,以满足不同场景和需求。这为服务的管理和运维提供了更多的控制和灵活性。

在nacos控制台,找到 consumer 服务的实例列表,点击编辑,即可修改权重:

weight
这里我们将provider 权重修改为0:

在这里插入图片描述

通过consumer 调用 provider 则该实例永远不会被访问,报错如下:

providera

权重为 0 表示该实例的服务不可用或不参与负载均衡,因此请求不会被路由到该实例上。

四、临时实例与持久实例

1. 临时实例:

默认nacos就是临时实例,临时实例是指在服务注册后,当实例下线或者断开连接时,Nacos会立即将其从服务列表中删除。

这意味着临时实例在下线后不会被其他服务调用。

在这里插入图片描述

2. 持久化实例:

与之相对的是持久化实例,持久化实例在下线后仍然会保留在服务列表中,其他服务仍然可以调用它。

在Nacos中,可以通过配置来指定实例是临时实例还是持久化实例。

修改yml文件中ephemeral属性为false :

spring:cloud:nacos:discovery:ephemeral: false

consumer-prov

观察consumer的临时实例 已经变为了 false

consumer1
观察provider的临时实例 已经变为了 false

provider1

相关文章:

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&#xff0c…...

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实现历史记录搜索功能&#xff08…...

Unity新手避坑指南:用C#脚本动态修改材质和Shader,别再搞混material和sharedMaterial了

Unity材质控制深度解析:从内存管理到动态效果实战 在Unity开发中,材质(Material)和着色器(Shader)的控制是创建动态视觉效果的核心技能。许多开发者在使用C#脚本修改材质属性时,常常陷入material和sharedMaterial的混淆陷阱,导致内…...

从零开始构建SaaS多租户架构:SpringBoot + MyBatis-Plus动态数据源实战

1. 为什么选择SpringBoot MyBatis-Plus构建SaaS系统 最近公司要求将现有系统升级为SaaS架构,作为Java技术栈的团队,我们评估了多种方案后选择了SpringBoot MyBatis-Plus组合。这个选择主要基于三个实际考量:首先,SpringBoot的自…...

手把手教你用PyTorch从零搭建并调优MobileNetV2图像分类模型

1. 环境准备与项目初始化 第一次接触MobileNetV2和PyTorch时,我也被各种环境配置搞得头大。后来发现用Anaconda管理环境能省去80%的兼容性问题。这里分享我的标准配置流程: conda create -n mobilenetv2 python3.8 -y conda activate mobilenetv2安装PyT…...

华硕笔记本如何告别臃肿控制中心?GHelper轻量级性能管理工具详解

华硕笔记本如何告别臃肿控制中心?GHelper轻量级性能管理工具详解 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF,…...

如何快速上手tts-vue:微软语音合成工具的完整使用指南

如何快速上手tts-vue:微软语音合成工具的完整使用指南 【免费下载链接】tts-vue 🎤 微软语音合成工具,使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 在数字化时代,…...

Matlab R2023a绘图避坑指南:xlabel设置无效?可能是你忽略了这3个细节(多图、子图、字体)

Matlab R2023a绘图避坑指南:xlabel设置无效的3个关键细节 最近在帮实验室师弟调试Matlab代码时,发现一个有趣的现象:明明照着官方文档写的xlabel语句,运行时却总是出现各种"灵异事件"。有的标签神秘消失,有的…...

【Matlab】MATLAB教程:奇异值分解SVD及实战应用(基于[U,S,V]=svd(A))

MATLAB教程:奇异值分解SVD及实战应用(基于[U,S,V]=svd(A)) 本文基于MATLAB R2020b版本编写(兼容R2018及以上所有版本),聚焦线性代数中最具实用性的运算——奇异值分解(Singular Value Decomposition,SVD),打破“奇异值分解难懂”的壁垒,从理论铺垫、函数实操、案例…...

3个核心挑战:PvZ Toolkit如何解决植物大战僵尸修改难题

3个核心挑战:PvZ Toolkit如何解决植物大战僵尸修改难题 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 植物大战僵尸作为经典的塔防游戏,其PC版本拥有庞大的玩家社区。然而&…...

Akagi雀魂AI辅助工具:5步快速上手,成为麻将高手的智能教练

Akagi雀魂AI辅助工具:5步快速上手,成为麻将高手的智能教练 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將,能夠使用自定義的AI模型實時分析對局並給出建議,內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Rii…...

构建高性能HDF5数据可视化架构:ViTables模块化设计指南

构建高性能HDF5数据可视化架构:ViTables模块化设计指南 【免费下载链接】ViTables ViTables, a GUI for PyTables 项目地址: https://gitcode.com/gh_mirrors/vi/ViTables 在科学计算和大数据时代,HDF5格式已成为存储复杂结构化数据的行业标准&am…...