SpringCloud - Nacos注册发现

news2025/7/20 18:44:24

目录

服务注册到Nacos

服务分级存储模型

NacosRule负载均衡

服务实例的权重设置

环境隔离

Nacos与Eureka的对比

添加Nacos配置

微服务配置拉取

配置热更新

多环境配置共享


  • 服务注册到Nacos

  • 1.在父工程引入SpringCloudAlibaba的依赖

  • 2.注释掉order-service和user-service中原有的eureka依赖

  • 3.添加nacos的客户端依赖

  • 4.修改user-service&order-service中的application.yml文件,注释eureka地址,添加nacos地址

  • 5.启动并测试

  • Nacos客户端引入的时候,会关联引入Ribbon的依赖包,负载均衡同前文
  • 服务分级存储模型

  • 一个服务可以有多个实例
  • 为了方便管理,需将实例划分为多个集群,即一个服务可以包含多个集群,每个集群下可以有多个实例
  • 微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快
  • 当本集群内不可用时,才访问其它集群
  • 修改application.yml,配置集群
  • NacosRule负载均衡

  • 添加集群之后,仍旧是轮询调用
  • 默认的ZoneAvoidanceRule并不能实现根据同集群优先来实现负载均衡
  • 需要修改order-service的application.yml文件,修改负载均衡规则,优先从同集群中挑选实例

  • 服务实例的权重设置

  • 优先从同集群中挑选实例的默认情况下是从同集群内随机挑选,现实可能会存在服务器设备性能有差异
  • 部分实例所在机器性能较好,另一些较差,希望性能好的机器承担更多的用户请求
  • 通过权重配置来控制访问频率,权重越大则访问频率越高
  • 在nacos控制台,找到user-service的实例列表,点击编辑,即可修改权重

  • 环境隔离

  • Nacos提供了namespace来实现环境隔离功能,不同namespace之间相互隔离,例如不同namespace的服务互相不可见
  • Namespace:命名空间,对不同的环境进行隔离,比如隔离开发环境、测试环境和生产环境
  • Group:分组,将若干个服务或者若干个配置集归为一组,通常习惯一个系统归为一个组
  • Service:某一个服务,比如商品微服务
  • DataId:配置集或者可以认为是一个配置文件
  • 默认情况下,所有service、data、group都在同一个namespace,名为public
  • 1.在Nacos控制台可以创建namespace,用来隔离不同环境

  • 2.保存后会在控制台看到这个命名空间的id

  • 3.修改order-service的application.yml,添加namespace:

  • Nacos与Eureka的对比

  • Nacos与Eureka的共同点
    • 都支持服务注册和服务拉取
    • 都支持服务提供者心跳方式做健康检测
  • Nacos与Eureka的区别
    • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
    • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
    • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
    • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式
  • Nacos的服务实例分为两种类型:
    • 临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型
    • 非临时实例:如果实例宕机,不会从服务列表剔除,除非在控制台手动删除,也可以叫永久实例
  • 添加Nacos配置

  • 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错
  • 需要统一配置管理方案,可以集中管理所有实例的配置
  • Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新
  • 在nacos中添加配置文件:

  • 注意:
    • 项目的核心配置,需要热更新的配置才有放到nacos管理的必要
    • 基本不会变更的一些配置还是保存在微服务本地比较好
  • 微服务配置拉取

  • 微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动
  • spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,提前得到nacos地址,流程如下:

  • 1.在user-service服务中,引入Nacos的配置管理客户端依赖:

  • 2.在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml

  • 会根据spring.cloud.nacos.server-addr获取nacos地址,再根据spring.application.name-{spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id
  • 即userservice-dev.yaml来读取配置

  • 3.在user-service中的UserController中添加业务逻辑,读取到配置信息

  • 配置热更新

  • Nacos中的配置文件变更后,微服务无需重启就可以感知
  • 不过需要通过下面两种配置实现:
  • 方式一:在@Value注入的变量所在类上添加注解@RefreshScope

  • 方式二:添加一个类,读取配置文件,使用@ConfigurationProperties注解

  • 多环境配置共享

  • 实例解说:
  • userservice-dev文件配置详情

  • userservice文件配置详情

  • 修改对应信息

  • 访问代码

  • 运行两个UserApplication,使用不同的profile

  • UserApplication(8081)使用的profile是dev
  • UserApplication2(8082)使用的profile是test
  • 启动UserApplication和UserApplication2
  • 访问http://localhost:8081/user/prop

  • 访问http://localhost:8082/user/prop

  • 配置共享的优先级
  • nacos中的当前环境配置>nacos中的共享配置>本地配置

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

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

相关文章

Web前端学习:一

编辑器的基础使用 编辑器推荐使用: HBuilderx(免费中文)(建议使用) Sublime(免费英文) Sublime中文设置方法,下载语言插件: 1、进入Sublime后,ShiftCtrlP…

流程图培训

工具 wps 目前咱们在新建里面,可以新建流程图 构成流程图的图形符号及其作用 常用的流程图介绍 flowchart 和 BPMN 两种 flowchart: 最开始的全名是”Process Flow Charts”,即处理流程图表。 BPMN: 定义了业务流程图,其基…

最新版本vue3+vite重构尚品汇(解决接口问题)第1-20集

本来想弄微信小程序的,但是注册小程序要花300块钱,我自学编程这么久,还没赚到1分钱呢。所以还是白嫖起手,从尚品汇弄起,弄完自己做一个实际的电商平台项目,把所有流程走一遍,到时候拿着自己的项…

JavaEE简单实例——MyBatis的一对一映射的嵌套查询的简单介绍和基础配置

简单介绍: 在前一章我们介绍了关于MyBatis的多表查询的时候的对应关系,其中有三种对应关系,分别是一对一,一对多,多对多的关系。如果忘记了这三种方式的对应形式可以去前面看看,一定要记住这三种映射关系的…

微服务架构下路由、多活、灰度、限流的探索与挑战

导语 2022腾讯全球数字生态大会已圆满落幕,大会以“数实创新、产业共进”为主题,聚焦数实融合,探索以全真互联的数字技术助力实体经济高质量发展。大会设有29个产品技术主题专场、18个行业主题专场和6个生态主题专场,各业务负责人…

Linux基础命令-locate快速查找文件

文章​​​​​​​目录 locate 命令介绍 语法格式 基本参数 参考实例 1)查找1.txt相关的文件 2)查找包含pass和txt都有的文件 3)只匹配文件名,有路径的情况下不进行匹配 4)匹配不区分大小写的文件 5&#…

