SpringCloudNacos注册中心服务分级存储模型

news2024/11/17 9:58:18

文章目录

  • 服务分级存储模型概述
  • 配置集群
    • 同集群优先的负载均衡
  • 权重配置
  • 总结


在这里插入图片描述

之前对 Nacos注册中心入门 已经做了演示. 这篇文章对 Nacos 的服务分级存储模型做理论与实践.



服务分级存储模型概述

一个服务可以有多个实例,例如我们的 user-server,可以有:

  • 127.0.0.1:8081
  • 127.0.0.1:8082
  • 127.0.0.1:8083

假如这些实例分布于全国各地的不同机房,例如:

  • 127.0.0.1:8081,在上海机房
  • 127.0.0.1:8082,在杭州机房
  • 127.0.0.1:8083,在杭州机房

Nacos 就将同一机房内的实例 划分为一个集群

也就是说,user-server 是服务,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型,如图:

在这里插入图片描述

微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。例如:

在这里插入图片描述

杭州机房内的 order-server应该优先访问同机房的 user-server。


配置集群

user-server 配置集群.

user-server 服务打包成三份. 三份配置文件做如下改动:

配置1:

server:
  port: 20242
spring:
  cloud:
    nacos:
      # 注册中心地址
      server-addr: ip:8848
      discovery:
        cluster-name: HZ # 集群名称
  application:
    name: user-server

配置2:

server:
  port: 20243
spring:
  cloud:
    nacos:
      # 注册中心地址
      server-addr: ip:8848
      discovery:
        cluster-name: HZ # 集群名称
  application:
    name: user-server

配置3:

server:
  port: 20244
spring:
  cloud:
    nacos:
      # 注册中心地址
      server-addr: ip:8848
      discovery:
        cluster-name: SH # 集群名称
  application:
    name: user-server

依次启动上面3个项目,启动成功后观察 http://ip:8848/nacos

在这里插入图片描述

看到有两个集群,三个实例…这两个集群分别是 HZ 和 SH .其中 HZ 下有连个实例,集群 SH 下有一个实例.

点击下图的详情:
在这里插入图片描述

会看到该服务的详情:

在这里插入图片描述


同集群优先的负载均衡

默认的ZoneAvoidanceRule并不能实现根据同集群优先来实现负载均衡。

因此 Nacos 中提供了一个NacosRule的实现,可以优先从同集群中挑选实例。

1)给 消费者服务 配置集群信息

修改 消费者服务application.yml 文件,添加集群配置:

spring:
  cloud:
    nacos:
      server-addr: ip:8848
      discovery:
        cluster-name: HZ # 集群名称

2)修改负载均衡规则

修改 消费者服务application.yml 文件,修改负载均衡规则:

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则 

权重配置

实际部署中会出现这样的场景:

服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。

但默认情况下 NacosRule 是同集群内随机挑选,不会考虑机器的性能问题。

因此,Nacos 提供了权重配置来控制访问频率,权重越大则访问频率越高。

Nacos 控制台,找到 user-server 的实例列表,点击编辑,即可修改权重:

在这里插入图片描述

在弹出的编辑窗口,修改权重

在这里插入图片描述


注意如果权重修改为 0,则该实例永远不会被访问


总结

在 Nacos 中,服务注册中心的服务分级存储模型是指将注册的服务信息按照不同的环境或命名空间进行分级存储,以实现服务的多环境隔离和管理。

Nacos 的服务分级存储模型主要包括以下几个概念和特点:

  • 命名空间(Namespace):命名空间是 Nacos 中的一个重要概念,可以用来隔离不同环境或不同应用的服务数据。通过命名空间,用户可以在不同的环境中管理不同的服务信息,比如在开发、测试和生产环境中分别注册和管理服务。

  • 集群(Cluster):Nacos 支持将服务信息分布在不同的集群中进行存储和管理,每个集群可以包含多个节点,提供高可用性和扩展性。

  • 分组(Group):在每个集群中,服务可以根据实际需求分成不同的分组进行管理,以达到更细粒度的服务隔离和控制。

  • 服务存储结构:Nacos 将各级别的服务信息按照命名空间、集群和分组的层次结构进行存储,通过这种分级存储结构,可以实现服务信息的多级管理和隔离。

