版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/81608672

由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心

本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置。
Apollo官方文档https://github.com/ctripcorp/apollo/wiki

1.下载依赖

  1. 从https://github.com/ctripcorp/apollo/releases页面下载最新版本的apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip和apollo-portal-x.x.x-github.zip依赖包(需要翻墙。不能翻墙的同学建议使用第二种方式)。
  2. 从https://github.com/ctripcorp/apollo下载源码后在本地构建。构建步骤为:
  1. 下载项目所需依赖
  2. 使用scripts文件夹下的build.bat或build.sh构建
  3. 分别拷贝出apollo-adminservice、apollo-configservice和apollo-portal三个文件夹下target/apollo-xxx-x.x.x-github.zip文件

2. 创建数据库

  1. 从https://github.com/ctripcorp/apollo/tree/master/scripts/sql下载apolloconfigdb.sql和apolloportaldb.sql数据库文件。
  2. 使用apolloportaldb.sql文件创建apolloportaldb数据库,此数据库是我们管理各种环境等的通用数据库。
  3. 使用apolloconfigdb.sql文件分别创建apolloconfigdb_dev和apolloconfigdb_fat数据库作为我们两个环境的数据存储。

3.配置数据库连接信息

  1. 解压第一步下载的三个压缩文件
  2. apollo-portal-1.0.0-github
  1. 在apollo-portal-1.0.0-github/config下application-github.properties文件中配置 apolloportaldb数据库的连接信息。
  2. 打开apollo-env.properties文件修改dev.mate和fat.mate属性值为不同环境对 应的Eureka地址。例如在这里我fat环境使用的本地,dev使用的是服务器地址
  3. 复制一份apollo-adminservice-1.0.0-github文件,分别重命名为apollo-adminservice-dev和apollo-adminservice-fat。
  4. 在apollo-adminservice-dev和apollo-adminservice-fat 的config文件夹下的application-github.properties文件中分别配置 apolloconfigdb_dev和apolloconfigdb_fat数据库的连接信息。
  5. 按照3.4步骤复制apollo-configservice-1.0.0-github并分别配置数据连接地址

现在的数据库连接信息如下所示:

4.启动服务

  1. 使用apollo时portal只需要启动一个来进行管理,在这里我们暂时把它放在本地启动。为了启动方面,使用一个小的脚本
1
2
3
4
#!/bin/bash
sh apollo-portal-1.0.0-github/scripts/startup.sh
sh apollo-configservice-fat/scripts/startup.sh
sh apollo-adminservice-fat/scripts/startup.sh
  1. 将apollo-configservice-dev和apollo-adminservice-dev上传到服务器,使用如下命令启动
1
2
sh ./apollo-configservice-dev/scripts/startup.sh
sh ./apollo-adminservice-dev/scripts/startup.sh
  1. 现在我们访问http://localhost:8080/以及http://10.10.10.10:8080/可以看到以下信息就没问题了
  2. 修改数据库apolloconfigdb_dev和apolloconfigdb_fat中的ServerConfig表中的key为eureka.service.url的数据,将value分别置为http://10.10.10.10:8080/eureka/和http://localhost:8080/eureka/

5.测试

  1. 创建一个maven工程,引入apollo的相关依赖
1
2
3
4
5
6
<apollo.version>1.0.0</apollo.version>
<dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>${apollo.version}</version>
</dependency>
  1. 在application.yml中指定应用的id,以及apollo配置中心的地址
1
2
3
4
App:Id: demo
apollo:Meta: http://10.10.10.10:8080 #指定dev环境
  1. 创建ConfigRefresher类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Service
public class ConfigRefresher implements ApplicationContextAware {private ApplicationContext applicationContext;@ApolloConfigprivate Config config;@PostConstructprivate void initialize() {refresher(config.getPropertyNames());}@ApolloConfigChangeListenerprivate void onChange(ConfigChangeEvent changeEvent) {refresher(changeEvent.changedKeys());}private void refresher(Set<String> changedKeys) {for (String changedKey : changedKeys) {System.out.println("this key is changed:"+changedKey);}this.applicationContext.publishEvent(new EnvironmentChangeEvent(changedKeys));}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}
}
  1. 创建启动类并启动
