Nacos安装与使用讲解

目录

一、Nacos介绍

1、Nacos是什么?

2、Nacos和Eureka的区别

二、Nacos安装

三、使用讲解(基于IDEA中)


一、Nacos介绍

1、Nacos是什么?

答:Nacos是阿里巴巴旗下的中间件产品,现在被Spring Cloud收编的一个组件,相较于Eureka功能更加丰富(不仅由注册功能,还要分布式控制),在国内更受欢迎。
Nacos提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。更敏捷和容易地构建、交付和管理微服务平台。并且Nacos支持基于DNS和基于RPC的服务发现,动态配置服务(配置中心),动态DNS服

2、Nacos和Eureka的区别

(1)共同点

① 都支持服务注册和服务拉取;
② 都支持服务提供者心跳的方式做健康检测;

(2)不同点

·        临时实例和非临时实例
 Eureka没有临时实例概念。
Nacos有临时实例和非临时实例。
(临时实例是支持心跳监测的,非临时实例是Nacos主动监测,临时实例超过30秒没有心跳会从服务删除,而非临时实例超过30秒没有心跳不会删除)

·        服务的拉取和推送
Eureka则不支持服务的主动推送。
Nacos不单支持服务的拉取还支持服务的主动推送。

·        架构设计
Eureka采用CS架构,由服务注册中心Eureka Server和服务提供者/消费者Eureka Client组成。Nacos采用高可用的P2P设计(无主节点),所有的server节点都是同等作用,支持AP和CP两种模式。

·        通信方式
Eureka基于HTTP RESTful API进行通信。
Nacos同时支持HTTP和TCP两种通信方式,TCP方式效率更高,适用于服务间通信。

·        服务发现
Eureka基于拉模式,Eureka Client会定期从Server拉取服务信息, 通过注册中心定期拉取服务列表,有缓存,默认每30秒拉取一次。
Nacos基于推送模式,Server会实时推送服务信息变化给Client,AP模式下更适合大规模服务规模,注册中心每次服务列表变化都会实时推送给订阅者,服务端和客户端保持心跳连接;

·        健康检查
Eureka只支持基于HTTP的健康检查,客户端定期(默认每30秒)向服务端发起HTTP请求,以此来判断服务是否可用。
Nacos同时支持HTTP和TCP两种健康检查,TCP连接方式可以更精确判断实例是否可用TCP方式通过socket连接来判断服务健康性,更加准确。

·        元数据
Eureka的元数据信息较简单。
Nacos的元数据更丰富,支持服务分类、权重、健康状态等信息。

·        隔离机制
Eureka只有区域(region)和区域(zone)两级隔离机制。
Nacos通过namespace、group和service三级来实现隔离,更加细粒度。

·        流量控制
Eureka没有流量控制功能。
Nacos支持对服务的流量、实例数和权重进行精细化控制,用于金丝雀发布、蓝绿部署等场景。

·        高可用机制
Eureka采用主备模式实现高可用,一个主节点和多个备份节点。主节点失效时,备份节点进行选举产生新的主节点,这种模式下,主节点压力较大。
Nacos采用无主节点设计,所有的节点都是平等的,通过Raft协议实现高可用;多个节点会选举出Leader,但Leader也参与服务注册和查询等工作,压力较小;当Leader失效时,会重新选举产生新的Leader节点,整个服务不会中断;

·        数据同步
Eureka通过备份节点定期从主节点拉取注册表信息进行同步,这种拉模式下,主备节点数据无法做到实时一致。
Nacos通过Raft协议实现数据同步,许多机制保证数据强一致,如入队出队机制、Commit机制、Snapshot机制等。Leader节点数据更新后,很快就会复制到Follower节点,数据实时一致;

·        CAP理论
根据CAP理论,Eureka属于AP系统,可以保证高可用性和分区容错性,但无法保证数据强一致性;
Nacos可以切换AP和CP两种模式:AP模式:用于生产环境,可以保证高可用性和分区容错性;CP模式:用于测试环境,可以保证数据一致性和分区容错性,但会损失一定高可用性。

