SpringBoot项目配置apollo访问地址

我没有系统的学习Apollo,仅记录一下我在开发中遇到的问题,如下,我们在sit环境中的配置文件如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13

apollo:
  bootstrap:
    enabled: true
    namespaces: application,mybatis-plus,datasource,redis,spring,oss

app:
  id: srm

spring:
  main:
    allow-bean-definition-overriding: true

如果在本地想使用Apollo中sit环境的配置文件,则需要增加如下启动参数:


-Dapollo.meta=http://192.168.19.107:8080

我打算有时间研究一下,如何把这个配置放在配置文件中,这样更利于我文件的CV。

20211011后续

我最终决定不修改配置文件,虽然修改配置文件利于我CV,但是这份配置文件毕竟要上SIT环境的,所以在SIT环境中也会使用到我配置的配置中心地址,这样就不支持通过环境变量配置了(其实是支持的,但是有优先级问题,存在优先级问题,出现错误时不利于排查)。所以我决定使用环境变量的方式,参考我们SIT环境,我需要进行如下环境变量的配置:


APOLLO_CLUSTER=default
APOLLO_META=http://192.168.19.107:8080

这儿需要注意的是,我将点号换成了下滑线(但是有趣的是,在linux系统中,配置成点好也是可以正常使用的,这也许只是个例)。如果用点号的话,配置是不会生效的。另外配置后需要重新启动Idea,Idea新配置的环境变量不会立即生效,这个问题我很久前就注意到了。

其实还可以使用修改hosts文件的方案,因为我注意到,不进行环境变量的配置时,会请求http://apollo.meta/,所以在hosts文件中配置apollo.meta的地址就可以了,但是我不是很喜欢这种方式,感觉和SIT环境的配置不一致,不是很优雅。

参考资料

  1. apollo 在 spring-boot 中的加载过程解析

    我是在该文中找到一段关于环境变量如何配置的讲解:

    2021-10-11-14-50-05