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配置中心的更多相关文章

  1. 【Nacos】Springboot整合Nacos配置中心(二) 多环境配置

    本篇随笔接上一篇文章:Springboot整合Nacos配置中心(一),主要记录Nacos多环境的配置的方法 Nacos多环境的配置 方法一: 1.在项目中的bootstrap.yaml文件中配置激活 ...

  2. 【Nacos】Springboot整合nacos配置中心(一)

    一.本地Nacos安装环境: Win7 ,JDK8 ,maven3.5 1.下载安装包 2.启动nacos服务,bin文件下下面startup.cmd 3.访问 http://localhost:88 ...

  3. Spring Boot 2.0 整合携程Apollo配置中心

    原文:https://www.jianshu.com/p/23d695af7e80 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够 ...

  4. SpringBoot 整合 apollo

    简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...

  5. Apollo配置中心的实战

    31.携程 Apollo 配置中心介绍~1.mp4 32.Apollo核心概念~1.mp4 32.Apollo核心概念~1.mp4 每个应用需要有一个唯一的AppID 要在指定的机器上的server. ...

  6. SpringBoot(19)---SpringBoot整合Apollo

    SpringBoot(19)---SpringBoot整合Apollo 有关Apollo之前已经写了两篇文章: 1.[Apollo](1)--- Apollo入门介绍篇 2.[Apollo](2)-- ...

  7. 19.SpringCloud实战项目-SpringCloud整合Alibaba-Nacos配置中心

    SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. ...

  8. Apollo配置中心动态刷新日志级别

    Apollo配置中心动态刷新日志级别 添加次配置后,当在apollo上面调整日志级别不需要重启服务器,马上就能生效 /** * 结合apollo动态刷新日志级别 * @author: nj * @da ...

  9. 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

    基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)   前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...

  10. SpringBoot使用Nacos配置中心

    本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...

随机推荐

  1. a-2b

    a-2b   描述 输入两个高精度数a和b,求a-2b的值. 输入 输入两行,第一行是被减数a,第二行是减数b(a>2b并且a,2b的位数不同且不存在借位,且b+b不存在进位). 输出 一行,即 ...

  2. Graph RAG: 知识图谱结合 LLM 的检索增强

    本文为大家揭示 NebulaGraph 率先提出的 Graph RAG 方法,这种结合知识图谱.图数据库作为大模型结合私有知识系统的最新技术栈,是 LLM+ 系列的第三篇,加上之前的图上下文学习.Te ...

  3. DHorse v1.4.2 发布,基于 k8s 的发布平台

    版本说明 优化特性 在集群列表增加集群版本: 修改Jvm的GC指标名: 解决问题 解决shell脚本换行符的问题: 解决部署历史列表页,环境名展示错误的问题: 解决指标收集功能的异常: 升级指南 升级 ...

  4. React技术栈支援Vue项目,你需要提前了解的

    写在前面 react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,而vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听, 当属性变化的时候,响应 ...

  5. 04-23: dataclasses使用方法

    vehicle_seeds: List[int] = dataclasses.field(default_factory=list) dataclasses 模块提供了一种简洁的方式来定义Python ...

  6. 定时重启Nginx、MySql等服务

    利用 Linux Crontab,每天定时重启 Nginx.MySQL等服务. 命令行格式说明 f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份 ...

  7. c#组合模式详解

    基础介绍:   组合模式用于表示部分-整体的层次结构.适用于希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象的情况.   顾名思义,什么叫部分-整体,比如常见的前端UI,一个 ...

  8. 题解 CF1742G

    题目描述: 给你一个序列 \(A\),要求将 \(A\) 重新排序,使得序列 \(A\) 的前缀或和序列 \(B\) 的字典序最大. 题目分析: 这道题我们首先考虑一个性质,就是前缀或和序列 \(B\ ...

  9. 从混乱到优雅:基于DDD的六边形架构的代码翻新指南

    前言 趁着双十一备战封板,终于又有一些时间可以梳理一下最近的心得. 最近这半年跟同事讨论比较多的是分层架构,然后就会遇到两个触及灵魂的问题,一个是如何做好分层架构,二是DDD在架构层面该如何落地. 为 ...

  10. 简单地聊一聊Spring Boot的构架

    本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 本文小编将详细解析Spring Boot框架,并通过代码举例说明每个层的作用 ...