【微服务】Nacos
一、安装
1、官网地址:https://nacos.io/download/nacos-server/
2、启动:找到bin目录下的startup.cmd双击启动,或者打开一个命令窗口输入:
startup.cmd -m standalone
双击启动后如下:可以访问控制台地址

访问后的地址如下:

登录:默认账号和密码都是nacos

二、注册
1、在cloud-demo父工程中添加spring-cloud-alibaba的管理依赖
<!--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>
2、注释掉order-service和user-service中原有的eureka依赖

3、添加nacos的客户端依赖
<!--nacos的客户端依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>



成功负载均衡


三、Nacos服务分级存储模型

1、修改spplication.yml,添加如下内容

修改成HZ后直接可以启动userApplication和userApplication2,此时这两个就在HZ集群

修改成SH,在启动UserApplication3,此时UserApplication3就在SH集群。
2、服务台可以看到集群变化


四、修改集群负载均衡规则NacosRule
orderService同样设置在HZ集群(8081 8082),看调用时是否优先选择本地集群。

但是此发送请求发现默认选择轮询,即8081,8082,8083无论集群内还是集群外,都接收到了请求。如何解决:
1、修改order-service中的application.yml,设置集群为HZ(如上)
2、在order-service中设置负载均衡的IRule为NacosRule,这个规则就会优先寻找与自己相同集群的服务
userservice:ribbon:NFLoadBalancerRuleclassName: com.alibaba.cloud.nacos.ribbon.NacosRule
发送五条请求,发现都在同一集群的8081 8082之下,而8083暂时没有


NacosRule先选择本地集群,在本地集群中随机访问,将8081 8082停止服务,再发送请求:


3、注意将user-service的权重都设置为1
五、根据权重负载均衡
1、Nacos控制台可以设置实例的权重值,首先选中实例后面的编辑按钮


Nacos控制台可以设置实例的权重值,O~1之间同集群内的多个实例,权重越高被访问的频率越高权重设置为0则完全不会被访问
六、环境隔离-namespace
Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

1、创建命名空间


2、修改服务的命名空间
修改order-service的application.yml,添加namespase


此时再从orerservice发送请求,8081 8082 8083均收不到,因为被命名空间隔离了

七、Eureka和Nacos对比

设置临时实例(默认是true),停止orderservice,此时在dev中直接消失
再设置为非临时实例(false),重启orderservice,再次检查状态


此时再主动停止该服务,爆红后但还是存在,不会删除,重启后仍旧存在

