一、简介
Nacos是阿里云开源的一个服务发现、配置管理和服务鉴权平台,它提供了一种更简单、更便捷、更开放的方式来管理服务,帮助开发者快速实现服务的发现、配置的管理、服务的鉴权等功能。Nacos可以帮助开发者轻松管理微服务应用中的服务提供者、服务消费者和配置,提供服务发现、配置管理、服务鉴权等功能。Nacos具有以下特点:
- 轻量级:Nacos的启动速度快,占用资源少,适合在生产环境中部署。
- 易于使用:Nacos提供了简单易用的RESTful API和Java客户端,可以快速上手。
- 高可用:Nacos具有高可用的架构,可以通过配置来设置多个Nacos服务器,实现故障切换和负载均衡。
- 配置管理:Nacos提供了集中式的配置管理功能,可以实现动态配置和环境变量配置。
- 服务鉴权:Nacos提供了服务鉴权功能,可以根据不同的服务设置不同的鉴权规则。
二、Nacos和Eureka的区别
Nacos和Eureka都是当前比较流行的Service Mesh组件,用于服务发现、配置管理等。它们的区别如下:
- 背景不同:Nacos是阿里巴巴开源的组件,而Eureka是Netflix开源的组件。
- 功能侧重点不同:Nacos在服务发现和配置管理方面功能更加强大,支持动态注册、配置推送、配置监听等功能;而Eureka更加专注于服务发现,配置管理功能较弱。
- 性能不同:Nacos经过优化,在大规模集群下性能更优。
- API设计不同:Nacos的API设计更加灵活,支持RESTful和Java SDK两种方式;而Eureka只支持Java SDK。
- 单机负载不同:Nacos的单机负载能力比Eureka更强。
- 综上所述,Nacos和Eureka在功能侧重点和性能上有所不同,选择时应根据实际需求进行评估。如果需要更加强大的配置管理和推送功能,可以选择Nacos;如果只是需要简单的服务发现功能,可以选择Eureka。
三、安装
1、安装
官网下载地址
将压缩包解压到文件夹
找到application.properties文件打开查看端口号
默认端口号为8848,如果已经有其它应用占了,那么可以更换端口号。
2、启动
在此窗口打开cmd命令框
启动命令:
startup.cmd -m standalone
启动成功!!!
复制地址:
到浏览器打开:
四、服务注册到Nacos
1、非集群服务
在整个项目的父工程中引入依赖
<!-- nacos的管理依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
在子项目中引入客户端依赖 及 配置yml文件
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
将所配置的父项目和子项目启动(我只有一个父项目和两个子项目),成功显示。
2、集群服务
将上面的非集群服务的配置按原样配置。
配置yml文件
启动子项目(这里我启动了两个(UserApplication、UserApplication2))
然后再配置qiyml文件(将其值改为SH)
复制一个启动项并更改其端口号,新建好后点击运行
成功显示。
springcloud
五、优先选择本地集群
NacosRule负载均衡策略:
- 优先选择同集群服务实例列表
- 本地集群找不到提供者,才去其它集群寻找,并且会。报警告
- 确定了可用实例列表后,再采用随机负载均衡挑选实例