上一节介绍了Nacos注册中心的功能,这节介绍下木谷博客中如何使用Nacos作为分布式配置中心。

在第二节搭建项目并运行中讲到创建mugu_nacos_config这个数据库,其中已经包含了木谷博客所需的全部配置,在nacos中也可以查看到,如下:

引入Nacos作为配置中心很简单,步骤如下:

1、微服务引入blog-nacos-starter

这个starter中已经引入了nacos配置中心的依赖,因此所有微服务只需要引入starter即可。

<dependency>
	<groupId>com.mugu.blog</groupId>
	<artifactId>blog-nacos-starter</artifactId>
</dependency>

2、boostrap.yml中配置

boostrap.yml配置文件中指定配置中心的信息,网关服务的配置如下:

spring:
  profiles:
    active: dev
  application:
    name: blog-gateway
  cloud:
    nacos:
      config:
        ## nacos的地址,作为配置中心
        server-addr: 127.0.0.1:8848
        ## 配置内容的数据格式,目前只支持 properties 和 yaml 类型,这个和dataId有关-> ${prefix}-${spring.profiles.active}.${file-extension}
        ## blog-gateway-dev.yaml
        file-extension: yaml
        username: nacos
        password: nacos
        ## 指定命名空间
        namespace: 729f3090-638e-4b45-bfde-b91312ffe3d0

注意:一定要是boostrap.yml

上述配置指定了nacos的信息(ip…)。接下来只需要在nacos中新建对应的配置文件即可。

配置文件命名规则:prefix−{prefix}-prefix{spring.profiles.active}.${file-extension}

  • prefix :前缀,默认是 spring.application.name 的值,也可以通过配置spring.cloud.nacos.config.prefix 来配置。

  • spring.profiles.active : 即为当前环境对应的 profile。当 spring.profiles.active 为空时,对

    应的连接符 - 也将不存在,dataId 的拼接格式变成 prefix.{prefix}.prefix.{file-extension}

  • file-exetension:为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-

    extension 来配置。目前只支持 properties 和 yaml 类型。

根据以上规则网关服务在dev环境的配置文件名为:blog-gateway-dev.yaml,如下:

只需要将项目中的配置放在nacos中,如果在运行中修改配置,也是可以动态刷新。

共享配置

木谷博客系统中有一些公共的配置,比如注册中心的配置、actuator的配置、分页配置,笔者将这些公共的抽离出来了,如下:

  • 注册中心配置:share-nacos-registry.yaml
  • actuator的配置:share-actuator.yaml
  • seata的配置:share-seata.yaml
  • sentinel的配置:share-sentinel.yaml
  • 分页的配置:share.pagehelper.yaml

这些配置如果需要引用,同样是在bootstrap.yml配置文件中配置,比如文章服务blog-article-boot的配置如下:

总结

木谷博客系统中使用了Nacos作为分布式配置中心,同时将一些公共配置抽离了出来。

Logo

更多推荐