当前位置: 首页 > ops >正文

简单了解下Nacos

1.nacos的基本概念

nacos是一个阿里巴巴提供的一个易于使用的动态服务发现、配置管理和服务管理平台。常见于微服务架构中使用。下面简单介绍nacos的几个核心功能。

2.准备工作

下载nacos:https://github.com/alibaba/nacos/releases/tag/2.2.3
在微服务项目中引入依赖:

<properties><spring-cloud-alibaba.version>2022.0.0.0-RC2</spring-cloud-alibaba.version>
</properties><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope>
</dependency>

3.写配置文件将该项目注册到nacos:

spring: cloud: nacos: discovery: server-addr: //此处写nacos的IP和端口号

经过这三步,当启动项目和nacos服务器就能在服务列表找到该服务了。

3.服务注册与发现

可以将微服务示例注册到nacos服务器上,便于各个微服务之间通信时获取目标服务ip地址和端口号,避免硬编码。并且当目标服务ip端口号发生变化后nacos也会及时更新,注册后我们只需将远程调用目标服务的Ip和端口号替代为目标服务的spring-application-name即可。无需我们手动关停服务,修改调用目标服务的代码,再重新启动服务。
服务注册:就是我们的2.3,可以理解为将该服务到nacos登记一下个人信息。
服务发现:就是去nacos拿到目标服务的个人信息。

4.负载均衡

nacos主要提供了三个功能实现负载均衡,下面我们一一介绍。

4.1服务下线

当我们发现某个节点性能较差,也就是处理请求速度慢时(你不处理有的是节点处理),我们可以对这个节点进行手动下线。具体操作:
服务管理——服务列表——详情——下线。

4.2流量权重

我们也可以通过手动设置流量权重去控制各个节点被访问的频率,nacos也提供了这个功能。区间为1~10000,值越小,被访问的频率越低,这样对于一些低性能的节点我们还可以让它“发挥余热”。依旧是在服务列表的详情中设置。
在这里插入图片描述
注:若修改权重报错删除nacos文件夹下protocal文件夹即可。这是因为nacos对于每个服务权重会机型缓存,再次修改会参考缓存信息,若两次信息不一致则会报错,所以删除protocal文件在修改让其自动生成新的缓存即可。

4.3同级群优先访问

为提高各个服务之间访问效率,nacos还提供了同级群优先访问功能,我们只需在服务配置文件中指定集群名,在各个服务进行通信时,nacos就会优先匹配同级群的服务。比如:服务提供方1——集群上海,服务提供方2——集群北京,服务调用方1——集群上海,那么当服务调用方调用服务时nacos就会自动把请求交给服务提供方1而不是2。
怎么给服务指定集群名字呢:在配置文件通过spirng: cloud:nacos:discovery:cluster-name://集群名的方式。

5.健康检查

nacos的健康检查功能可以及时发现异常实例,从而快速采取措施,从而保证服务的整体可用性。
健康检查机制主要有两种:客户端主动上报机制和服务端(也就是nacos)反向探测机制。

5.1客户端主动上报机制

也就是注册在nacos的服务实例,通过心跳上报方式,间隔五秒,若实例超过15秒未上报则标记为不健康状态,超过30秒不上报直接删除该实例(你不报有的是服务报)。

5.2nacos主动探测机制

也就是nacos主动探测服务实例,间隔20秒,未获得响应则标记不健康状态,但不删除。

5.3服务实例类型

健康检查机制与是与实例类型强相关的,不可改变。
临时实例使用主动上报机制,非临时实例使用反向探测机制。
那么怎么设置服务实例类型呢:依旧通过配置文件:spring: cloud:discovery:ephemeral: 的true和false的指定,true表示临时实例,false表示非临时实例。
nacos也会自动记录该ip和端口号对应的服务实例,已设置的不能修改,除非:依旧删除protocal文件下的raft文件夹。

6.配置中心

nacos不仅是服务中心,也是一个注册中心。使用配置中心来管理和修改配置当然比你手动启动服务——修改配置——重启服务要好得多。尤其是服务实例数量较多的情况下。

6.1“配置登记”

配置中心对应的配置文件名为bootstrap.yml。我们需要在该文件下指定nacos服务端地址,配置文件格式,以及应用名称,配置文件如下:

spring: cloud: nacos: config: server-addr: //nacos服务端地址file-extension: //配置文件格式prefix:    //服务应用名称 

这样,当服务启动nacos就会读取到该服务的配置文件了!及时后续要修改服务配置,直接修改即可,nacos会自动更新的。

7.Eureka和Nacos区别

相同点:都支持服务注册和服务拉取
不同点;1.nacos还支持配置中心和流量管理等功能
2.Eureka遵循AP原则,Nacos默认AP,可切换CP(对临时实例AP,永久实例CP)
3.对于服务发现:Eureka基于拉模式,Nacos基于推拉模式。

补充:
AP:首先保证当前实例一定可用,能处理请求,但信息可能未更新,有误。
CP:不一定保证时时可用,但可用时信息一定正确。

http://www.xdnf.cn/news/8782.html

相关文章:

  • 【C语言指南】二维数组:概念、初始化与遍历
  • 5GC网络中的QoS Flow级QoS控制
  • Arduino Uno 热敏传感器实验
  • 防火墙高可用(HA)主备验证实验(eNSP)
  • 构造题(Constructive Problem)
  • ROS云课三分钟-阿克曼车式移动机器人倒车入库出库测试实验
  • python | vscode | 使用uv快速创建虚拟环境(实现一个项目一个虚拟环境,方便环境管理)
  • ADS学习笔记(三) 瞬态仿真
  • 【每天一个知识点】计算思维
  • java基础(面向对象高级部分)
  • [学习]浅谈C++异常处理(代码示例)
  • 2025.5.22 Axure 基础与线框图制作学习笔记
  • Linux中的文件系统和软硬连接
  • OpenGL环境配置
  • GAMES104 Piccolo引擎搭建配置
  • 【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测
  • 进程通信-内存共享
  • 使用Java制作贪吃蛇小游戏
  • 历年福州大学保研上机真题
  • Java字符编码转换:从UTF-8到GBK的实现原理与实践
  • 【多线程】Java 实现方式及其优缺点
  • 智能语音通信新标杆——A-29P神经网络AI降噪回音消除模块深度解析
  • 【AI Study】第三天,Python基础 - 同NumPy类似的类库
  • Go语言中常见的6个设计模式
  • 2025-5-22Vue3快速上手
  • 华为OD机试真题—— 货币单位换算(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 把本地项目上传github上
  • 前端绘图基础——SVG详解
  • SprigBoot整合rocketmq-v5-client-spring-boot
  • Kafka Broker 总体工作流程