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负载均衡策略

  • 优先选择同集群服务实例列表
  • 本地集群找不到服务提供者,才去其他集群寻找,并且会在控制台保警告
  • 确定了可用实例列表后,再采用负载均衡挑选实例
  1. 根据权重负载均衡

    实际部署会出现这样的场景:
    服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求,nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。

              怎么配置权重?
          - 在naocs控制台可以设置实例的权重值,首先选择实例后面的编辑按钮
          - 将权重设置为0.1,测试时可以发现被设置的实例被访问的频率大大降低
    

总结

  1. 实例的权重控制
  • nacos控制台可以设置实例的权重值,0~1之间
  • 同集群的多个实例,权重越高被访问的频率越高
  • 权重设置为0则完全不会被访问

nacos环境隔离 -namespace

nacos中服务储存和数据储存的最外层都是一个名为namespace的东西,用来做最外层隔离

  1. namespace用来做环境隔离
  2. 每个namespace都有唯一id
  3. 不同namespace的服务不可见

nacos

  1. nacos与eureke的共同点
  • 都支持服务注册和服务拉取
  • 都支持服务提供者心跳方式做健康检测

2.Nacos与Eureke的区别

  • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
  • 临时实例心跳不正常会被剔除,非临时实例不会被剔除
  • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
  • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureke采用AP模式

Nacos配置管理

将配置交给Nacos管理的步骤

  1. 在Nacos中添加配置文件
  2. 在微服务中引入nacos的config依赖
  3. 在微服务中引入bootstrap.yml,配置nacos地址,当前环境,服务名称,文件后缀名。这些决定了程序启动时去nacos读取那个文件

配置自动刷新
Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:
方式一:在@Value注入的变量所在类上添加注解@RefreshScope
方式二:通过@ConfigurationProperties注入。自动刷新

注意事项:

  • 不是所有的配置都适合放到配置中心,维护起来比较麻烦
  • 建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置

微服务会从nacos读取的配置文件

  1. [服务名称]-[spring.profile.active].yaml,环境配置
  2. [服务名].yaml,默认配置,多环境共享
    优先级:
    [服务名]-[环境].yaml>[服务名].yaml>本地配置

搭建nacos集群

搭建集群的基本步骤:

  • 搭建数据库,初始化数据库表结构
  • 下载nacos安装包
  • 配置nacos
  • 启动nacos集群
  • nginx反向代理

以上是关于Nacos的主要内容,如果未能解决你的问题,请参考以下文章

微服务入门|微服务架构怎么设计

微服务架构总览

Chris Richardson微服务翻译:构建微服务之微服务架构的进程通讯

微服务架构是啥

微服务架构是啥?

什么是 微服务