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

Spring Cloud: Nacos

Nacos

        Nacos是阿里巴巴开源的一个服务发现,配置管理和服务管理平台。只要用于分布式系统中的微服务注册,发现和配置管理,nacos是一个注册中心的组件

官方仓库:https://nacos.io/

Nacos的下载

Releases · alibaba/nacos

在官网中下载压缩包到本地

windows下载

把压缩包解压到本地,将startup.cmd文件中的配置改为单机模式

将MOOE设置为standalone

 

打开startup.cmd,界面为这样时,启动成功

 访问 http://127.0.0.1:8848/nacos

 

Linux下载

直接将你在官网上下载好的压缩包拖入到Xshell中,加载完毕后进行解压

通过这个命令进行解压

unzip nacos-server-2.2.3.zip

解压后输入这个命令开启Nacos单机模式

 bash startup.sh -m standalone

 进入nacos文件的bin路径中,执行命令,开启Nacos,出现这个界面,代表Nacos的单机模式启动成功

访问自己的IP+端口号/nacos 进行访问

 

Nacos的使用

Nacos和Eureka的区别就是,Eureka需要自己搭建一个服务,Nacos不用自己搭建服务,组件已经准备好了,只需要启动就行了

将Nacos引入自己的项目,首先引入Nacos的依赖

<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>

 注意:再父工程的pom文件中的<dependencyManagement>中引入Spring Cloud Alibaba的依赖

再分别再子项目中引入依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>

再引入Loadbalancer依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>

修改自己的配置文件

将两个子系统同时启动

观察Nacos,发现两个服务都已经注册再Nacos上

 

启动多个服务,测试负载均衡

 

我们可以多次的访问order-service中的接口,观察负载均衡 

 

可以发现这三个实例访问分配的几乎差不多

当我们发现其中有一个节点上的性能很差的时候,我们可以对该节点进行下线

下线之后,再次请求节点,发现没有服务进行请求了

 

配置权重

将请求均匀分配到多个服务器上,从而避免单个服务器过载

注:由于SpringCloudLoadBalancer具有自带的负载均衡 ,所以不支持Nacos的负载均衡策略,所以需要我们自己开启Nacos的负载均衡策略

 

同集群优先访问

 

 给实例配置集群名称

 

Nacos健康检查

 

Nacos服务实例类型

临时实例:如果实例宕机超过一定的时间,就会自动的将实例删除

非临时实例:就算是实例宕机,也不会从服务列表中删除

Nacos环境隔离

 创建好namespace,就可以对文件配置

Nacos配置中⼼ 

由于多人开发时候,配置文件可能需要经常修改,使用同一个配置文件容易冲突,配置中⼼就是对这些配置项进⾏统⼀管理.通过配置中⼼,可以集中查看,修改和删除配置,⽆需再逐个 修改配置⽂件.提⾼效率的同时,也降低了出错的⻛险

需要引入Nacos Config依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- SpringCloud 2020.*之后版本需要引⼊bootstrap--> 
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

进行配置 

 

访问这个接口 

@RequestMapping("/config")
@RefreshScope
@RestController
public class NacosController {@Value("${nacos.test.num}")private Integer num;@RequestMapping("/get")public Integer get(){return num;}
}

 

 

Data Id 

 Data Id的完整格式

 ${prefix}-${spring.profiles.active}.${file-extension}

文件的优先级:product-service-dev.properties> product-service.properties>product service 

Nacos与Eureka的区别‘

Nacos除了服务发现和注册之外,还提供了配置中⼼,流量管理和DNS服务等功能

Eureka遵循AP原则

Nacos根据配置识别CP或者AP模式.如果注册Nacos的Client的节点是临时节点,那么Nacos对这个 Client节点的效果就是AP,反之是CP.AP和CP可以同时混合存在。

Eureka:基于拉模式.EurekaClient会定期从Server拉取服务信息,有缓存,默认每30秒拉取⼀次. Nacos:基于推送模式.服务列表有变化时实时推送给订阅者,服务端和客⼾端保持⼼跳连接

希望能对大家有所帮助!!!!

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

相关文章:

  • 扫雷革命:矩阵拓扑与安全扩散的数学之美
  • SpringCloud之Gateway基础认识-服务网关
  • 【C语言练习】032. 编写带参数的函数
  • 【小记】excel vlookup一对多匹配
  • Android 13 使能user版本进recovery
  • 激活函数(sigmoid、Tanh、ReLu、softmax、softmin、LogSoftma)公式,作用,使用场景和python代码(包含示例)详解
  • 游戏引擎学习第268天:合并调试链表与分组
  • STM32中断
  • 数据集-目标检测系列- 烟雾 检测数据集 smoke >> DataBall
  • 逐步理解Qt信号与槽机制
  • 【部署满血Deepseek-R1/V3】大型语言模型部署实战:多机多卡DeepSeek-R1配置指南
  • Web3 实战项目项目部署到 GitHub 和上线预览的完整指南
  • django的权限角色管理(RBAC)
  • PyTorch API 4 - 分布式通信、分布式张量
  • 【递归、搜索和回溯】二叉树中的深搜
  • Docker中运行的Chrome崩溃问题解决
  • leetcode-hot-100(哈希)
  • 产品需求分析:需求收集方法(锻造产品内核)
  • 【OpenCV】imread函数的简单分析
  • PyTorch API 8 - 工具集、onnx、option、复数、DDP、量化、分布式 RPC、NeMo
  • 【金仓数据库征文】政府项目数据库迁移:从MySQL 5.7到KingbaseES的蜕变之路
  • STM32-ADC模数转换器(7)
  • 华为云Git使用与GitCode操作指南
  • 湖仓一体架构在金融典型数据分析场景中的实践
  • 多线程 2 - 死锁问题
  • 中国古代史2
  • P1065 [NOIP 2006 提高组] 作业调度方案 详解
  • 【计算机视觉】OpenCV实战项目:Deep Machine Learning Tutors:基于OpenCV的实时面部识别系统深度解析
  • 机器学习第四讲:无监督学习 → 给无标签积木自由组合,发现隐藏规律
  • Lambda表达式解读