通过 Nacos 的服务分级存储模型,用户可以更加灵活地管理和控制不同环境下的服务注册信息,实现服务的隔离和管理,从而提升系统的稳定性和可维护性。这种分级存储模型为企业级应用架构提供了更好的管理和控制手段,支持多租户、多环境的服务注册与管理,是 Nacos 注册中心的重要特性之一。

在这里插入图片描述



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

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

相关文章

Codeforces Round 929 (Div. 3)

Codeforces Round 929 (Div. 3) Codeforces Round 929 (Div. 3) A. Turtle Puzzle: Rearrange and Negate 题意:可以对整数数组进行两个操作,一是随意重新排列或保持不变,二是选择连续子段元素符号倒转,求可能最大的所有元素和…

nginx反向代理之缓存 客户端IP透传 负载均衡

一 缓存功能 缓存功能可以加速访问,如果没有缓存关闭后端服务器后,图片将无法访问,缓存功能默认关闭,需要开启。 相关选项: ​ proxy_cache zone_name | off; 默认off #指明调用的缓存,或关闭缓存机制;C…

opencv中两个LSD直线检测算法的区别与应用

opencv中两个LSD直线检测算法的区别与应用 同样是Line Segment Detector(lsd)算法,opencv中提供了两种实现,并且位于不同的模块。下面分别介绍它们的使用方法: 1. LineSegmentDetector 由于源码许可证问题 OpenCV 3.4.6-3.4.15、4.1.0-4.5.…

关于uniapp小程序的分包问题

开发uniapp小程序时,在打包上传代码时会出现超出2M的打包限制不能上传,那么我们该怎么做呢? 1.对于图片,将图片从后端服务取,尽量不要放在静态资源,图片体积会影响打包大小。 2.使用分包,tabb…

蓝桥杯_中断系统

一 中断 中断,即cpu暂停执行当前程序,转而执行另外一段特殊程序,处理结束后。返回之前暂停程序继续执行。 中断向量,中断服务程序的入口地址,每个中断源都对应一个固定的入口地址。 中断服务函数,内核响应中…

华为s5720s-28p-power-li-ac堆叠配置

叠物理约束: • 连线推荐示意图选用产品子系列中固定的一款设备做示例,与选择产品时指定型号的外观可能不同。示意图主要用于让用户了解相同子系列设备可以用作堆叠的端口的位置,以及使用不同的连线方式时如何连接设备上的端口。因此&#xf…

解决vscode内置视图npm脚本操作报权限问题

项目背景 当我们使用 vscode 运行NPM脚本时却爆红了,提示系统上禁止运行脚本。 解决思路 竟然提示权限不够,那么咱们就从系统权限出发,vscode右键以管理员身份运行 在集成终端中输入一下命令 # get-executionpolicy是PowerShell中的命令,用…

推荐5个python可视化库

你是否曾为数据可视化而烦恼? 在浩瀚的数据海洋中,如何将复杂的数据以直观、易懂的方式展现出来,成为了每个数据分析师和开发者必须面对的挑战。 幸运的是,我们有众多强大的可视化工具可以选择。 推荐5个Python可视化库&#x…

JS画摆线

最近看到一个很漂亮的曲线&#xff0c;研究了一下。 从圆心画一条线匀速转动&#xff0c;终点再画一条线转动&#xff0c;2条线转速不同&#xff0c;会画出很漂亮的花纹。 一个周期 完整周期 <html> <style> body { background:black; } p { text-align:center; c…

Spring中的事务和事务的传播机制

