微服务框架【笔记-Nacos注册中心】

news2024/10/7 20:28:14

接上篇,继续学习微服务框架中的Nacos注册中心。

Nacos注册中心

一、认识和安装Nacos

1.认识Nacos

Nacos 是阿里巴巴的产品,现在是 SpringCloud 中的一个组件。相比 Eureka 功能更加丰富。

2.安装Nacos

下面给大家展示windows安装Nacos步骤:

  1. 下载安装包

Nacos下载地址

  1. 解压
    在这里插入图片描述

  2. 端口配置
    Nacos默认是 8848端口,如果你的8848端口已被占用,可以在conf配置文件夹中找到
    在这里插入图片描述
    进行配置端口,在这里插入图片描述
    我这里就不牵扯修改端口了。

  3. 启动
    加入bin目录结构下:
    进入cmd,执行命令 startup.cmd -m standalone单机启动。
    在这里插入图片描述

  4. 访问
    按照启动之后控制台输出的地址进行访问
    在这里插入图片描述
    登录默认账号和密码都是 nacos
    在这里插入图片描述

二、Nacos快速入门

1. 服务注册到Nacos

  1. 把 cloud-demo父工程中添加spring-cloud-alibbaba的管理依赖
			<!--nacos的管理依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
  1. 注释掉order-service和user-service中原有的 euerka 依赖
  2. 添加nacos的客户端依赖:
<!--nacos客户端依赖包-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>

启动两个服务,在nacos查看服务注册情况
在这里插入图片描述
在这里插入图片描述

三、Nacos服务分级存储模型

在这里插入图片描述

  • 为了提升整个系统的容灾性,Nacos 引入了地域 (Zone) 的概念,如上图中的北京、上海和杭州。把同一个服务的多个实例部署到不同地域的机房中 (鸡蛋分开不同的篮子放) ;又把在同一个地域的机房的多个服务实例称为集群 (Cluster) 。比如,杭州机房的 2 个用户服务 user-service 称为杭州 user-service 集群。
  • 因此,在 Nacos 的服务分级模型中,
  • 第一级是微服务 (如订单服务) ;
  • 第二级是集群 (如北京订单服务集群、上海订单服务集群等) ;
  • 第三集是实例 (如杭州服务集群的 8081 端口实例、8082 端口实例等) 。

微服务之间的远程调用要优先调用同一个地域的集群中的实例,因为访问同一个集群中的服务距离较短、速度比较快、延迟比较低 (例如北京集群的订单服务调用北京集群的用户服务) 。而跨地域集群地域距离远、速度慢、延迟高 (例如北京集群的订单服务调用上海集群的用户服务) 。

那为什么 Nacos 还要增加一层【集群】的概念呢?

首先就是为了避免跨地域集群的远程调用发生,让微服务之间的远程调用尽可能地发生在同一个地域集群中,保证访问的高速低延迟。其次就是为了当同地域的集群服务不可用时,可以跨地域集群访问,保证服务的高可用,提升系统的容灾能力。
在这里插入图片描述

1. 服务集群属性

  1. 修改 application.yml ,添加如下内容:
cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: XA #集群名称 这里指西安
cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: SH #集群名称 这里指上海
  1. 在Nacos控制台可以看到集群变化
    在这里插入图片描述
    下来我们进行测试对 orderservice 也进行集群配置,配置到 西安,看orderservice 会不会优先访问 西安的 userservice 。答案是不会,因为此时我们没有配置负载均衡机制,默认的负载均衡机制是轮询的,所以两个userservice都会接收到请求。

2. 根据集群负载均衡

  1. 修改order-service的application.yml ,设置集群为HZ:

  2. 在order-service中设置负载均衡的Rule为 NacosRule,这个规则会优先寻找与子集同集群的服务:

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡策略

  1. 将user-service的权重都设置为1

【注意】此时把西安集群的 2 个用户微服务实例 8081 和 8082 停掉,那么订单微服务就不得不跨地域集群去访问上海集群的用户服务实例 8083 了。

3.根据权重负载均衡

针对公司服务器性能水平参差不齐的情况,我们希望性能强的服务器承担更多的微服务远程调用,而性能稍弱的微服务承担较少的访问,从而最大限度地发挥服务器的最佳性能和利用率。但目前 NacosRule 的策略是集群优先,然后随机,这无法满足上述需求。

