从Nacos的web管理端中可以看出来,Nacos不仅可以作为服务注册与发现中心,还可以负责配置中来使用。

Nacos作为配置中心使用的好处,最主要就是配置可以集中管理,减少出错和操作成本。更多的好处,大家可以去google,我们这里还是以使用为主。

根据上一节搭建好的服务,还没有办法直接使用Nacos作为配置中心,需要在额外添加一个依赖才可以。话不多说,依赖如下:

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

添加好依赖,接着需要修改一下配置文件,关于cloud的相关配置修改为如下所示:

spring:
  cloud:
    nacos:
      config:
        server-addr: 47.104.6.8:8848
        file-extension: yml

可以看到,指定了配置文件类型为yml,然后,打开Nacos管理平台,在配置列表页面点击+号,添加配置文件。这里取名service-1.yml,在没有指定profile时,与服务名一样即可,记住,.yml也是要写全的,配置格式选择yaml,完整配置页面如下:

 

service-1.yml中的配置为:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 47.104.6.8:8848

然后修改application.yml为bootstrap.yml,不然程序启动会报错。然后启动程序,可以发现服务使用了Nacos中的配置项,服务正常启动并注册成功。

我们平常肯定不只只有一个环境,最少会有开发环境,测试环境等,每个环境的数据库等等配置是不一样的,怎么在Nacos中进行区分呢?Nacos提供了命名空间的功能,我们可以添加多个命名空间,每个环境在各自的命名空间里。

点击命名空间并设置保存,可以看到public外多了一个命名空间,我这里使用的是dev:

红框内就是当前命名空间的id,我们在当前命名空间内添加一个名字叫service-1-dev.yml的配置文件,内容如下:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 47.104.6.8:8848
        namespace: 2bdb9add-1be0-4f26-8c5c-9e06a3e9daed

添加了namespace属性,就是命名空间的id,同样在项目的yml文件中,也要添加namespace属性。并且指定当前活动的profile为dev,完整的配置如下:

spring:
  application:
    name: service-1
  profiles:
    active: dev
---
spring:
  profiles: dev
  cloud:
    nacos:
      config:
        server-addr: 47.104.6.8:8848
        file-extension: yml
        namespace: 2bdb9add-1be0-4f26-8c5c-9e06a3e9daed

---

然后启动,打开控制台,就可以看见在dev的命名空间下,服务注册了进来,相应的public中,服务已经没有了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