Nacos是阿里巴巴的产品,现在是spring cloud中的一个组件.相比Eureka功能更加丰富,在国内受欢迎度较高
Nacos服务分级存储模型
1) 一级是服务, 例如user service
2) 二级是集群, 例如杭州或上海
3) 三级是实例, 例如杭州机房的某一台部署了user service的服务器
如何设置实例的集群属性
1) 修改application.yml文件,例如spring.cloud.nacos.discovery.cluster-name属性 即 可
NacosRule负载均衡策略
① 优先选择同集群服务实例列表
② 本地集群找不到提供者,采取其他集群寻找,并且会发出警告
③ 确定了可用实例列表后,在采用随机负载均衡挑选实例
Nacos权重负载均衡
实例的权重控制
① Nacos控制台可以设置实力的权重值,0~1之间
② 同集群内的多个实例,权重越高月被访问的频率越高
③ 权重设置为0则完全不会被访问
环境隔离 - namespace
Nacos中服务存储和数据存储的最外层都是一个名为
namespace的东西,用来做最外层隔离
① namespace用来做环境隔离
② 每个namespace都有唯一的id
③ 不同namespace下的服务不可见
Nacos注册中心原理
Nacos与Eureka的共同特点
① 都支持服务注册和服务拉取
② 都支持服务提供者心跳方式做健康检测
Nacos与Eureka的区别
① Nacos支持服务端主动检测提供者状态: 临时实例采用心跳模式,非临时采用主动检测模式
② 临时实例心跳不正常会被剔除,非临时实例则不会
③ Nacos支持服务列表变更的消息推送模式,服务列表更新及时
④ Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式
Nacos配置管理
将配置交给Nacos管理的步骤
- 在Nacos中添加配置文件
- 在微服务中引入nacos的config依赖
- 在微服务中添加bootstrap.yml,配置nacos的地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件