一、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. Solution - AGC060C

    Link 简要题意:称一个长为 \(2^n-1\) 的排列 \(P\) 像堆,如果 \(P_i \lt P_{2i}\),且 \(P_i \lt P_{2i+1}\).给定 \(a,b\),设 \(u ...

  2. 简说Python之列表,元祖,字典

    目录 Python列表 创建列表 添加元素 查询元素 列表分片 分片简写 修改元素 一些其他添加列表元素的方法 extend() insert() 删除元素 remove()删除 del 通过索引删除 ...

  3. Gparted扩展硬盘空间

    需求:有一些磁盘占满了空间,例如/亦或者/opt目录等.可以通过Gparted扩展空间. 1.vmware添加ISO [添加光盘]gparted-live-cd添加至ISO 2.延迟引导启动,强制进入 ...

  4. keepalived(3)- keepalived+nginx实现WEB负载均衡高可用集群

    目录 1. keepalived+nginx实现WEB负载均衡高可用集群 1.1 需求和环境描述 1.2 WEB集群部署 1.3 负载均衡集群部署 1.4 keepalived部署 1.5 测试监控的 ...

  5. ༺$Musique$༻

    往期链接在文末 最近好喜欢听一些有年代感的歌啊. ~~头图~~ <$ On\ \And \ On $> Hold me close til I get up Time is barely ...

  6. flask-wtf和WTForms官网翻译详解

    https://flask-wtf.readthedocs.io/en/stable/# https://wtforms.readthedocs.io/en/2.3.x/ 介绍: wtformflas ...

  7. EasyUI组件新增方法与事件

    以window组件为例 事件 扩展事件直接定义在options中,可以再初始化组件时定义事件,也可以使用时临时定义事件.这里是组件初始化后在添加的. 使用情景:添加,插入功能.主界面表格分别点击添加和 ...

  8. 配置Ingress支持HTTPS访问(二):使用cert-manager申请证书

    目录 一.系统环境 二.前言 三.Let's Encrypt和cert-manager简介 四.部署cert-manager 4.1 安装cert-manager 4.2 创建clusterissue ...

  9. bashrc和profile区别

    转载请注明出处: 作用与目的: .bashrc:这个文件主要用于配置和自定义用户的终端环境和行为.每次启动新的终端时,.bashrc文件都会被执行,加载用户设置的环境变量.别名.函数等.这使得用户能够 ...

  10. NOIP模拟53

    我在时光斑驳深处,聆听到花开的声音. 前言 这套题好像是随便拼接起来的,来自三套不同的题,最后一道还是学长出的(nb 场上为数不多的几次死磕一道题正解,大概有三个小时吧(惭愧,前两个小时看错题了,一直 ...