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

  1. # 创建名称为apollo的用户
  2. useradd apollo
  3. # 修改用户密码(root下:123465)
  4. passwd apollo
  5. # 创建名称为apollogroup的组
  6. groupadd apollogroup
  7. gpasswd -a apollo apollogroup
  8. cd /home/apollo
  9. # 安装Git
  10. yum install git
  11. # 克隆项目,没有proxy基本下载不来,建议使用gitee同步仓库再拉取
  12. git clone https://github.com/apolloconfig/apollo-build-scripts
  13. # 初始化数据库脚本
  14. cd apollo-build-scripts
  15. # mysql同机器可以,否则自行连接工具初始化下面的数据库脚本,注意数据库名字
  16. mysql -u root -p
  17. source ./sql/apolloportaldb.sql
  18. source ./sql/apolloconfigdb.sql

修改启动脚本,库连接注意添加时区useSSL=false,我的数据库是mysql5.7.34,不加useSSL=false会连接异常。自行修改mysql的ip。

  1. vi demo.sh
  2. # apollo config db info
  3. apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false"
  4. apollo_config_db_username=root
  5. apollo_config_db_password=123456
  6. # apollo portal db info
  7. apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false"
  8. apollo_portal_db_username=root
  9. apollo_portal_db_password=123456

启动脚本

  1. # 将此目录授权给Apollo用户组
  2. chown -R apollo:apollogroup ./*
  3. # 切换用户
  4. su apollo
  5. # 启动服务
  6. ./demo.sh start

启动完成


访问管理服务:http://192.168.200.128:8070/
账号密码:apollo/admin

2. 创建一个简单的springboot项目

引入依赖Maven:

  1. <dependency>
  2. <groupId>com.ctrip.framework.apollo</groupId>
  3. <artifactId>apollo-client</artifactId>
  4. <version>1.7.0</version>
  5. </dependency>

修改配置文件application.properties

  1. #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
  2. # AppId是应用的身份信息,是从服务端获取配置的一个重要信息。
  3. app.id=my-app-id
  4. # Meta server地址也可以填入IP,如http://1.1.1.1:8080,http://2.2.2.2:8080,
  5. # 不过生产环境还是建议使用域名(走slb),因为机器扩容、缩容等都可能导致IP列表的变化。
  6. apollo.meta=http://192.168.200.128:8080
  7. apollo.cluster=default
  8. apollo.bootstrap.enabled=true
  9. # 指定使用哪个 Namespace 的配置,默认 application。
  10. apollo.bootstrap.namespaces=application
  11. # 为了防止配置中心无法连接等问题,Apollo 会自动将配置本地缓存一份。
  12. apollo.cacheDir=d:\\apollo
  13. # Spring应用通常会使用 Placeholder 来注入配置,如${someKey:someDefaultValue},冒号前面的是 key,冒号后面的是默认值。
  14. # 如果想关闭 placeholder 在运行时自动更新功能,可以设置为 false。
  15. apollo.autoUpdateInjectedSpringProperties=true
  16. #将 Apollo 加载提到初始化日志系统之前
  17. apollo.bootstrap.eagerLoad.enabled=false

编写一个测试controller

  1. @RestController
  2. public class WebController {
  3. @Value("${test:默认值}")
  4. private String test;
  5. @GetMapping("")
  6. public Object get() {
  7. return test;
  8. }
  9. }

添加apollo配置

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

添加一个key

再访问

3. 添加一个配置监听

  1. @Configuration
  2. public class ApolloConfig {
  3. @com.ctrip.framework.apollo.spring.annotation.ApolloConfig
  4. private Config config;
  5. @Bean
  6. public void changeListener() {
  7. config.addChangeListener(new ConfigChangeListener() {
  8. @Override
  9. public void onChange(ConfigChangeEvent configChangeEvent) {
  10. System.out.println("Changes for namespace " + configChangeEvent.getNamespace());
  11. for (String key : configChangeEvent.changedKeys()) {
  12. ConfigChange change = configChangeEvent.getChange(key);
  13. System.out.println(String.format("Found change - key: %s, oldValue: %s, newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
  14. }
  15. }
  16. });
  17. }
  18. }

触发

多个注解参考官网: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. js合并对象常用方法

    const person = { name: 'David Walsh', gender: 'Male' }; const tools = { computer: 'Mac', editor: 'At ...

  2. Oracle字符串函数-Translate()总结

    Oracle的Translate(expr,from_string,to_string)是字符串操作函数,实现from_string,to_string字符的一 一替换 1)典型示例: select ...

  3. Go语言系列——Go语言介绍

    文章目录 01-Go语言介绍 一 Go语言介绍 二 Go语言特性 三 Go语言发展(版本/特性) 四 Go语言应用 谁在用 Google Facebook 腾讯 百度 京东 小米 360 应用领域 五 ...

  4. Python网络编程——基于tcp协议实现远程执行命令、udp协议没有粘包问题、解决粘包问题、socketserver模块的基本使用(基于tcp协议、基于udp协议的使用)

    文章目录 基于tcp协议实现远程执行命令 udp协议没有粘包问题 解决粘包问题 解决粘包问题(终极版) socketserver模块的基本使用 基于tcp协议的使用 基于udp协议的使用 基于tcp协 ...

  5. PXC集群脑裂导致节点是无法加入无主的集群

    一套2节点的MySQL PXC集群,第1节点作为主用节点长时间的dml操作,导致大量的事务阻塞,出现异常,此时查看第2节点显示是primary状态,但无事务阻塞情况. 此时第1节点无法正常提供服务,于 ...

  6. Centos7下创建centos-home逻辑分区

    1备份要挂载的文件夹 查看home文件夹有无文件,如有文件一定要记得备份 2创建逻辑分区 2.1查看已有逻辑分区 2.2查看磁盘分区情况 2.3查看磁盘PV 2.4创建逻辑分区 lvcreate -n ...

  7. 如何在linux(Ubuntu)下安装unity(Unity engine游戏引擎)

    如果直接从unity官网下载unityhub的deb包,直接安装有可能出现unityhub打不开/打开缓慢/无法登陆/无法申请密钥等问题. 正解:从Unity官方源下载unity 1.先添加unity ...

  8. RL 基础 | Value Iteration 的收敛性证明

    (其实是专业课作业 感觉算法岗面试可能会问,来存一下档) 目录 问题:证明 Value Iteration 收敛性 0 Definitions - 定义 1 Bellman operator is a ...

  9. ArcMap属性表出现乱码情况的解决

      本文介绍ArcMap软件打开图层的属性表后,出现字段中汉字乱码情况的解决方法.   有时在使用ArcMap软件时,会发现一些图层的属性表中,原本应该是中文的字段却出现乱码的情况:如下图所示,其中N ...

  10. Android-Java-反序列化JSON

    import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; String jsonStr= WebAPIOperato ...