Nacos
Posted MyAzhe0ci3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos相关的知识,希望对你有一定的参考价值。
nacos注册中心
1.nacos服务搭建
- 下载安装包
- 解压
- 在bin目录下运行指令:startup.cmd -m standalone
2.nacos服务注册或发现
- 引入nacos.discovery依赖
- 配置nacos地址spring.cloud.nacos.server-addr
nacos服务分级储存模型
- 一级是服务,例如userservice
- 二级是集群,例如杭州或上海
- 三级是实例,例如杭州机房的某台机器部署了userservice的服务器
2.如何设置实例的集群属性
- 修改application.yml文件,添加spring.cloud.nacos.discovery.cluster-name属性即可
1.NacosRule负载均衡策略
- 优先选择同集群服务实例列表
- 本地集群找不到服务提供者,才去其他集群寻找,并且会在控制台保警告
- 确定了可用实例列表后,再采用负载均衡挑选实例
-
根据权重负载均衡
实际部署会出现这样的场景:
服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求,nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。怎么配置权重? - 在naocs控制台可以设置实例的权重值,首先选择实例后面的编辑按钮 - 将权重设置为0.1,测试时可以发现被设置的实例被访问的频率大大降低
总结
- 实例的权重控制
- nacos控制台可以设置实例的权重值,0~1之间
- 同集群的多个实例,权重越高被访问的频率越高
- 权重设置为0则完全不会被访问
nacos环境隔离 -namespace
nacos中服务储存和数据储存的最外层都是一个名为namespace的东西,用来做最外层隔离
- namespace用来做环境隔离
- 每个namespace都有唯一id
- 不同namespace的服务不可见
nacos
- nacos与eureke的共同点
- 都支持服务注册和服务拉取
- 都支持服务提供者心跳方式做健康检测
2.Nacos与Eureke的区别
- Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
- 临时实例心跳不正常会被剔除,非临时实例不会被剔除
- Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
- Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureke采用AP模式
Nacos配置管理
将配置交给Nacos管理的步骤
- 在Nacos中添加配置文件
- 在微服务中引入nacos的config依赖
- 在微服务中引入bootstrap.yml,配置nacos地址,当前环境,服务名称,文件后缀名。这些决定了程序启动时去nacos读取那个文件
配置自动刷新
Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:
方式一:在@Value注入的变量所在类上添加注解@RefreshScope
方式二:通过@ConfigurationProperties注入。自动刷新
注意事项:
- 不是所有的配置都适合放到配置中心,维护起来比较麻烦
- 建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置
微服务会从nacos读取的配置文件
- [服务名称]-[spring.profile.active].yaml,环境配置
- [服务名].yaml,默认配置,多环境共享
优先级:
[服务名]-[环境].yaml>[服务名].yaml>本地配置
搭建nacos集群
搭建集群的基本步骤:
- 搭建数据库,初始化数据库表结构
- 下载nacos安装包
- 配置nacos
- 启动nacos集群
- nginx反向代理
以上是关于Nacos的主要内容,如果未能解决你的问题,请参考以下文章