一、认识和安装Nacos
(一)概念: Nacos是Alibaba的产品,现在是SpringCloud中的一个组件,相较于Eureka功能更加丰富。
(二)下载地址: https://github.com/alibaba/nacos/releases
(三)修改端口号
/conf/application.properties
### 默认端口: 8848; 自己重新更换端口
server.port = 8848;
(四)启动Nacos
startup.cmd -m standalone
二、Nacos的基本使用
(一)服务注册到Nacos
1、在父工程中添加Spring-cloud-alibaba的管理依赖
<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>
2、服务端添加nacos的客户端依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3、配置文件添加nacos地址
spring:
cloud:
nacos:
server-addr: localhost:8848
三、Nacos服务分级存储模型
(一)服务分级存储的作用: 提高服务容灾能力
(二)Nacos服务分级存储
(三)设置服务集群属性
spring:
cloud:
nacos:
server-addr: localhost:8848 #Nacos服务端地址
discovery:
cluster-name: HZ #配置集群名称
四、Nacos——NacosRule负载均衡
若想使消费者优先使用同集群的方式就是修改负载均衡的选择规则。
步骤如下:
1、 修改配置文件,设置集群属性
spring:
cloud:
nacos:
server-addr: localhost:8848 #Nacos服务端地址
discovery:
cluster-name: HZ #配置集群名称
**2、设置负载均衡IRule 为NacosRule **
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule ##配置复印在均衡策略为 NacosRuls,优先使用配置的集群
3、将user-service的权重设置为 1(权重 0~1 ,权重越大访问频率越高)
五、Nacos环境隔离
(一)Nacos环境层级
(二)Nacos控制台使用Namespace
1、在Nacos控制台菜单栏选择命名空间,并创建命名空间。
2、配置namespace
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: SH
namespace: xxxxxxxxx #命名空间,填写Nacos控制台生成的命名空间ID
六、Nacos与Eureka的比较
(一)共同点:
1、都支持服务注册和服务拉取
2、都支持服务提供者心跳方式做健康监测
(二)不同点
1、Nacos支持服务端主动监测提供者状态:临时示例采用心跳模式,非临时实例采用主动监测模式。
2、临时实力心跳不正常则会被剔除,非临时实例则不会被剔除
3、Nacos支持服务列表变更的消息推送模式,服务列表更新及时
4、Nacos集群默认采用AP(可用性|分区容错性)方式,当集群中存在非临时实例,采用CP(一致性|分区容错性)模式;Eureka采用AP模式
根据实例的不同分为:临时实例 和 非临时实例
如何配置非临时实例
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: SH
namespace: xxxxxxxxx #命名空间,填写Nacos控制台生成的命名空间ID
ephemeral: false #是否为临时实例,默认为true