springboot整合apollo配置中心
springboot整合apollo配置中心
springboot整合apollo配置中心官网文档说明得比较清楚,但还是有一些坑注意的。
官网文档:https://www.apolloconfig.com/#/zh/deployment/quick-start
时间:2021年8月4日 23:49:09
1. 部署一个快速启动环境
我的环境是centos7.9,apollo版本应该1.7.0
# 创建名称为apollo的用户
useradd apollo
# 修改用户密码(root下:123465)
passwd apollo
# 创建名称为apollogroup的组
groupadd apollogroup
gpasswd -a apollo apollogroup
cd /home/apollo
# 安装Git
yum install git
# 克隆项目,没有proxy基本下载不来,建议使用gitee同步仓库再拉取
git clone https://github.com/apolloconfig/apollo-build-scripts
# 初始化数据库脚本
cd apollo-build-scripts
# mysql同机器可以,否则自行连接工具初始化下面的数据库脚本,注意数据库名字
mysql -u root -p
source ./sql/apolloportaldb.sql
source ./sql/apolloconfigdb.sql
修改启动脚本,库连接注意添加时区和useSSL=false,我的数据库是mysql5.7.34,不加useSSL=false会连接异常。自行修改mysql的ip。
vi demo.sh
# apollo config db info
apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false"
apollo_config_db_username=root
apollo_config_db_password=123456
# apollo portal db info
apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false"
apollo_portal_db_username=root
apollo_portal_db_password=123456
启动脚本
# 将此目录授权给Apollo用户组
chown -R apollo:apollogroup ./*
# 切换用户
su apollo
# 启动服务
./demo.sh start
启动完成

访问管理服务:http://192.168.200.128:8070/
账号密码:apollo/admin
2. 创建一个简单的springboot项目
引入依赖Maven:
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.7.0</version>
</dependency>
修改配置文件application.properties
#Apollo 配置 https://www.apolloconfig.com/#/zh/usage/java-sdk-user-guide?id=_12-%e5%bf%85%e9%80%89%e8%ae%be%e7%bd%ae
# AppId是应用的身份信息,是从服务端获取配置的一个重要信息。
app.id=my-app-id
# Meta server地址也可以填入IP,如http://1.1.1.1:8080,http://2.2.2.2:8080,
# 不过生产环境还是建议使用域名(走slb),因为机器扩容、缩容等都可能导致IP列表的变化。
apollo.meta=http://192.168.200.128:8080
apollo.cluster=default
apollo.bootstrap.enabled=true
# 指定使用哪个 Namespace 的配置,默认 application。
apollo.bootstrap.namespaces=application
# 为了防止配置中心无法连接等问题,Apollo 会自动将配置本地缓存一份。
apollo.cacheDir=d:\\apollo
# Spring应用通常会使用 Placeholder 来注入配置,如${someKey:someDefaultValue},冒号前面的是 key,冒号后面的是默认值。
# 如果想关闭 placeholder 在运行时自动更新功能,可以设置为 false。
apollo.autoUpdateInjectedSpringProperties=true
#将 Apollo 加载提到初始化日志系统之前
apollo.bootstrap.eagerLoad.enabled=false
编写一个测试controller
@RestController
public class WebController {
@Value("${test:默认值}")
private String test;
@GetMapping("")
public Object get() {
return test;
}
}

添加apollo配置
访问管理服务:http://192.168.200.128:8070/
账号密码:apollo/admin
在apollo管理中创建一个项目

添加一个key

再访问

3. 添加一个配置监听
@Configuration
public class ApolloConfig {
@com.ctrip.framework.apollo.spring.annotation.ApolloConfig
private Config config;
@Bean
public void changeListener() {
config.addChangeListener(new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent configChangeEvent) {
System.out.println("Changes for namespace " + configChangeEvent.getNamespace());
for (String key : configChangeEvent.changedKeys()) {
ConfigChange change = configChangeEvent.getChange(key);
System.out.println(String.format("Found change - key: %s, oldValue: %s, newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
}
}
});
}
}
触发

多个注解参考官网:https://www.apolloconfig.com/#/zh/usage/java-sdk-user-guide?id=_323-spring-annotation%e6%94%af%e6%8c%81
springboot整合apollo配置中心的更多相关文章
- 【Nacos】Springboot整合Nacos配置中心(二) 多环境配置
本篇随笔接上一篇文章:Springboot整合Nacos配置中心(一),主要记录Nacos多环境的配置的方法 Nacos多环境的配置 方法一: 1.在项目中的bootstrap.yaml文件中配置激活 ...
- 【Nacos】Springboot整合nacos配置中心(一)
一.本地Nacos安装环境: Win7 ,JDK8 ,maven3.5 1.下载安装包 2.启动nacos服务,bin文件下下面startup.cmd 3.访问 http://localhost:88 ...
- Spring Boot 2.0 整合携程Apollo配置中心
原文:https://www.jianshu.com/p/23d695af7e80 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够 ...
- SpringBoot 整合 apollo
简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...
- Apollo配置中心的实战
31.携程 Apollo 配置中心介绍~1.mp4 32.Apollo核心概念~1.mp4 32.Apollo核心概念~1.mp4 每个应用需要有一个唯一的AppID 要在指定的机器上的server. ...
- SpringBoot(19)---SpringBoot整合Apollo
SpringBoot(19)---SpringBoot整合Apollo 有关Apollo之前已经写了两篇文章: 1.[Apollo](1)--- Apollo入门介绍篇 2.[Apollo](2)-- ...
- 19.SpringCloud实战项目-SpringCloud整合Alibaba-Nacos配置中心
SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. ...
- Apollo配置中心动态刷新日志级别
Apollo配置中心动态刷新日志级别 添加次配置后,当在apollo上面调整日志级别不需要重启服务器,马上就能生效 /** * 结合apollo动态刷新日志级别 * @author: nj * @da ...
- 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)
基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势) 前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...
- SpringBoot使用Nacos配置中心
本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...
随机推荐
- k8s1.25版本上实践 Ingress-nginx
背景: 领导要求的最新最新版本k8s...使用ingress-nginx 对外暴露内部服务 环境 节点 master worker 主机/ip calico-master01/192.168.195. ...
- containerd镜像拉取配置
背景: 公司要求部署最一套新版的k8s系统来部署生产应用,说实话很头疼.因为k8s自1.23版本之后就用不docker作为容器的默认运行时了,而是采用的containerd,这就带来了一系列的问题.没 ...
- linux shell -- sed命令
什么是sed sed 是 stream editor 的缩写,中文称之为"流编辑器". sed 命令是一个面向行处理的工具,它以"行"为处理单位,针对每一行进行 ...
- 深入理解 Python 虚拟机:协程初探——不过是生成器而已
深入理解 Python 虚拟机:协程初探--不过是生成器而已 在 Python 3.4 Python 引入了一个非常有用的特性--协程,在后续的 Python 版本当中不断的进行优化和改进,引入了新的 ...
- 彻底搞懂Docker容器与Kraft模式kafka集群关于消息大小相关参数设置
Docker部署的设置 部署背景: 在DockerHub拉取的bitnami/kafka:3.4.1 镜像,如果要部署在Docker-Swarm集群或者单Docker部署,对于消息大小设置需要添加参数 ...
- STM32 + ESP32(AT固件 MQTT协议) + MQTTX(桌面终端) + (EMQX消息服务器)
翻出老物件,搭建一个简单的 IOT 开发环境,也算是废物利用了 ,接下来加传感器.1. STM32 采集数据: RTOS. 资源相对比较丰富,可以根据项目需求定制.2. ESP32 ...
- log4j漏洞CVE-2021-44228复现-排雷篇
一.环境搭建(用相同的环境才能保证一定成功) 下载vulhub,其他环境可能存在GET请求无效问题: git clone https://github.com/vulhub/vulhub.git 切换 ...
- 基于jquery+html开发的json格式校验工具
json简介 JSON是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-2 ...
- MATLAB(Octave)命令记录
1. struct:结构体数组 aaaa_s.a = 1; aaaa_s.b = {'A','B','C'} aaaa_s.c = [1 2 3 4; 5 6 7 8]; save aaaa_s.tx ...
- JAVA类的加载(1) ——类的加载及类加载器介绍
过程:当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载.连接.初始化三个步骤来对该类进行初始化,有时候称为类加载(类初始化) 类加载 定义:类加载 指的是将类的class文件读入 ...