SpringCloud - Nacos注册发现
目录
服务注册到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中的共享配置>本地配置 

 
相关文章:
SpringCloud - Nacos注册发现
目录 服务注册到Nacos 服务分级存储模型 NacosRule负载均衡 服务实例的权重设置 环境隔离 Nacos与Eureka的对比 添加Nacos配置 微服务配置拉取 配置热更新 多环境配置共享 服务注册到Nacos 1.在父工程引入SpringCloudAlibaba的依赖 2.注释掉order-service和user-ser…...
Socket编程、协议理解
Socket编程、协议理解简单说明Socket编程Socket 常用接口Socket服务端业务编码代码说明文件服务(fileServe)消息服务(msgServe)消息写会(writeResponse)注意事项Socket客户端业务编码代码说明总结RYP协议:基于TCP/IP协议之上的自定义协议Rocky Protocol。 协议用途&…...
Idea集成码云
1:Idea集成码云1.1:IDEA安装码云插件【第一步】Idea 默认不带码云插件, 我们第一步要安装 Gitee 插件。如图所示, 在 Idea 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。安装成功后,重启 Idea。Idea 重…...
并发编程学习篇ReentrantLock设计思想剖析
一、AQS原理剖析 什么是AQS java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如 等待队列、条件队列、独占获取、共享获取等而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一…...
区分效度全流程分析
基本说明 区分效度(又称判别效度、区别效度),其实质也是一种结构效度。区分效度强调本不应该在同一因子的测量项,确实不在同一因子下面。比如说,测量项A和 B分别测量两个属性,应该分属于因子A和因子B中&…...
【华为OD机试模拟题】用 C++ 实现 - 找数字(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
从0开始写Vue项目-Vue实现用户数据批量上传和数据导出
从0开始写Vue项目-环境和项目搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue2集成Element-ui和后台主体框架搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue页面主体布局和登录、注册页面_慕言要努力的博客-CSDN博客从0开始写Vue项目-SpringBoot整合Mybatis-plus实现…...
企业容器云管理平台选型指南
作者简介 涂家英,SUSE 资深架构师,专注 Cloud-Native 相关产品和解决方案设计,在企业级云原生平台建设领域拥有丰富的经验。 数字时代下的容器云管理平台 数字时代,市场竞争加剧,业务需求日新月异,敏态 IT…...
OpenGL超级宝典学习笔记:着色器存储区块、原子内存操作、内存屏障
前言 本篇在讲什么 本篇为蓝宝书学习笔记 着色器存储区块 原子内存操作 内存屏障 本篇适合什么 适合初学Open的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重…...
SpringMVC框架知识详解(入门版)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
25-动画和过渡
动画和过渡 一、动画 使用css动画样式,配合vue实现动画效果。 编写模板 <template><div><button click"isShow !isShow">显示/隐藏</button><h1 v-show"isShow">你好啊</h1></div> </templa…...
Linux 操作系统原理 — 虚拟内存管理
目录 文章目录 目录虚拟内存技术页式内存管理技术x86_32 CPU 虚拟内存虚拟地址格式与内核页表虚拟内存空间Kernel SpaceUser Spacex86_64 CPU 虚拟内存虚拟地址格式与内核页表(四级页表)虚拟内存空间TLB 缓冲(快表)进程页表虚拟内存技术 虚拟内存技术是操作系统实现的一种…...
保持超低温环境新方法:功耗降至十分之一!
(图片来源:网络)量子比特是量子计算机的主要构建部分,然而热量会导致量子比特容易出错,因此量子系统通常保存在超低温稀释制冷机内,可以将温度保持在绝对零度(−273.15℃)以上。但是…...
论文投稿指南——中文核心期刊推荐(音乐)
【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…...
es-10搜索推荐suggest
搜索推荐:Suggest 概述 搜索一般都会要求具有“搜索推荐”或者叫“搜索补全”的功能,即在用户输入搜索的过程中,进行自动补全或者纠错。以此来提高搜索文档的匹配精准度,进而提升用户的搜索体验,这就是Suggest。 四…...
VMware ESXi 7.0 Update 3k - 领先的裸机 Hypervisor (sysin Custom Image)
VMware ESXi 7.0 Update 3k - 领先的裸机 Hypervisor (sysin Custom Image) VMware ESXi 7.0 Update 3k Standard & All Custom Image for ESXi 7.0 U3k Install CD 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3/,查看最新版。原创作品…...
JVM整体分析篇
这里写目录标题JVM的组成部分1.类装载子系统1.1一个类加载到JVM的过程1.2类加载机制1.3为什么设计双亲委派机制1.4怎么打破双亲委派机制2.运行时数据区2.1线程私有及共享2.2JVM内存区结构2.3JVM参数设置经验3.Java对象的生命周期3.1.对象的创建3.2.对象大小的计算(6…...
【Python入门第十七天】Python While 循环
Python 循环 Python 有两个原始的循环命令: while 循环for 循环 while 循环 如果使用 while 循环,只要条件为真,我们就可以执行一组语句。 实例 只要 i 小于 7,打印 i: i 1 while i < 7:print(i)i 1运行实…...
怎样激发读者好奇心?短视频营销之场景化
目录 激发读者好奇心?四个小技巧帮你搞定 1.省略法 2.欲言又止法: 3.问句法:就是用疑问的形式引起别人的好奇。 4.反差法 选择合适的主题。 利用场景化效果 使用滤镜。 如何提高用户的留存率。 1、设置一个有趣的话题。 2、用好道具。 3、多用竖屏。 什…...
【LeetCode】剑指 Offer 14- II. 剪绳子 II p96 -- Java Version
题目链接:https://leetcode.cn/problems/jian-sheng-zi-ii-lcof/ 1. 题目介绍(14- II. 剪绳子 II) 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1)&…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
