SpringCloud系列(四)Nacos 的三个有利配置(服务分级存储 / 环境隔离 / 负载均衡策略))

news2024/11/24 16:31:39

Nacos 的三个有利配置

  • 🚗 Nacos 服务分级存储模型
  • 🚗 🚗 环境隔离 - namespace
  • 🚗 🚗 🚗 NacosRule 负载均衡策略

我们都知道在京东商城购买商品,如果选择的是京东自营,那么几乎都是次日达,因为京东在许多城市周边建立了自营仓库,如果说在济南下单买了一个优派的显示器,你会发现发货地址是德州xxx仓库;如果不是购买的自营商品,那么可能是在很远的地方发货,导致收货周期变长,并且浪费了大量的资源,如运输资源、人力,如果恰逢遇上某个城市疫情管控,可能收货周期遥遥无期~~
同样的道理,如果一些功能的服务提供者都在杭州,那么北京、上海、深圳都远程调用杭州的服务,那么势必会造成调用的延迟,毕竟在互联网行业上的延迟可能是致命的;因此针对这个问题,Nacos 就诞生了服务分级存储模型,划分为多个集群,如杭州集群、上海集群,服务的调用尽可能的选择本地集群的服务,本地集群不可访问时,再去访问其它集群,这样大大降低了跨集群调用延迟高的问题!

🚗 Nacos 服务分级存储模型

☞步骤一:修改 application.yml;
在服务提供者的 application.yml 中配置集群名称,如山东-SD:
在这里插入图片描述
☞☞步骤二:查看 Nacos 控制台的变化;
在这里插入图片描述
注意:一级是服务,也就是提供用户功能的服务;二级就是集群,也就是刚才我们设置的 SD 这个集群;三级则是 SD 这个集群下某台部署的 providerservice 服务器,分级模型如下图所示:
在这里插入图片描述

关于 Nacos 的环境隔离其实就是在 Nacos 控制台创建 namespace,用来隔离不同的环境;Nacos 中服务存储和数据存储的最外层都是一个名为 namespace 的东西,主要用来做最外层的隔离!

🚗 🚗 环境隔离 - namespace

☞步骤一:在 Nacos 控制台创建 namespace;
在这里插入图片描述
☞☞步骤二:填写命名空间信息;
在这里插入图片描述
这时候控制台就会出现刚才保存的命名空间的 ID;
在这里插入图片描述
☞☞☞步骤三:修改服务消费者 (consumer-service) 的 application.yml,添加namespace;
在这里插入图片描述
☞☞☞☞步骤四:重启服务消费者 (consumer-service), 刷新控制台, 查看控制台的变化;
在这里插入图片描述
注意:

  • 每个 namespace 都有唯一的 id;
  • 服务设置 namespace 时要写 id (也就是我们复制的那一串数字), 而不是名称 (dev);
  • 不同的 namespace 下的服务都是互不可见的, 这也是隔离起来的作用.

前面我们已经设置好了山东(SD)这个集群,NacosRule 负载均衡策略可以设置优先选择同集群的服务实例,当本地集群找不到服务提供者时,才回去其它集群寻找,并且会报警告;确定好实例后,再采用随机负载均衡挑选出合适的实例。

🚗 🚗 🚗 NacosRule 负载均衡策略

☞步骤一:在服务消费者的 application.yml 中设置集群为 SD;
在这里插入图片描述
☞☞步骤二:在服务消费者的 application.yml 中设置负载均衡的规则为 NacosRule,此规则就是优先寻找同集群的服务;
在这里插入图片描述
在实际的项目部署过程中,可能会因为服务器设备性能的差异,部分实例所在的服务器性能比较好,我们当然希望性能比较好的机器能够承担更多的请求,因此 Nacos 又提供了权重配置来控制访问频率,权重越大的访问频率就会越高。
☞步骤一:在 Nacos 控制台设置配置实例的权重值;
在这里插入图片描述
☞☞步骤二:设置权重为 0.1,这时候关于 8081 这个实例的访问频率就会大大降低; 注意实例的权重值为 0~1 之间,如果设置为 0,则完全不会被访问;权重越高访问的频率就会越高;
在这里插入图片描述
其实关于权重的设置可以解决这样的问题:如果某一个实例所在的机器要进行停机维护,但是为了不让用户访问受限,我们就可以通过设置权重来解决,将权重设置为 0,这时候就不会访问要维护的这个机器,而是去访问权重高的机器,这时候就可以解决了停机维护问题并且不会造成用户的访问损失。

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

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

相关文章

Springboot毕业设计毕设作品,农产品销售系统设计与实现

功能清单 【后台管理功能模块】 系统设置:设置关于我们、联系我们、加入我们、法律声明的信息。 广告管理:设置网站首页轮播图和链接地址。 留言管理:显示用户通过前台留言的列表,支持删除。 会员中心:显示所有注册用户…

Python图像处理【1】图像与视频处理

图像与视频处理0. 前言1. 在 3D 空间中显示 RGB 图像颜色通道1.1 图像表示1.2 在 3D 空间中绘制颜色通道2. 使用 scikit-video 读/写视频文件2.1 scikit-video 库2.2 读/写视频文件2.3 提取视频文件属性2.4 读取并保存视频3. 使用 OpenCV 从相机捕获实时视频4. 实现 Gotham 图像…

