聊下apollo配置中心的接入
很多技术栈在优化过程中都会有更便捷的接入方式,或者接入demo,这次想拿apollo来对比一些例如向量数据库的部署方式,对我说的就是milvus,
apollo如果生产环境部署完全不推荐用这种方式,但是如果为了做个实验,研究下源码还是很方便的,当然前提是有docker环境
首先下载docker-compose配置文件,如果是x86环境就是这个链接,如果是m1这类的就是用这个链接,然后再下载sql文件夹
目录结构差不多是这样
然后在这个目录下执行sudo docker-compose -f docker-compose-arm64.yml up -d
如果是非m1的话直接用sudo docker-compose up -d
就好,因为docker-compose默认识别的文件名就是docker-compose.yml
然后看下日志1
2
3
4
5
6
7
8
9
10
11
12
13
14==== starting service ====
Service logging file is ./service/apollo-service.log
Application is running as root (UID 0). This is considered insecure.
Started [66]
Waiting for config service startup...
Config service started. You may visit http://localhost:8080 for service status now!
Waiting for admin service startup.
Admin service started
==== starting portal ====
Portal logging file is ./portal/apollo-portal.log
Application is running as root (UID 0). This is considered insecure.
Started [211]
Waiting for portal startup...
Portal started. You can visit http://localhost:8070 now!
就表示启动成功了,然后就可以访问后面那个地址 http://localhost:8070
进入控制台,默认用户名apollo,密码是admin
然后我们在应用中想要使用,主要是这个几个配置
第一个就是在resources目录下创建apollo-env.properties
里面是meta server的地址,比如我这边就是1
dev.meta=http://127.0.0.1:8080
这表示是对应的spring.profiles.active
是dev
的配置
第二步是添加pom依赖1
2
3
4
5<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>2.0.1</version>
</dependency>
最后一步是在springboot的启动类添加注解1
然后就可以直接使用@Value
注解使用配置的值
请求下这个接口,就可以看到对应的值
然后我们可以在控制台修改下这个值,发布
默认日志也会把这个打印出来1
2024-08-24 19:38:30.462 INFO 57920 --- [Apollo-Config-1] c.f.a.s.p.AutoUpdateConfigChangeListener : Auto update apollo changed value successfully, new value: apolloDemoValue, key: demo, beanName: demoController, field: com.nicksxs.spbdemo.controller.DemoController.demo
对应的请求也会拿到最新的值