1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableApolloConfig
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
  1. 修改配置文件中的 apollo.Meta为localhost:8080再次启动
  2. 打开浏览器访问 http://localhost:8070 Apollo默认的用户名为 apollo,密码为admin。登陆后点击创建项目,项目的应用id和名称填写我们配置文件中的app.id。
  3. 进入项目可在dev和fat环境中分别发布不同的配置进行测试

    由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心

    本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置。
    Apollo官方文档https://github.com/ctripcorp/apollo/wiki

    1.下载依赖

  4. 从https://github.com/ctripcorp/apollo/releases页面下载最新版本的apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip和apollo-portal-x.x.x-github.zip依赖包(需要翻墙。不能翻墙的同学建议使用第二种方式)。
  5. 从https://github.com/ctripcorp/apollo下载源码后在本地构建。构建步骤为:
  6. 下载项目所需依赖
  7. 使用scripts文件夹下的build.bat或build.sh构建
  8. 分别拷贝出apollo-adminservice、apollo-configservice和apollo-portal三个文件夹下target/apollo-xxx-x.x.x-github.zip文件
  9. 2. 创建数据库

  10. 从https://github.com/ctripcorp/apollo/tree/master/scripts/sql下载apolloconfigdb.sql和apolloportaldb.sql数据库文件。
  11. 使用apolloportaldb.sql文件创建apolloportaldb数据库,此数据库是我们管理各种环境等的通用数据库。
  12. 使用apolloconfigdb.sql文件分别创建apolloconfigdb_dev和apolloconfigdb_fat数据库作为我们两个环境的数据存储。
  13. 3.配置数据库连接信息

  14. 解压第一步下载的三个压缩文件
  15. apollo-portal-1.0.0-github
  16. 在apollo-portal-1.0.0-github/config下application-github.properties文件中配置 apolloportaldb数据库的连接信息。
  17. 打开apollo-env.properties文件修改dev.mate和fat.mate属性值为不同环境对 应的Eureka地址。例如在这里我fat环境使用的本地,dev使用的是服务器地址
  18. 复制一份apollo-adminservice-1.0.0-github文件,分别重命名为apollo-adminservice-dev和apollo-adminservice-fat。
  19. 在apollo-adminservice-dev和apollo-adminservice-fat 的config文件夹下的application-github.properties文件中分别配置 apolloconfigdb_dev和apolloconfigdb_fat数据库的连接信息。
  20. 按照3.4步骤复制apollo-configservice-1.0.0-github并分别配置数据连接地址
  21. 现在的数据库连接信息如下所示:

    4.启动服务

  22. 使用apollo时portal只需要启动一个来进行管理,在这里我们暂时把它放在本地启动。为了启动方面,使用一个小的脚本
  23. 1
    2
    3
    4
    
    #!/bin/bash
    sh apollo-portal-1.0.0-github/scripts/startup.sh
    sh apollo-configservice-fat/scripts/startup.sh
    sh apollo-adminservice-fat/scripts/startup.sh
    
  24. 将apollo-configservice-dev和apollo-adminservice-dev上传到服务器,使用如下命令启动
  25. 1
    2
    
    sh ./apollo-configservice-dev/scripts/startup.sh
    sh ./apollo-adminservice-dev/scripts/startup.sh
    
  26. 现在我们访问http://localhost:8080/以及http://10.10.10.10:8080/可以看到以下信息就没问题了
  27. 修改数据库apolloconfigdb_dev和apolloconfigdb_fat中的ServerConfig表中的key为eureka.service.url的数据,将value分别置为http://10.10.10.10:8080/eureka/和http://localhost:8080/eureka/
  28. 5.测试

  29. 创建一个maven工程,引入apollo的相关依赖
  30. 1
    2
    3
    4
    5
    6
    
    <apollo.version>1.0.0</apollo.version>
    <dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>${apollo.version}</version>
    </dependency>
    
  31. 在application.yml中指定应用的id,以及apollo配置中心的地址
  32. 1
    2
    3
    4
    
    App:Id: demo
    apollo:Meta: http://10.10.10.10:8080 #指定dev环境
    
  33. 创建ConfigRefresher类
  34. 0
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    @Service
    public class ConfigRefresher implements ApplicationContextAware {private ApplicationContext applicationContext;@ApolloConfigprivate Config config;@PostConstructprivate void initialize() {refresher(config.getPropertyNames());}@ApolloConfigChangeListenerprivate void onChange(ConfigChangeEvent changeEvent) {refresher(changeEvent.changedKeys());}private void refresher(Set<String> changedKeys) {for (String changedKey : changedKeys) {System.out.println("this key is changed:"+changedKey);}this.applicationContext.publishEvent(new EnvironmentChangeEvent(changedKeys));}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}
    }
    
  35. 创建启动类并启动
  36. 1
    2
    3
    4
    5
    6
    7
    8
    
    @SpringBootApplication
    @EnableApolloConfig
    public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
    }
    
  37. 修改配置文件中的 apollo.Meta为localhost:8080再次启动
  38. 打开浏览器访问 http://localhost:8070 Apollo默认的用户名为 apollo,密码为admin。登陆后点击创建项目,项目的应用id和名称填写我们配置文件中的app.id。
  39. 进入项目可在dev和fat环境中分别发布不同的配置进行测试

