当前位置:网站首页 > 产品管理 > 正文

Nacos配置中心使用(nacos 配置管理)



当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。image

Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。

启动微服务时的流程:如图

微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。

但如果尚未读取application.yml,又如何得知nacos地址呢?

因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程如下:

bootstrap.yaml文件的优先级高于application.yaml

image

注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置还是保存在微服务本地比较好。

image

然后在弹出的表单中,填写配置信息:

Data Id命名规则:[服务名称]-[profile].[后缀名] 如:userservice-dev.yaml 一定要遵守

image

①微服务都要导入依赖

 

②添加bootstrap.yaml

这里的取名一定要和nacos配置的一样

 

这里会根据spring.cloud.nacos.server-addr获取nacos地址,再根据

作为文件id,来读取配置。

本例中,就是去读取:

image

③业务中读取nacos配置中心的配置

这里的读取都实现了配置热更新,即更新nacos配置文件无需重启服务

有两种方式,二选一即可。

  • 方式一:@RefreshScope
    1. 使用@Value注解得到nacos配置文件信息
    2. 在@Value注入的变量所在类上添加注解@RefreshScope
    3. 使用nacos配置文件信息完成业务

image

  • 方式二:@ConfigurationProperties注解代替@Value注解【推荐】
    1. 创建一个配置类,在类上面加入@Component @Data @ConfigurationProperties

      !!!注意:这里的prefix="变量是配置文件中的前缀名",String dateformat需要取名和配置文件中一致

      nacos配置文件:

image

 
  1. 业务中注入nacos配置文件类,并调用配置信息完成业务
     

引入:有些配置在开发和测试环境都是一样的就可以使用配置共享

其实微服务启动时,会去nacos读取多个配置文件,例如:

  • ,例如:userservice-dev.yaml
  • ,例如:userservice.yaml

而不包含环境,因此可以被多个环境共享。(即[spring.application.name]这个名字下的所有环境都会读取到该配置文件)

举例:有两个服务分别配置在userservice的dev和test环境运行;此时在nacos配置了一个userservice.yaml 和 userservice-dev.yaml;

结果:两个服务都能读到userservice.yaml、但只有dev环境的才可以读到userservice-dev.yaml

当nacos、服务本地同时出现相同属性时,优先级有高低之分:nacos的局部 > nacos全局 > 服务本地
【当有相同配置的时候优先级高的覆盖低的】

image

注意:搭建集群后,服务访问的nacos接口就改成访问nginx的接口。 如nginx是80接口,那服务的bootstrap.yaml配置文件访问nacos的接口改成80

官方给出的Nacos集群图:
image

其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。

我们计划的集群结构:
image

三个nacos节点的地址:

节点 ip port nacos1 192.168.150.1 8845 nacos2 192.168.150.1 8846 nacos3 192.168.150.1 8847

搭建集群的基本步骤:

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

2.1.初始化数据库

Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库。

官方推荐的最佳实践是使用带有主从的高可用数据库集群,主从模式的高可用数据库可以参考传智教育的后续高手课程。

这里我们以单点的数据库为例来讲解。

首先新建一个数据库,命名为nacos,而后导入下面的SQL:

 

2.2.下载nacos

nacos在GitHub上有下载地址:https://github.com/alibaba/nacos/tags,可以选择任意版本下载。

本例中才用1.4.1版本:

image

2.3.配置Nacos

将这个包解压到任意非中文目录下,如图:

image

目录说明:

  • bin:启动脚本
  • conf:配置文件

进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf:

image

然后添加内容:如果里面有ip地址就删除换成如下(在生产环境就需要改成服务器地址)

 

然后修改application.properties文件,添加数据库配置

 

2.4.启动

将nacos文件夹复制三份,分别命名为:nacos1、nacos2、nacos3

image

然后分别修改三个文件夹中的application.properties,

nacos1:

 

nacos2:

 

nacos3:

 

然后分别启动三个nacos节点:

 

2.5.nginx反向代理

找到课前资料提供的nginx安装包:

image

解压到任意非中文目录下:

image

修改conf/nginx.conf文件,添加配置如下:添加到http内部

 

在nginx.exe的目录下打开cmd启动nginx: ;而后在浏览器访问:http://localhost/nacos即可。

2.6 服务端该端口

所有服务的代码中bootstrap.yaml/application.yml文件配置如下:

 

2.7.优化

  • 实际部署时,需要给做反向代理的nginx服务器设置一个域名,这样后续如果有服务器迁移nacos的客户端也无需更改配置.
  • Nacos的各个节点应该部署到多个不同服务器,做好容灾和隔离
到此这篇Nacos配置中心使用(nacos 配置管理)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 产品经理入门培训课程(产品经理入门培训课程)2025-05-15 23:27:09
  • 文件管理data访问限制怎么解决(文件管理无法访问data)2025-05-15 23:27:09
  • 产品经理入门书籍(产品经理必看书)2025-05-15 23:27:09
  • 产品经理资格证(产品经理职业资格证书)2025-05-15 23:27:09
  • 怎么打开任务管理器快捷键win10(怎么打开任务管理器快捷键结束进程)2025-05-15 23:27:09
  • 进程管理器的快捷键(进程管理器在哪)2025-05-15 23:27:09
  • 日志管理员英文(日志管理 英文)2025-05-15 23:27:09
  • 产品经理资格证(产品经理考证)2025-05-15 23:27:09
  • 怎么打开任务管理器快捷键win7(苹果电脑怎么打开任务管理器快捷键)2025-05-15 23:27:09
  • 文件管理器(文件管理器快捷键)2025-05-15 23:27:09
  • 全屏图片