目录
一、nacos简介
- Nacos是SpringCloudAlibaba架构中最重要的组件。
- Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。能够无缝对接Springcloud、Spring、Dubbo等流行框架。
二、下载地址
下载地址:nacos
解压之后的目录
三、启动
nacos支持单机和集群,默认是集群
windows
1.进入bin目录下地址栏输入cmd进入命令提示符,输入startup.cmd -m standalone
2.登录
账号密码都是nacos
四、SpringBoot配置
工程目录结构,以下图片为例:
1. 在cloud-demo中的pom.xml导入依赖
<dependencyManagement>
<!--nacos管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
注意一定要在dependencyManagement标签中导入依赖,而不是dependencys标签中
2.在子工程user-service中配置pom.xml和application.yml
pom.xml
<!--nacos客户端依赖包-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
application.yml 先注释掉eureka的配置
在spring下配置如下红框内的
其他子工程和这个是一样的配置
五、集群配置(个人使用可以不配)
配置如下红框
配置好一个就启动一个,不然都归属到一个集群中了 例如: 设置SH集群之后就启动2个项目,则这两个项目就是集群SH的
再继续把SH改成HZ之后再启动一个项目,则这个项目归属为HZ集群
六、nacos负载均衡
配置如下:
userserver:
ribbon:
NFLoadBaLancerRuLeCLassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则,NacosRule优先访问本地集群,内部默认用随机访问端口
七、服务器实例权重
通过修改权重来控制访问服务器实例的次数,权重越小优先级有小,访问次数越少
八、环境隔离
不同空间里的服务之间不能相互访问,在配置yml文件的时候只需要指定命名空间的ID即可
配置如下:
cloud:
nacos:
server-addr: localhost:8848 #nacos服务地址
discovery:
cluster-name: HZ #集群名称
namespace: 1a35c9fa-6a23-46be-85c3-ac413ca95187 #命名空间,填id,用作环境隔离,不同的空间下的服务是不可见的
ephemeral: false #是否是临时实例,临时:采用心跳检测,非临时:nacos主动向提供者发请求
九、nacos和eureka的区别
1.相同点
- 都支持服务注册和服务拉取。
- 都支持服务提供者心跳方式做健康检测。
2.不同点
- Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
- 临时实例心跳不正常会被剔除,非临时实例则不会被剔除 Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
- Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式