本文出自zhixiang.org.cn,转载请保留

每天学点SpringCloud(八):使用Apollo做配置中心相关推荐

  1. .NET Core用数据库做配置中心加载Configuration

    本文介绍了一个在.NET中用数据库做配置中心服务器的方式,介绍了读取配置的开源自定义ConfigurationProvider,并且讲解了主要实现原理. 1. 为什么用数据库做配置中心 在开发youz ...

  2. Apollo分布式配置中心 - 服务中间件

    一.概念 1.什么是配置? 应用程序在启动和运行的时候往往需要读取一些配置信息(可以理解为系统参数),配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等. 配置主要有以下几个特点 ...

  3. nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!

    目录 nacos做配置中心 pom加上: bootstrap.yml(优先级高于application.yml) application.yml 主启动类 controller: 配置yml和naco ...

  4. Apollo分布式配置中心踩坑

    最近学习了一下分布式配置中心,在本地使用Quick Start 进行了部署测试,在测试部署过程中也遇到了一些问题. apollo分布式配置中心主要可以分为四个模块 1. apollo-portal 平 ...

  5. springcloud gateway 使用nacos 作为配置中心 和 注册中心

    大家好,我是烤鸭: 今天分享下 springcloud gateway 使用nacos作为配置中心和注册中心,主要是还是配置中心. 源码下载: https://gitee.com/fireduck_a ...

  6. 从零学SpringCloud系列(八):分布式配置中心Spring Cloud Config

    一.快速入门 1.1 项目版本 spring boot:2.2.5.RELEASE spring cloud:Hoxton.SR3 1.2 项目地址 https://github.com/zhengh ...

  7. Apollo分布式配置中心入门

    一.概述 1.什么是配置 应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等. 配置主要有以下几个特点: 配置是独立于程序的只 ...

  8. 携程Apollo分布式配置中心搭建指南

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

  9. 分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

最新文章

  1. 在线音乐电台Pandora股价暴涨20% CEO肯尼迪辞任
  2. Python 批量修改图片
  3. CCF 2015年题目题解 - Python
  4. ANDROID STUDIO详细教程汇总
  5. 【pytorch】model.train和model.eval用法及区别详解
  6. Android获取状态栏、标题栏、屏幕高度
  7. Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排
  8. .Net Core中IOC容器的使用
  9. 基于webpack3.x从0开始搭建React开发环境
  10. 微软CRM 2011 Beta 新功能之二:不同组织不同基本语言
  11. Ubuntu上 anaconda的卸载
  12. SpringCloud的Ribbon负载均衡
  13. 判断点在直线的哪一侧_【倒车入库】车身是否“正直”该怎么判断?
  14. android 自动更新
  15. Repeater——数据库控件学习
  16. spring5.0学习笔记1
  17. 空间数据分析与R语言实践
  18. axacropdf 服务器pdf_C#显示PDF文件
  19. Windows设置程序开机自启动_设置程序开机自启动的几种方法_添加启动项
  20. 浅谈微信公众平台运用的场景

热门文章

  1. go语言中文网中的资源
  2. angular 上传图像的使用总结
  3. 【bzoj 3531】 [Sdoi2014]旅行(树链剖分+树套树)
  4. python psutil 进行系统管理 no.2
  5. pytorch之---max()函数
  6. A MULTI-TASK FRAMEWORK WITH FEATURE PASSING MODULE FOR SKIN LESION CLASSIFICATION AND SEGMENTATION
  7. ESP8266_APP连接试验
  8. pip 安装速度慢解决办法
  9. vscode 连接服务器jupyter_VScode中使用jupyter notebook
  10. 怎么捡自己空投_绝地求生:如何用纸皮自制空投?只需2个道具即可完成,附带教程...