一、Apollo作用
随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……
对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。
Apollo配置中心应运而生!Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,具备规范的权限、流程治理等特性。
 
二、搭建Apollo配置中心
Quick Start:能够在几分钟内在本地环境部署、启动Apollo配置中心(只针对本地测试使用)
1.创建数据库
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB
-- 数据库ApolloConfigDB 导入apolloconfigdb.sql
select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;
-- 数据库ApolloPortalDB 导入apolloportaldb.sql
select `Id`, `AppId`, `Name` from ApolloPortalDB.App;
 
2.Apollo服务端连接这两个数据库
修改demo.sh
# apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=xxx
apollo_config_db_password=xxx
 
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=xxx
apollo_portal_db_password=xxx
 
3.启动Apollo配置中心
执行启动脚本,打开git bash here
./demo.sh start
 
4.使用Apollo
会在本地启动三个服务,分别使用8070、8080、8090端口
 
Apollo平台:
用户名:apollo
密码:xxx
 
三、springboot整合使用Apollo配置中心
1.添加Apollo依赖:pom.xml
com.ctrip.framework.apollo
apollo-client
1.1.1
 
2.编写application.yml文件
application-dev.yml:
# Apollo 配置管理
app:
id: basedata
apollo:
meta: http://localhost:8080
bootstrap:
enabled: true
namespaces: application, base
eagerLoad:
enabled: true
 
3.springboot启动类添加注解@EnableApolloConfig
 
4.登录Apollo平台添加配置并发布
创建项目:appId
添加配置项:key/value、选择集群
发布:只有发布过的配置文件才会被客户端获取到,该发布只会作用于当前环境:DEV
 
Apollo配置:

比如basedata:
公共的配置:去引用base应用的配置,继承base,自己改写会覆盖
私有的配置:application
文本可以查看自己改写的,和base不同的配置

5.项目中就可以读取到这些配置了
 
四、补充
1.用户在用java连接apollo时,需要创建app.properties:
在apollo配置中心中存在AppId,这是每一个项目的唯一标识,
因此app.properties内需要确定,你需要使用哪个项目的配置信息
-----》直接在application-dev.yml中:
app:
id: basedata
 
apollo-env.properties:用来配置不同环境访问不同的apollo配置中心的,apollo允许用户配置四个不同的环境,分别是dev-开发环境,fat-功能测试环境,uat-用户测试环境, pro-生产环境
-----》
apollo:
application-fat.yml是8081
 
2.spring Eureka注册中心

表示apollo启动成功
apollo默认有8080、8090和8070三个端口
 
3.Apollo缓存
Apollo客户端会把从服务端获取到的配置在本地文件系统缓存一份,
用于在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。
 
本地缓存路径位于C:\opt\data\

apollo所有配置会写在这个缓存文件中
 

翻译

搜索

复制

Springboot整合Apollo的更多相关文章

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

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

  2. SpringBoot 整合 apollo

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

  3. SpringBoot 整合携程Apollo配置管理中心

    携程官网对apollo的使用讲解了很多种方式的使用,但是感觉一些细节还是没讲全,特别是eureka配置中心地址的配置 这里对springboot整合apollo说一下 >SpringBoot启动 ...

  4. spring-boot整合mybatis(1)

    sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置.接下来开始spring-boot与mybatis的整合. 1.创建一个maven工程命名为spring-boot- ...

  5. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  6. springboot整合mq接收消息队列

    继上篇springboot整合mq发送消息队列 本篇主要在上篇基础上进行activiemq消息队列的接收springboot整合mq发送消息队列 第一步:新建marven项目,配置pom文件 < ...

  7. springboot整合mybaits注解开发

    springboot整合mybaits注解开发时,返回json或者map对象时,如果一个字段的value为空,需要更改springboot的配置文件 mybatis: configuration: c ...

  8. SpringBoot整合Redis、ApachSolr和SpringSession

    SpringBoot整合Redis.ApachSolr和SpringSession 一.简介 SpringBoot自从问世以来,以其方便的配置受到了广大开发者的青睐.它提供了各种starter简化很多 ...

  9. SpringBoot整合ElasticSearch实现多版本的兼容

    前言 在上一篇学习SpringBoot中,整合了Mybatis.Druid和PageHelper并实现了多数据源的操作.本篇主要是介绍和使用目前最火的搜索引擎ElastiSearch,并和Spring ...

  10. SpringBoot整合Kafka和Storm

    前言 本篇文章主要介绍的是SpringBoot整合kafka和storm以及在这过程遇到的一些问题和解决方案. kafka和storm的相关知识 如果你对kafka和storm熟悉的话,这一段可以直接 ...

随机推荐

  1. 使用.NET源生成器(SG)实现一个自动注入的生成器

    DI依赖注入对我们后端程序员来说肯定是基础中的基础了,我们经常会使用下面的代码注入相关的service services.AddScoped<Biwen.AutoClassGen.TestCon ...

  2. linux 下jq的使用

    安装: yum install jq -y 文档: https://stedolan.github.io/jq/manual/ 更多: https://blog.csdn.net/Cheat11730 ...

  3. chgrp chown

    chgrp 用来改变文件所属群组,如果要改变的群组不在/etc/group里面,将会报错. chown 用来改变文件的所有者,如果改变的所有者便在/etc/passwd里面,将会报错. 需要注意的是c ...

  4. Protues的串口工具Virtual Terminal

    用Protues来验证ARM的串口发送,有两种办法,一种是用Protues的串口工具VirtualTerminal 第二种是用串口助手(此种方法,需要下载并安装虚拟串口软件,然后用虚拟串口连接虚拟硬件 ...

  5. pageoffice在线编辑word文件并禁止选中

    一.整篇文档禁止选中 wordDoc.setDisableWindowSelection(true); //禁止word的选择文字功能 二.根据条件判断是否禁止选中 比如:选中内容超过一定字数,取消选 ...

  6. jpype-python调用java的方法

    环境准备: 部署环境准备: sed -i.ori '$a export JAVA_HOME=/opt/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bi ...

  7. vulnhub --> Web Machine: (N7)

    靶场下载地址 Web Machine: (N7) << 点我 开始打靶 ip发现: nmap扫描网段发现靶机ip:192.168.56.101 端口发现: 对靶机进行常规端口扫描 访问网站 ...

  8. 我开源的H5商城2.0版本发布,强烈推荐

    简介 waynboot-mall 是一套全部开源的 H5 商城项目,包含运营后台.H5 商城前台和后端接口三个项目 .实现了一套完整的商城业务,有首页展示.商品分类.商品详情.sku 详情.商品搜索. ...

  9. 用python字典统计CSV数据

    1.用python字典统计CSV数据的步骤和代码示例 为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息.以下是一个详细的步骤和完整的代码 ...

  10. 微信小程序学习随笔

    scroll-view与view 要做出滚动视图的效果 <scroll-view> <view id="1">11</view> <vie ...