因此,Nacos 提供了权重 (值域 0~1) 配置来控制访问频率,权重越大的服务器则访问频率越高。当权重调为 0 时就不会被访问,可以做无感知的停机升级和灰度测试。

进入 Nacos 控制台主页,进入用户服务 userservice 【详情】,默认权重都为 1 。现在假设 8081 是性能强的服务器,8082 是性能弱的服务器,因此把 8081 的权重设置得大一些,而 8082 的权重设置得小一些。

在这里插入图片描述

点击右侧的【编辑】,把 8082 的权重设为 0.1 。

在这里插入图片描述

这样,8081 被访问到的概率就应该是 8082 的 10 倍。

在这里插入图片描述

我们 测试一下。结果是试了 20 几次,只有 1 次访问到 8082 ,其余都访问到 8081 了。说明权重生效。

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

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

相关文章

网络互联技术与实践教程(汪双硕、姚羽)——第四章 路由技术

第四章 路由技术 4.1 路由原理 路由是指通过相互连接的网络将数据从源地点转发到目标地点的过程。在路由过程中&#xff0c;数据通常会经过一个或多个中间节点&#xff0c;路由发生在网络层。路由包含两个主要的动作&#xff1a;确定最佳路径和通过网络传输信息&#xff0c;后…

刷题笔记【6】| 快速刷完67道剑指offer(Java版)

本文已收录于专栏&#x1f33b;《刷题笔记》文章目录前言&#x1f3a8; 1、包含min函数的栈题目描述思路&#xff08;双栈法&#xff09;&#x1f3a8; 2、栈的压入弹出序列题目描述思路&#xff08;辅助栈&#xff09;&#x1f3a8; 3、从上往下打印二叉树题目描述思路&#x…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见&#xff1a;数据库原理与应用 考研复习 概述 SQL发展 注&#xff1a;关键词是哪些功能&#xff0c;尤其第一个create alter drop是定义功能 1.SQL功能强大&#xff0c;实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

【Java版oj】day26跳台阶扩展问题、快到碗里来

目录 一、跳台阶扩展问题 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 二、快到碗里来 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 一、跳台…

tomcat配置虚拟路径映射磁盘文件列表图片回显和放大功能实现springboot项目的文件虚拟路径映射

tomcat映射磁盘图片1.以E盘为例&#xff0c;在E盘创建目录testReceive2.配置tomcat虚拟路径映射e盘本地文件3.代码层面创建上传文件&#xff08;此处为图片&#xff09;工具类3.1&#xff08;校验图片格式、获取当前主机ip、上传图片至本机目的地&#xff0c;获取上传图片地址&…

javaWeb(HTTP、Tomcat、Servlet)

目录 HTTP Web 服务器 - Tomcat 简介 基本使用&#xff1a;下载、安装、卸载、启动、关闭、配置、部署项目 IDEA中创建 Maven Web项目​编辑 IDEA中使用 Tomcat Servlet 快速入门 Servlet 执行流程 Servlet 生命周期 Servlet 体系结构 Servlet urlPattern配置 XM…

【从零开始学Skynet】实战篇《球球大作战》(五):gateway代码设计(中)

1、编码和解码 我们来实现两个辅助方法str_unpack和str_pack&#xff0c;用于消息的解码和编码。 &#xff08;1&#xff09;str_unpack代码 local str_unpack function(msgstr)local msg {}while true dolocal arg, rest string.match( msgstr, "(.-),(.*)")if…

【web自动化测试】

文章目录web自动化测试第一章 web自动化入门1.什么是自动化&#xff1f;1.1 优点2.什么是自动化测试&#xff1f;2.1 自动化测试能解决什么问题&#xff1f;2.2 自动化相关知识2.2.1优点2.2.2 误区2.3 自动化测试分类3.什么是Web自动化测试&#xff1f;3.1 什么Web项目适合做自…

Flutter 了解 Element

一 Element 概念 这个玩意的概念。到底是什么 &#xff1f; 官方解释是在树中特定位置的实例。 二 继承关系 element 有 ComponentElement 和 RenderObjectElement 之分 1 ComponentElement class StatelessElement extends ComponentElement class StatefulElement extend…

计及调度经济性的光热电站储热容量配置方法

目录 1 主要内容 目标函数 光热电站能量传递过程 2 部分程序 3 程序结果 4 程序链接 1 主要内容 该程序复现《计及调度经济性的光热电站储热容量配置方法》模型&#xff0c;综合考虑火电机组发电成本、光热发电并网消纳的环境效益和运行维护成本、系统旋转备用成本等调度…

