每天学点SpringCloud(八):使用Apollo做配置中心
由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心
本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置。
Apollo官方文档https://github.com/ctripcorp/apollo/wiki
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依赖包(需要翻墙。不能翻墙的同学建议使用第二种方式)。
- 从https://github.com/ctripcorp/apollo下载源码后在本地构建。构建步骤为:
- 下载项目所需依赖
- 使用scripts文件夹下的build.bat或build.sh构建
- 分别拷贝出apollo-adminservice、apollo-configservice和apollo-portal三个文件夹下target/apollo-xxx-x.x.x-github.zip文件
2. 创建数据库
- 从https://github.com/ctripcorp/apollo/tree/master/scripts/sql下载apolloconfigdb.sql和apolloportaldb.sql数据库文件。
- 使用apolloportaldb.sql文件创建apolloportaldb数据库,此数据库是我们管理各种环境等的通用数据库。
- 使用apolloconfigdb.sql文件分别创建apolloconfigdb_dev和apolloconfigdb_fat数据库作为我们两个环境的数据存储。
3.配置数据库连接信息
- 解压第一步下载的三个压缩文件
- apollo-portal-1.0.0-github
- 在apollo-portal-1.0.0-github/config下application-github.properties文件中配置 apolloportaldb数据库的连接信息。
- 打开apollo-env.properties文件修改dev.mate和fat.mate属性值为不同环境对 应的Eureka地址。例如在这里我fat环境使用的本地,dev使用的是服务器地址
- 复制一份apollo-adminservice-1.0.0-github文件,分别重命名为apollo-adminservice-dev和apollo-adminservice-fat。
- 在apollo-adminservice-dev和apollo-adminservice-fat 的config文件夹下的application-github.properties文件中分别配置 apolloconfigdb_dev和apolloconfigdb_fat数据库的连接信息。
- 按照3.4步骤复制apollo-configservice-1.0.0-github并分别配置数据连接地址
现在的数据库连接信息如下所示:
4.启动服务
- 使用apollo时portal只需要启动一个来进行管理,在这里我们暂时把它放在本地启动。为了启动方面,使用一个小的脚本
|
|
- 将apollo-configservice-dev和apollo-adminservice-dev上传到服务器,使用如下命令启动
|
|
- 现在我们访问http://localhost:8080/以及http://10.10.10.10:8080/可以看到以下信息就没问题了
- 修改数据库apolloconfigdb_dev和apolloconfigdb_fat中的ServerConfig表中的key为eureka.service.url的数据,将value分别置为http://10.10.10.10:8080/eureka/和http://localhost:8080/eureka/
5.测试
- 创建一个maven工程,引入apollo的相关依赖
|
|
- 在application.yml中指定应用的id,以及apollo配置中心的地址
|
|
- 创建ConfigRefresher类
|
|
- 创建启动类并启动
|
|
- 修改配置文件中的 apollo.Meta为localhost:8080再次启动
- 打开浏览器访问 http://localhost:8070 Apollo默认的用户名为 apollo,密码为admin。登陆后点击创建项目,项目的应用id和名称填写我们配置文件中的app.id。
- 进入项目可在dev和fat环境中分别发布不同的配置进行测试
由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心
本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置。
Apollo官方文档https://github.com/ctripcorp/apollo/wiki1.下载依赖
- 从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依赖包(需要翻墙。不能翻墙的同学建议使用第二种方式)。
- 从https://github.com/ctripcorp/apollo下载源码后在本地构建。构建步骤为:
- 下载项目所需依赖
- 使用scripts文件夹下的build.bat或build.sh构建
- 分别拷贝出apollo-adminservice、apollo-configservice和apollo-portal三个文件夹下target/apollo-xxx-x.x.x-github.zip文件
2. 创建数据库
- 从https://github.com/ctripcorp/apollo/tree/master/scripts/sql下载apolloconfigdb.sql和apolloportaldb.sql数据库文件。
- 使用apolloportaldb.sql文件创建apolloportaldb数据库,此数据库是我们管理各种环境等的通用数据库。
- 使用apolloconfigdb.sql文件分别创建apolloconfigdb_dev和apolloconfigdb_fat数据库作为我们两个环境的数据存储。
3.配置数据库连接信息
- 解压第一步下载的三个压缩文件
- apollo-portal-1.0.0-github
- 在apollo-portal-1.0.0-github/config下application-github.properties文件中配置 apolloportaldb数据库的连接信息。
- 打开apollo-env.properties文件修改dev.mate和fat.mate属性值为不同环境对 应的Eureka地址。例如在这里我fat环境使用的本地,dev使用的是服务器地址
- 复制一份apollo-adminservice-1.0.0-github文件,分别重命名为apollo-adminservice-dev和apollo-adminservice-fat。
- 在apollo-adminservice-dev和apollo-adminservice-fat 的config文件夹下的application-github.properties文件中分别配置 apolloconfigdb_dev和apolloconfigdb_fat数据库的连接信息。
- 按照3.4步骤复制apollo-configservice-1.0.0-github并分别配置数据连接地址
现在的数据库连接信息如下所示:
4.启动服务
- 使用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
- 将apollo-configservice-dev和apollo-adminservice-dev上传到服务器,使用如下命令启动
1 2
sh ./apollo-configservice-dev/scripts/startup.sh sh ./apollo-adminservice-dev/scripts/startup.sh
- 现在我们访问http://localhost:8080/以及http://10.10.10.10:8080/可以看到以下信息就没问题了
- 修改数据库apolloconfigdb_dev和apolloconfigdb_fat中的ServerConfig表中的key为eureka.service.url的数据,将value分别置为http://10.10.10.10:8080/eureka/和http://localhost:8080/eureka/
5.测试
- 创建一个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>
- 在application.yml中指定应用的id,以及apollo配置中心的地址
1 2 3 4
App:Id: demo apollo:Meta: http://10.10.10.10:8080 #指定dev环境
- 创建ConfigRefresher类
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;} }
- 创建启动类并启动
1 2 3 4 5 6 7 8
@SpringBootApplication @EnableApolloConfig public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }
- 修改配置文件中的 apollo.Meta为localhost:8080再次启动
- 打开浏览器访问 http://localhost:8070 Apollo默认的用户名为 apollo,密码为admin。登陆后点击创建项目,项目的应用id和名称填写我们配置文件中的app.id。
- 进入项目可在dev和fat环境中分别发布不同的配置进行测试
本文出自zhixiang.org.cn,转载请保留
每天学点SpringCloud(八):使用Apollo做配置中心相关推荐
- .NET Core用数据库做配置中心加载Configuration
本文介绍了一个在.NET中用数据库做配置中心服务器的方式,介绍了读取配置的开源自定义ConfigurationProvider,并且讲解了主要实现原理. 1. 为什么用数据库做配置中心 在开发youz ...
- Apollo分布式配置中心 - 服务中间件
一.概念 1.什么是配置? 应用程序在启动和运行的时候往往需要读取一些配置信息(可以理解为系统参数),配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等. 配置主要有以下几个特点 ...
- nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!
目录 nacos做配置中心 pom加上: bootstrap.yml(优先级高于application.yml) application.yml 主启动类 controller: 配置yml和naco ...
- Apollo分布式配置中心踩坑
最近学习了一下分布式配置中心,在本地使用Quick Start 进行了部署测试,在测试部署过程中也遇到了一些问题. apollo分布式配置中心主要可以分为四个模块 1. apollo-portal 平 ...
- springcloud gateway 使用nacos 作为配置中心 和 注册中心
大家好,我是烤鸭: 今天分享下 springcloud gateway 使用nacos作为配置中心和注册中心,主要是还是配置中心. 源码下载: https://gitee.com/fireduck_a ...
- 从零学SpringCloud系列(八):分布式配置中心Spring Cloud Config
一.快速入门 1.1 项目版本 spring boot:2.2.5.RELEASE spring cloud:Hoxton.SR3 1.2 项目地址 https://github.com/zhengh ...
- Apollo分布式配置中心入门
一.概述 1.什么是配置 应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等. 配置主要有以下几个特点: 配置是独立于程序的只 ...
- 携程Apollo分布式配置中心搭建指南
Apollo配置中心介绍 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性. ...
- 分布式部署携程Apollo构建配置中心
一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...
最新文章
- 在线音乐电台Pandora股价暴涨20% CEO肯尼迪辞任
- Python 批量修改图片
- CCF 2015年题目题解 - Python
- ANDROID STUDIO详细教程汇总
- 【pytorch】model.train和model.eval用法及区别详解
- Android获取状态栏、标题栏、屏幕高度
- Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排
- .Net Core中IOC容器的使用
- 基于webpack3.x从0开始搭建React开发环境
- 微软CRM 2011 Beta 新功能之二:不同组织不同基本语言
- Ubuntu上 anaconda的卸载
- SpringCloud的Ribbon负载均衡
- 判断点在直线的哪一侧_【倒车入库】车身是否“正直”该怎么判断?
- android 自动更新
- Repeater——数据库控件学习
- spring5.0学习笔记1
- 空间数据分析与R语言实践
- axacropdf 服务器pdf_C#显示PDF文件
- Windows设置程序开机自启动_设置程序开机自启动的几种方法_添加启动项
- 浅谈微信公众平台运用的场景
热门文章
- go语言中文网中的资源
- angular 上传图像的使用总结
- 【bzoj 3531】 [Sdoi2014]旅行(树链剖分+树套树)
- python psutil 进行系统管理 no.2
- pytorch之---max()函数
- A MULTI-TASK FRAMEWORK WITH FEATURE PASSING MODULE FOR SKIN LESION CLASSIFICATION AND SEGMENTATION
- ESP8266_APP连接试验
- pip 安装速度慢解决办法
- vscode 连接服务器jupyter_VScode中使用jupyter notebook
- 怎么捡自己空投_绝地求生:如何用纸皮自制空投?只需2个道具即可完成,附带教程...