1、Nacos与eureka的共同点:
- 都支持服务注册和服务拉取
- 都支持服务提供者心跳方式做健康检测
2、Nacos与Eureka的区别:
- Nacos支持服务端主动检测提供者状态:临时实例采 用心跳模式,非临时实例采用主动检测模式
- 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
- Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
- Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式
相关文章:
【微服务】Nacos
一、安装 1、官网地址:https://nacos.io/download/nacos-server/ 2、启动:找到bin目录下的startup.cmd双击启动,或者打开一个命令窗口输入: startup.cmd -m standalone双击启动后如下:可以访问控制台地址 访问后的…...
5、定义与调用函数
大家好,欢迎来到Python函数入门课程! 在编程中,函数就像一个可以重复使用的代码块,它接受输入(参数),执行特定的任务,并可能返回一个结果。想象一下,函数就像一个厨房里的搅拌机,你放入水果(参数),按下按钮(调用函数),它就会帮你制作出美味的果汁(返回值)。…...
Linux 网络编程之TCP套接字
前言 上一期我们对UDP套接字进行了介绍并实现了简单的UDP网络程序,本期我们来介绍TCP套接字,以及实现简单的TCP网络程序! 🎉目录 前言 1、TCP 套接字API详解 1.1 socket 1.2 bind 1.3 listen 1.4 accept 1.5 connect 2、…...
前海湾地铁的腾通数码大厦背后的临时免费停车点探寻
临时免费停车点:前海湾地铁的腾通数码大厦背后的桂湾大街,目前看不仅整条桂湾大街停了车,而且还有工地餐点。可能是这个区域还是半工地状态,故暂时还不会有罚单的情况出现。 中建三局腾讯数码大厦项目部A栋 广东省深圳市南山…...
OpenCV相机标定与3D重建(7)鱼眼镜头立体校正的函数stereoRectify()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::fisheye::stereoRectify 是 OpenCV 中用于鱼眼镜头立体校正的函数。该函数计算两个相机之间的校正变换,使得从两个相机拍摄的图像…...
前端如何获取unpkg的资源链接
在现代前端开发中,快速获取和使用npm包是一个常见需求。unpkg是一个全球性的CDN服务,它为npm上的每个包提供了快速访问。通过unpkg,你可以轻松地通过URL获取任何npm包的文件。本文将介绍如何获取unpkg的资源链接。 unpkg简介 unpkg是一个快…...
Flink 离线计算
文章目录 一、样例一:读 csv 文件生成 csv 文件二、样例二:读 starrocks 写 starrocks三、样例三:DataSet、Table Sql 处理后写入 StarRocks四、遇到的坑 <dependency><groupId>org.apache.flink</groupId><artifactId&…...
Git | 理解团队合作中Git分支的合并操作
合并操作 团队合作中Git分支的合并操作分支合并过程1.创建feature/A分支的过程2. 创建分支feature/A-COPY3.合并分支查看代码是否改变 团队合作中Git分支的合并操作 需求 假设团队项目中的主分支是main,团队成员A基于主分支main创建了feature/A,而我又在团队成员A创…...
C++多态的实现原理
【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 1、类的继承 子类对象在创建时会首先调用父类的构造函数 父类构造函数执行结束后,执行子类的构造函数 当父类的构造函数有参数时,需要在子类的初始化列表中显式调用 Child(int i) : …...
[极客大挑战 2019]PHP--详细解析
信息搜集 想查看页面源代码,但是右键没有这个选项。 我们可以ctrlu或者在url前面加view-source:查看: 没什么有用信息。根据页面的hint,我们考虑扫一下目录看看能不能扫出一些文件. 扫到了备份文件www.zip,解压一下查看网站源代码…...
map用于leetcode
//第一种map方法 function groupAnagrams(strs) {let map new Map()for (let str of strs) {let key str ? : str.split().sort().join()if (!map.has(key)) {map.set(key, [])}map.get(key).push(str)} //此时map为Map(3) {aet > [ eat, tea, ate ],ant > [ tan,…...
CommonJS 和 ES Modules 的 区别
CommonJS 和 ES Modules 的 区别 1. CommonJS 和 ES Modules 区别?1.1 语法差异CommonJS:ES Modules: 1.2. 加载机制CommonJS:ES Modules: 1.3. 运行时行为CommonJS:ES Modules: 1.4. 兼容性和使用场景Com…...
科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次
今年12月03日是第33个国际残疾人日。在当下科技发展日新月异的时代,如何让残障人士共享科技红利、平等地参与社会生活,成为当前社会关注的热点。 中国有超过8500万残障人士,其中超过2400万为肢残人群,视力障碍残疾人数超过1700万…...
Flink四大基石之Time (时间语义) 的使用详解
目录 一、引言 二、Time 的分类及 EventTime 的重要性 Time 分类详述 EventTime 重要性凸显 三、Watermark 机制详解 核心原理 Watermark能解决什么问题,如何解决的? Watermark图解原理 举例 总结 多并行度的水印触发 Watermark代码演示 需求 代码演示ÿ…...
Spring WebFlux与Spring MVC
Spring WebFlux 是对 Spring Boot 项目中传统 Spring MVC 部分的一种替代选择,主要是为了解决现代 Web 应用在高并发和低延迟场景下的性能瓶颈。 1.WebFlux 是对 Spring MVC 的替代 架构替代: Spring MVC 使用的是基于 Servlet 规范的阻塞式模型…...
【深度学习基础】一篇入门模型评估指标(分类篇)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀深度学习_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. 模…...
D80【 python 接口自动化学习】- python基础之HTTP
day80 requests请求加入headers 学习日期:20241126 学习目标:http定义及实战 -- requests请求加入headers 学习笔记: requests请求加入headers import requestsurlhttps://movie.douban.com/j/search_subjects params{"type":…...
⽂件操作详解
⽬录 一 文件操作的引入 1 为什么使⽤⽂件? 2 什么是⽂件? 3 文件分类(1 从⽂件功能的⻆度来分类:程序⽂件/数据⽂件 2根据数据的组织形式:为⽂本⽂件/⼆进制⽂件) 二 ⽂件的打开和关闭 1 …...
双高(高比例新能源发电和高比例电力电子设备)系统宽频振荡研究现状
1 为什么会形成双高电力系统 (1)新能源发电比例增加 双碳计划,新能源革命,可再生能源逐步代替传统化石能源,未来新能源发电将成为最终能源需求的主要来源。 (2)电力电子设备数量增加 为了实…...
TorchMoji使用教程/环境配置(2024)
TorchMoji使用教程/环境配置(2024) TorchMoji简介 这是一个基于pytorch库,用于将文本分类成不同的多种emoji表情的库,适用于文本的情感分析 配置流程 从Anaconda官网根据提示安装conda git拉取TorchMoji git clone https://gi…...
Ubuntu16.04高效桌面管理全攻略:多工作区、分屏与终端Terminator进阶技巧
1. Ubuntu16.04多工作区高效管理 刚接触Ubuntu时,最让我惊喜的功能就是多工作区。这个功能相当于给你的电脑桌面"扩容",把不同任务分散到不同虚拟桌面,再也不用在一堆窗口里来回切换了。在Ubuntu16.04上设置多工作区特别简单&#…...
别再死记公式了!用Multisim仿真带你玩转反相/同相比例运算电路
用Multisim仿真解锁比例运算电路的实战奥秘 在电子工程的学习中,运算放大器电路一直是让初学者又爱又恨的内容。传统的学习方法往往从公式推导开始,要求学生死记硬背各种电路配置下的增益公式。但今天,我们要打破这种枯燥的学习方式——通过…...
从无人机到平衡车:MPU6050姿态融合(互补滤波)的实战调参指南与避坑心得
从无人机到平衡车:MPU6050姿态融合实战调参与避坑指南 姿态解算在无人机飞控、平衡车和机器人系统中扮演着核心角色。MPU6050作为一款集成了三轴陀螺仪和三轴加速度计的惯性测量单元(IMU),其数据融合质量直接决定了系统稳定性。许多开发者虽然理解了互补…...
BUUCTF实战:从内存镜像到加密容器——[VN2020]内存取证全流程解析
1. 初识内存取证:从CTF赛题到实战思维 第一次接触内存取证是在去年的BUUCTF比赛中,当时看到那道[V&N2020]公开赛题目完全摸不着头脑。现在回想起来,内存取证就像是在案发现场收集指纹——只不过我们面对的是计算机运行时留下的"数字…...
告别ifconfig:用ubus命令玩转OpenWrt网络接口(netifd实战指南)
告别ifconfig:用ubus命令玩转OpenWrt网络接口(netifd实战指南) 在OpenWrt的世界里,网络接口管理一直是个既基础又关键的课题。传统Linux用户习惯使用ifconfig或ip命令来配置网络,但在OpenWrt环境下,这些工具…...
ABAP选择屏幕进阶:基于用户交互的动态字段控制
1. 动态选择屏幕的核心价值 在ABAP开发中,选择屏幕(Selection Screen)是与用户交互的重要界面。传统的静态选择屏幕往往无法满足复杂业务场景的需求,比如当用户选择不同查询维度时,需要展示完全不同的筛选条件。这时候…...
5分钟掌握Typora插件:从文件管理小白到高效写作达人的3步法
5分钟掌握Typora插件:从文件管理小白到高效写作达人的3步法 【免费下载链接】typora_plugin Typora plugin. Feature enhancement tool | Typora 插件,功能增强工具 项目地址: https://gitcode.com/gh_mirrors/ty/typora_plugin 你是否曾在Typora…...
SteamCleaner终极指南:3步轻松释放100GB游戏磁盘空间
SteamCleaner终极指南:3步轻松释放100GB游戏磁盘空间 【免费下载链接】SteamCleaner :us: A PC utility for restoring disk space from various game clients like Origin, Steam, Uplay, Battle.net, GoG and Nexon :us: 项目地址: https://gitcode.com/gh_mirr…...
League Akari终极指南:英雄联盟玩家的智能游戏助手完整教程
League Akari终极指南:英雄联盟玩家的智能游戏助手完整教程 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟的繁琐操…...
GitHub 开源育儿知识库:技术型父母如何用 Awesome List 构建科学育儿体系
1. 项目概述:一个为新手父母量身定制的技能宝库当一个小生命降临,新手父母们常常会陷入一种既幸福又焦虑的复杂情绪中。幸福自不必说,那份焦虑则大多源于“未知”——面对一个不会说话、只会用哭声表达一切的小家伙,如何判断他是饿…...