[附源码]计算机毕业设计springboot葡萄酒销售管理系统论文

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python jupyter notebook Katex|Latex

目录 1.行内公式编辑 2.矩阵公式编辑 3.添加括号 4.添加图片 1.行内公式编辑 $\alpha\beta \gamma$点击control回车; 运行结果: 2.矩阵公式编辑 \begin{matrix} a & b &c \\ d & e & f \\ j & h & i \end{matrix} 点击…

基于随机森林实现特征选择降维及回归预测(Matlab代码实现)

目录 摘要: 1.随机森林: 2.随机森林的特征选取: 3.基于Matlab自带的随机森林函数进行特征选取具体步骤 (1)加载数据 (2)首先建立随机森林并使用全部特征进行车辆经济性预测 (3&#…

Shell脚本学习指南(五)——变量、判断、重复动作

文章目录前言变量与算术变量赋值与环境参数展开展开运算符位置参数特殊变量算术展开退出状态退出状态值if-else-else-fi语句逻辑的NOT、AND与ORtest命令case语句循环for循环while与until循环break与continueshift与选项处理函数前言 变量对于正规程序而言很重要。处理维护有用…

Android: SimpleAdapter+GridView 简单图片展示

1:原理解析: 一个xml放总布局,一个xml放适配器要加载的模板(我喜欢这样理解); java中写适配事件; 2:目录: 3:主布局:最重要的是要放一个GridView …

[附源码]Python计算机毕业设计Django港口集团仓库管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Google单元测试框架gtest之官方sample笔记3--值参数化测试

1.7 sample7--接口测试 值参数不限定类型,也可以是类的引用,这就可以实现对类接口的测试,一个基类可以有多个继承类,那么可以测试不同的子类功能,但是只需要写一个测试用例,然后使用参数列表实现对每个子类…

m基于可见光通信系统的RFID接口过程以及ALOHA防碰撞算法的matlab仿真

目录 1.算法描述 2.matlab算法仿真效果 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 射频识别技术(Radio Frequency Identification,RFID)是一种非接触式自动识别技术,与传统的识别方式相比,它无需直接接触、无需光学可视、无需人工干预即…

产品经理的七大定律的总结

最近学习了产品经理的七大定律,这些设计准则都基于人类心理学:人们如何感知、学习、推理、记忆,以及把意图转换为行动。 1、菲茨(Paul Fitt)定律 菲茨定律的对于产品设计时的启示: 1)按钮等可…

SpringBoot 3.0 新特性,内置声明式HTTP客户端

http interface 从 Spring 6 和 Spring Boot 3 开始,Spring 框架支持将远程 HTTP 服务代理成带有特定注解的 Java http interface。类似的库,如 OpenFeign 和 Retrofit 仍然可以使用,但 http interface 为 Spring 框架添加内置支持。 什么是…

steam deck科普、上手教程及模拟器配置指南

steam_deck前言 早在2021年得时候,坊间就开始流传steam deck这个东西要问世了。但是中途跳了几次票,直到2022年2月,第一批steam deck才正式面向大众玩家。在熟悉steam deck之前,我们有必要了解如下的知识: Steam 准确来说&…

G1D27-deberta右键创建md文档

回家啦!!!中午的炒饭太好吃了!!吃的好撑!!回家后和mm去了超市,买了冰淇淋、薯片和水果,好开心!!! 下午睡了一会觉,真的好舒…

Spring MVC处理用户请求的完整流程

Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP 技术、Velocity、Tiles、iText 和 POI。 Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP 技术,但教程中使用的视图是 JSP,本节主要介绍…

猿如意 | 带你手把手安装 Visual Studio Code

目录 一、什么是猿如意 二、借助猿如意安装Visual Studio Code 1、安装猿如意 2、安装Visual Studio Code 三、总结 一、什么是猿如意 猿如意是CSDN推出来的一款面向开发者的工具,他能够帮助开发者,找到自己心仪的开发工具提高自己的开发效率。 目标…

华为云两台机器内网互联

文章目录1. 前言2. ping公网ip3. 不同账号需要在同一大区4. 创建虚拟私有云5. 更换服务器所属的VPC网段6. 创建对等连接7. 填写对端项目ID和对端VPC ID8. 配置对等连接9. 添加对等连接路由10. 测试是否联通11. 后记1. 前言 最近在华为云买了两台低配Linux机器,35一…

聚焦出海 长城汽车50多国家和地区经销商集团齐聚泰国车博会

11月30日,长城汽车携新能源豪华阵容登陆第39届泰国国际汽车博览会(简称“泰国车博会”)。以“GWM Light the Future”(长城汽车点亮未来)为参展主题,长城汽车旗下中大型商务豪华SUV坦克500 HEV量产版、欧拉…

[附源码]Python计算机毕业设计SSM留守儿童管理平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

英文Paper写作如何正确掌握质量情况?

在国外留学的学子们要想完成高质量高水平的作业(assignment与Paper),那么首先就要在心里想想这些基本必要的问题,等有了这些问题的轮廓之后,相信留学的朋友都能够写出满意自足的Paper或assignment。 1.Why …