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

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:基于推送模式.服务列表有变化时实时推送给订阅者,服务端和客⼾端保持⼼跳连接

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

相关文章:

  • 全栈开发实战:FastAPI + React + MongoDB 构建现代Web应用
  • PyTorch API 5 - 全分片数据并行、流水线并行、概率分布
  • 2025年RAG技术有哪些创新点?
  • Octave 绘图快速入门指南
  • Java云原生到底是啥,有哪些技术
  • 【目录】学习如何使用dify建设专业知识库
  • C语言_程序的段
  • 蔚来三品牌大整合:乐道产品研发、销售体系并入蔚来各集群|36氪独家
  • Ceph集群故障处理 - PG不一致修复
  • FPGA笔试题review
  • Java大数据可视化在城市空气质量监测与污染溯源中的应用:GIS与实时数据流的技术融合
  • OSPF综合性实验
  • 判断点与椭球的位置关系及计算连线交点的数学原理与Babylon.js实现
  • 记录 ubuntu 安装中文语言出现 software database is broken
  • visual studio 2015 安装闪退问题
  • 1 计算机网络
  • 无线网络设备中AP和AC是什么?有什么区别?
  • OpenAI API JSON 格式指南与json_repair错误修复
  • React文档-State数据扁平化
  • 利用大型语言模型有效识别网络威胁情报报告中的攻击技术
  • 巴基斯坦外长:近期军事回应是自卫措施
  • “科创板八条”后百单产业并购发布,披露交易金额超247亿
  • 中国天主教组织发贺电对新教皇当选表示祝贺
  • 明明睡够了,怎么还有黑眼圈?可能是身体在求救
  • “上海之帆”巡展在日本大阪开幕,松江区组织企业集体出展
  • 两部门部署中小学幼儿园教师招聘工作:吸纳更多高校毕业生从教