Java多线程(四)---并发编程容器

1.经常使用什么并发容器,为什么?答:Vector、ConcurrentHashMap、HasTable一般软件开发中容器用的最多的就是HashMap、ArrayList,LinkedList ,等等但是在多线程开发中就不能乱用容器,如果使用了未加锁&#…

Java EE|TCP/IP协议栈之TCP协议工作机制上

文章目录前言一、确认应答二、超时重传三、连接管理三次握手四次挥手前言 前边,我们已经大概交代了TCP的报文结构。但是仍有一些字段我们不确定到底怎么理解,这里就分析TCP的内部工作机制了。 TCP的内部很复杂,有很多机制,这里我们…

Super intelligent port AI smart port termial, CIMCAI top port AI

中国上海人工智能企业CIMCAI,全球港航人工智能领军者企业,顶尖AI科技及工业级成熟人工智能产品,打造高效能智能化港口数字化航运码头数字化。Ceaspectus™领跑全球港口人工智能,建设新一代高效能先进港口码头。Ceaspectus™先进方…

通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作

1.通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led…

苹果电容笔和普通电容笔区别是什么?开学好用电容笔推荐

苹果的电容笔与一般的电容笔有何不同呢?两者的差距并不是很大。不过这款原装的苹果电容笔,重量要普通的电容笔重得多,而且笔尖还有一个特殊的重力感应装置,在其他方面两者并没有太大的差异。但是,由于苹果电容笔的售价…

QT自绘标题和边框

在QT中如果想要自绘标题和边框,一般步骤是: 1) 在创建窗口前设置Qt::FramelessWindowHint标志,设置该标志后会创建一个无标题、无边框的窗口。 2)在客户区域的顶部创建一个自绘标题栏。 3)给窗口绘制一个背…

Hadoop的生成经验调优和基准测试

文章目录(1)项目经验之HDFS存储多目录(2)项目经验之集群数据均衡(3)项目经验之Hadoop参数调优(4)项目经验之支持LZO压缩配置(5)项目经验之LZO创建索引&#x…

软考中级--嵌入式系统设计师考试培训教程开始了

1.考试时间: 1.1 上半年5月下旬考试 1.2 下半年11月上旬考试 2.考试内容 2.1 系统基础 满分75分 时间150分钟 2.2 系统设计 满分75分 时间150分钟 3.计划安排 3.1 熟悉考试大纲 3.2 按考纲学习相关内容 整理设计知识 快速学习形成知识印象 3.3 复习整理的知识 …

Hadoop3.3.1完全分布式部署

Hadoop目录Hadoop3.3.1完全分布式部署(一)1、HDFS一、安装1、基础安装1.1、配置JDK-181.2、下载并解压hadoop安装包本地运行模式测试 eg:2、完全分布式运行模式1、概要:2、编写集群分发脚本,把1~4步安装的同步到其他服务器:2.1、创建脚本vim …

Tailwind CSS 在Vue中的使用

什么是Tailwind CSS? Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的的类,支持 hover 和 focus 样式,它们能直接在脚本标记语言中组合起来,构建出任何设计。 …

【算法基础】 Trie树

一、Trie树Trie树用于高效存储和查找字符串集合的数据结构。二、Trie字符串统计维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N�个操作,所有输入的字…

c#前端实现对pcl点云颜色根据强度特征动态变化突出指定对象

前言 本文主要介绍如何使用c# winform对点云颜色根据点云强度信息对显示的点云颜色进行动态调整。 目的是根据强度信息采用不同的颜色特征突出不同的物体。 一、点云强度是什么? 点云强度又可以叫做反射率, 通常常见的点云格式包括:以pcl为…

SpringBoot可以同时处理多少请求?

本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star ⭐⭐⭐⭐⭐转载请注明出处:https://blog.csdn.net/weixin_43461520/article/details/129207427 前言 前两天面试的时候,面试官问我:一个i…

【拿好了!Linux 运维必备的 13 款实用工具!】

​本文介绍几款 Linux 运维比较实用的工具,希望对 Linux 运维人员有所帮助。 查看进程占用带宽情况 – Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽。 下载: http://sourceforge.net/projects/nethogs/files/ne…