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是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...
随机推荐
- a-2b
a-2b 描述 输入两个高精度数a和b,求a-2b的值. 输入 输入两行,第一行是被减数a,第二行是减数b(a>2b并且a,2b的位数不同且不存在借位,且b+b不存在进位). 输出 一行,即 ...
- Graph RAG: 知识图谱结合 LLM 的检索增强
本文为大家揭示 NebulaGraph 率先提出的 Graph RAG 方法,这种结合知识图谱.图数据库作为大模型结合私有知识系统的最新技术栈,是 LLM+ 系列的第三篇,加上之前的图上下文学习.Te ...
- DHorse v1.4.2 发布,基于 k8s 的发布平台
版本说明 优化特性 在集群列表增加集群版本: 修改Jvm的GC指标名: 解决问题 解决shell脚本换行符的问题: 解决部署历史列表页,环境名展示错误的问题: 解决指标收集功能的异常: 升级指南 升级 ...
- React技术栈支援Vue项目,你需要提前了解的
写在前面 react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,而vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听, 当属性变化的时候,响应 ...
- 04-23: dataclasses使用方法
vehicle_seeds: List[int] = dataclasses.field(default_factory=list) dataclasses 模块提供了一种简洁的方式来定义Python ...
- 定时重启Nginx、MySql等服务
利用 Linux Crontab,每天定时重启 Nginx.MySQL等服务. 命令行格式说明 f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份 ...
- c#组合模式详解
基础介绍: 组合模式用于表示部分-整体的层次结构.适用于希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象的情况. 顾名思义,什么叫部分-整体,比如常见的前端UI,一个 ...
- 题解 CF1742G
题目描述: 给你一个序列 \(A\),要求将 \(A\) 重新排序,使得序列 \(A\) 的前缀或和序列 \(B\) 的字典序最大. 题目分析: 这道题我们首先考虑一个性质,就是前缀或和序列 \(B\ ...
- 从混乱到优雅:基于DDD的六边形架构的代码翻新指南
前言 趁着双十一备战封板,终于又有一些时间可以梳理一下最近的心得. 最近这半年跟同事讨论比较多的是分层架构,然后就会遇到两个触及灵魂的问题,一个是如何做好分层架构,二是DDD在架构层面该如何落地. 为 ...
- 简单地聊一聊Spring Boot的构架
本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 本文小编将详细解析Spring Boot框架,并通过代码举例说明每个层的作用 ...