rk3568点亮LCD(RGB)

rk3568 Android11/12 调试 RGB 屏 RGB一般是指RGB色彩模型(RGB color model)&#xff0c;是工业界的一种颜色标准。RGB接口占用的资源较多&#xff0c;所以这个接口的LCD刷新率非常快&#xff0c;软件控制也比较简单。缺点是控制需要增加电路&#xff0c;软件初始化需要增加程…

【BOM浏览器对象模型】

BOM浏览器对象模型1 本节目标2 BOM概述3 window对象的常见事件3.1 窗口加载事件3.2 调整窗口大小事件4 定时器4.1 两种定时器4.2 setTimeout()定时器4.3 停止setTimeout()定时器4.4 setInterval()定时器4.5 停止setInterval()定时器4.6 this指向问题5 JS执行队列5.1 JS是单线程…

BUUCTF-.htaccess-sql.fuzz-D盾

第七周第一次 目录 WEB [MRCTF2020]你传你&#x1f40e;呢 ​编辑 [极客大挑战 2019]HardSQL Crypto 萌萌哒的八戒 传统知识古典密码 Misc 假如给我三天光明 后门查杀 WEB [MRCTF2020]你传你&#x1f40e;呢 文件上传 我们进行尝试 设置一个 1.jpg的一句话木马 G…

RabbitMQ之高级特性

文章目录一、消息确认机制&#x1f389;1.1 消息发送确认(生产者)&#x1f539;confirm 确认模式&#x1f539;return 回退模式&#x1f6a9;1.2 消息接收确认(消费者)&#x1f538;none 自动确认&#x1f538;auto 异常确认&#x1f538;manual 手动确认二、消费端限流 (prefe…

创略科技联合创始人兼总裁杨辰韵:AIGC、隐私计算赋能数字营销的本质是“以客户为中心”丨数据猿专访...

‍数据智能产业创新服务媒体——聚焦数智 改变商业MarTech概念现身已超十年&#xff0c;伴随着企业数字化转型的大背景&#xff0c;中国MarTech市场也迎来了高速发展。据《2022年中国MarTech市场洞察报告》数据显示&#xff0c;2017-2021年&#xff0c;中国 MarTech产业规模从…

H264码流中 SPS PPS SEI 详解

1 客户端抓包 在做客户端视频解码时&#xff0c;一般都会使用Wireshark抓包工具对接收的H264码流进行分析&#xff0c;如下所示&#xff1a; 在这里我们可以看到对解码视频起关键作用的SPS和PPS。 2、双击SPS内容如下&#xff1a; 那么从上面的sps中我们知道图像的宽&#x…

【从零开始学Skynet】实战篇《球球大作战》(二):结构设计

万丈高楼平地起&#xff0c;既然这是个“大项目”&#xff0c;就要有大项目的样子&#xff0c;就要有所规划&#xff0c;下面先把项目的目录结构搭起来。 1、目录结构 建议把Skynet框架放到一个文件夹里&#xff0c;把所有自己编写的内容都放到外层的文件夹里。建立如下表所示的…

MySQL运维10-MySQL数据的导入导出

文章目录0、概述1、mysqldump导出数据mysql导入数据1.1、使用mysqldump导出数据1.1.1、使用--tables导出指定表1.1.2、使用--tab选项将表定义文件和数据文件分开导出1.1.3、使用--fields-terminated-by选项定义数据分隔符1.1.4、使用--databases选项导出整个库或多个库1.1.5、使…

Python算法设计 - 蒙特卡洛法

版权声明&#xff1a;原创不易&#xff0c;本文禁止抄袭、转载&#xff0c;侵权必究&#xff01; 目录一、蒙特卡洛法二、求圆周率π三、Python算法实现四、作者Info一、蒙特卡洛法 蒙特卡洛方法又称统计模拟法&#xff0c;随机抽样技术&#xff0c;是一种随机模拟方法&#x…

pytorch进阶学习(五):神经网络迁移学习应用的保姆级详细介绍,如何将训练好的模型替换成自己所需模型

代码资源和数据集资源使用进阶学习&#xff08;四&#xff09;中的代码&#xff0c;大家可以配合食用哟~ pytorch进阶学习&#xff08;四&#xff09;&#xff1a;使用不同分类模型进行数据训练&#xff08;alexnet、resnet、vgg等&#xff09;_好喜欢吃红柚子的博客-CSDN博客…