Nacos多级服务存储模型, NacosRule负载均衡规则入门

简介: 下面来简单认识一下今天的主角Nacos吧.Nacos给我们提供了一个这样的服务分级存储模型:1级是服务, 2级是集群, 3级是实例.Nacos提供了权重配置来控制访问频率, 权重越大访问频率越高;Nacos同一集群的默认权重是1:1的;Nacos控制台可以设置实例的权重值0~1之间

👳我亲爱的各位大佬们好😘😘😘
♨️本篇文章记录的为 NacosRule负载均衡规则 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉🙉。
♨️如果文章有什么需要改进的地方还请大佬不吝赐教❤️🧡💛
👨‍🔧 个人主页 : 阿千弟

比如说在分布式的多模块环境开发中,我们有一个服务叫做user-service, 它有多个实例, 这些实例都部署在一个机房里面, 有一天机房突然停电了,那么这个机房的所有实例都会挂掉😧😧😧, 该怎样解决这个问题呢?

@[toc]

服务多级存储模型

Nacos给我们提供了一个这样的服务分级存储模型:

我们可以将一个服务的多个实例部署在多个机房里面:

在这里插入图片描述

比方说公司在上海有个机房容纳端口为8081和8082的user-service的实例, 在杭州有个机房容纳端口为8083和8084的user-service的实例, 如果上海的机房停电了, 我们杭州这边的机房还能支撑我们服务的运行, 这就是我们Nacos提供的容灾技术

所以在Nacos的服务分级里面 : 1级是服务, 2级是集群, 3级是实例

为什么Nacos引入这样一个服务分级的模型呢?原来直接通过服务来找实例不好吗?

我们可以这样设想
在这里插入图片描述

原来我们都是在本地机房通过局域网的方式本地实例去访问本地实例, 然后如果我们的本地实例挂了才去访问其他机房的实例,这个过程的调用延迟是比较高的. 下面我们来配置实例的集群属性.

配置服务的集群属性配置

pom中添加如下依赖

cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: aliyun #集群名称

然后我们再配置 cluster-name: baiduyun,

然后启动, 可以发现确实是有了两个实例和两个集群

在这里插入图片描述
一个集群名称是aliyun另一个是baiduyun, 完美

在这里插入图片描述

Nacos-NacosRule负载均衡规则

既然我们想要了解Nacos的负载均衡规则,我们就要先进行配置

在pom文件中配置:

xxxservice: # 要做配置的服务名称
    ribbon:
      NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

那么在Nacos集群里面负载均衡规则是咋样的?

NacosRule优先选择本地集群, 然后在本地集群内的多个服务当中它再采用随机方式进行负载均衡, 这就是NacosRule的访问特点了

Nacos根据权重进行负载均衡

有时候我们在服务器上进行服务部署的时候, 可能由于设备问题 : 有的服务器比较新,性能好;有点比较老旧不能那么好用,这时候我们就希望让新的服务器承担更多的请求.

  • Nacos提供了权重配置来控制访问频率, 权重越大访问频率越高

  • Nacos同一集群的默认权重是1:1的

  • Nacos控制台可以设置实例的权重值, 0~1之间

这时候我们把8082端口的权重改为0.1, 8082端口的权重仍为1
在这里插入图片描述
理论上将我们把服务请求11次, 大概率上有10次服务请求到了8081的端口上, 只有1次服务请求到了8082的端口上

注意, 如果我们把权重设置为0, 则完全不会被访问到
在这里插入图片描述

服务上线不停机更新

其实这个特性是非常强的, 作为一个服务器不要以为权重是0就觉得它是废物, 想想看,如果我们现在对一个服务进行升级, 先将8082的权重调成0, 然后对它进行配置, 完成后可以将权重稍微调大一点, 一遍放过来一小部分请求方便测试, 如果没毛病, 我们再将权重调大, 这个不停机更新的方法很优雅

在这里插入图片描述

如果这篇【文章】有帮助到你💖,希望可以给我点个赞👍,创作不易,如果有对Java后端或者对spring感兴趣的朋友,请多多关注💖💖💖
👨‍🔧 个人主页 : 阿千弟

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
弹性计算 监控 负载均衡
|
负载均衡 NoSQL Redis
不增加 GPU,首 Token 延迟下降50%|LLM 服务负载均衡的新实践
针对LLM服务的特点,Higress AI网关以插件形式提供了面向LLM服务的负载均衡算法,包括全局最小请求数负载均衡、前缀匹配负载均衡以及GPU感知负载均衡,能够在不增加硬件成本的前提下,提升系统的吞吐能力、降低响应延迟,并实现更公平、高效的任务调度。
1156 136
|
运维 负载均衡 算法
|
存储 Nacos 数据安全/隐私保护
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
528 1
|
存储 算法 Java
Nacos学习圣经:从入门到精通 Nacos,最全详解
本文,就是 Nacos 学习圣经,帮助大家彻底掌握 阿里 的核心组件, nacos 。 Nacos学习圣经 正式版本会有更新, 。
Nacos学习圣经:从入门到精通 Nacos,最全详解
|
机器学习/深度学习 缓存 负载均衡
Qwen MoE关键细节:通过全局负载均衡提升模型性能和专家的特异化程度
Qwen MoE关键细节:通过全局负载均衡提升模型性能和专家的特异化程度
|
Java Nacos 开发工具
Nacos入门到精通
本文详细介绍了Nacos的基本概念、安装过程、配置管理功能,并通过具体代码示例展示了如何使用Java SDK和Spring Boot拉取和监听Nacos中的配置信息。
1311 1
Nacos入门到精通
|
弹性计算 监控 负载均衡
slb部署使用路径规则进行更细粒度控制
slb部署使用路径规则进行更细粒度控制
330 7
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
存储 设计模式 缓存
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
该文章主要介绍了如何在OpenFeign中集成Ribbon以实现负载均衡,并详细分析了Ribbon中服务选择和服务过滤的核心实现过程。文章还涉及了Ribbon中负载均衡器(ILoadBalancer)和负载均衡策略(IRule)的初始化方式。
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现