·        Spring Cloud集成
Eureka深度集成于Spring Cloud,开箱即用,Eureka通过spring-cloud-starter-netflix-eureka可以轻松嵌入Spring Cloud应用。
Nacos可以通过Spring Cloud Alibaba来实现集成,需要自行引入依赖;Nacos可以通过spring-cloud-starter-alibaba-nacos-discovery集成到Spring Cloud应用中,但需要额外引入spring-cloud-starter-alibaba-nacos-config来配置Nacos地址等信息,配置较为繁琐。

Nacos在机制设计和理论基础上都超过了Eureka,其无主节点设计、强数据一致性和CAP切换都很值得学习。但Eureka简单易用,Spring Cloud集成也更加微服,因此也依然有其存在的意义。


二、Nacos安装

nacos官网下载icon-default.png?t=N7T8https://nacos.io/(1)步骤
① 进入Nacos官网从GitHub上拉取;

② 解压到一个没有英文的路径中;

③ Nacos默认端口为8848,若端口被占用了则可以在配置文件conf文件夹下的application.properties中的设置端口

④ 在启动文件bin文件夹下点击stratup.cmd脚本启动(推荐)

或在当前文件夹的搜索框中输入cmd进入命令行模式,输入命令:startup.cmd -m standalone

⑤ 在命令行按下ctrl + 鼠标左键点击网站进去Nacos图形化界面(默认初始账号和密码都是naocs);


完成(注意不能关闭启动nacos的命令行,否则将无法打开)


三、使用讲解(基于IDEA中)

1、服务注册

① 在服务模块父工程的pom.xml导入Nacos管理依赖,并在需要使用nacos的子服务模块pom.xml文件下导入客户端依赖;(若有多个服务需要使用nacos即在每个服务模块pom.xml文件中导入客户端依赖并修改其配置文件)

<!--nacos管理依赖(一般放在父工程pom.xml下)-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-alibaba-dependencies</artifactId>
   <version>2022.0.0.0</version>
</dependency>

<!--nacos客户端依赖(放在需要使用nacos的服务模块pom.xml下)-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   <version>2022.0.0.0</version>
</dependency>

② 修改该服务模块的配置文件;

③ 启动项目则可以在nacos客户端看到服务;

2、Nacos客户端使用

(1)权重负载均衡设置
Nacos控制台可以设置实例的权重值,0~1之间同集群内的多个实例,权重越高被访问的频率越高权重设置为0则完全不会被访问。

(2)环境隔离
默认分组为DEFAULT_GROUP




安装使用Nacos作为配置中心,你可以按照以下步骤进行操作: 1. 下载Nacos:首先,你需要从Nacos的官方网站(https://github.com/alibaba/nacos/releases)下载适合你的版本。你可以选择下载Nacos的服务器端或者使用Docker容器运行。 2. 启动Nacos服务器:如果你下载了服务器端,解压缩下载的文件并进入解压后的目录。然后,执行以下命令启动Nacos服务器: ```shell sh startup.sh -m standalone ``` 这将启动一个独立的Nacos服务器实例。 3. 访问Nacos控制台:在浏览器中访问 http://localhost:8848/nacos,这是Nacos服务器的默认访问地址。你将看到Nacos控制台的登录页面。 4. 登录Nacos控制台:默认情况下,Nacos没有启用身份验证,因此你可以直接点击登录按钮登录到控制台。 5. 创建命名空间:在控制台中,你可以创建一个命名空间来组织和管理配置。点击左侧导航栏中的“命名空间”选项,然后点击“新建命名空间”按钮来创建一个新的命名空间。 6. 创建配置:在控制台中,点击左侧导航栏中的“配置管理”选项,后点击“新建配置”按钮来创建一个新的配置。在弹出的对话框中,填写配置的相关信息,如配置的Data ID、Group、配置内容等。 7. 获取配置:你可以使用Nacos提供的客户端SDK来获取配置。根据你选择的编程语言,引入相应的SDK,并使用SDK提供的API来获取配置。 以上是基本的Nacos安装使用步骤。你可以根据实际需求进一步了解Nacos的高级功能和配置。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoTDB-胖胖的小恐龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值