事务是一组操作的集合&#xff0c;不可以被分割。事务会把所有的操作作为一个整体&#xff0c;这组操作要么全部成功&#xff0c;要么全部失败。 事务有三种操作&#xff1a; 开启事务&#xff1b;提交事务&#xff1b;回滚事务。 如果代码的执行逻辑是这样&#xff1a; 开…

国际黄金价格是什么?和黄金价格有何区别?

黄金是世界上最珍贵的贵金属之一&#xff0c;其价值被无数人所垂涎。而国际黄金价格作为市场上的参考指标&#xff0c;直接影响着黄金交易的买卖。那么国际黄金价格到底是什么&#xff0c;与黄金价格又有何区别呢&#xff1f;本文将为您详细解答。 国际黄金价格是指以美元计量的…

【双碳】Acrel-1000DP分布式光伏并网及数据采集与控制的方式

摘要&#xff1a; 在“双碳”、整县分布式光伏等相关政策的目标背景下&#xff0c;分布式新能源广泛建设&#xff0c;对分布式新能 源规划的科学性提出更高的要求&#xff0c;有源配电网调度面临大规模分布式新能源参与后的运行管理问题&#xff0c;增 大了电网运行管理的风险和…

用友 NC 23处接口XML实体注入漏洞复现

0x01 产品简介 用友 NC 是用友网络科技股份有限公司开发的一款大型企业数字化平台。 0x02 漏洞概述 用友 NC 多处接口存在XML实体注入漏洞,未经身份验证攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等等,导致网站处于极度不安全…

图搜索基础-深度优先搜索

图搜索基础-深度优先搜索 参考原理引入流程解析手推例子 代码实现运行结果结果分析 参考 理论参考&#xff1a;深蓝学院 实现参考&#xff1a;github项目 原理 引入 对于这样一个图&#xff0c;我们试图找到S到G的通路&#xff1a; 计算机程序不会像人眼一样&#xff0c;一…

事件驱动的奇迹:深入理解Netty中的EventLoop

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 事件驱动的奇迹&#xff1a;深入理解Netty中的EventLoop 前言基础概念EventLoop的工作原理Channel与EventLoop的关系定时任务与延时任务EventLoop的生命周期EventLoop中的线程模型性能优化与最佳实践 …

前后端依赖下载上传

在某些情况下&#xff0c;可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖&#xff0c;你可以将它们保存在本地&#xff0c;然后在没有网络连接时使用&#xff0c;提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

前端架构: 脚手架之包管理工具的案例对比及workspace特性的基本使用

Npm WorkSpace 特性 1 &#xff09;使用或不使用包管理工具的对比 vue-cli 这个脚手架使用 Lerna 管理&#xff0c;它的项目显得非常清晰在 vue-cli 中包含很多 package 点开进去&#xff0c;每一个包都有package.json它里面有很多项目&#xff0c;再没有 Lerna 之前去维护和管…

sql | leecode 1147 |即时事务配送II | sql 优化

sql 有时候还是挺有意思的&#xff0c;有时候不只是crud 下面来看一道sql 题&#xff0c;第一个题解能跑完&#xff0c;但是超时 浮躁的人总是很难看的进去&#xff0c;有时候孤单又在所难免&#xff0c;所以啊 要继续坚持&#xff0c;原来中学老师讲的那句&#xff0c;要耐住寂…

arm服务器上部署kibana

1.首先需要从elasticsearch对应的kibana版本(arm) ​​​​​​Download Kibana Free | Get Started Now | Elastic 注意:选平台时切勿选错,linux aarch64,并选择elasticsearch对应的历史版本 2.可以通过rz命令上传压缩包至 linux 服务器进行解压&#xff0c;存放路径建议和e…

物联网通信协议介绍

为了方便&#xff0c;将物联网通信协议分为两大类&#xff0c;一类是接入协议&#xff0c;一类是通讯协议。接入协议一般负责子网内设备间的组网及通信&#xff1b;通讯协议主要是运行在传统互联网TCP/IP协议之上的设备通讯协议&#xff0c;负责设备通过互联网进行数据交换及通…