一:Apollo包括服务端和客户端两部分:
服务端基于SpringBoot和SpringCloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
二:Apollo特性
- 统一管理不同环境,不同集群的配置
- 配置修改实时生效(热发布)
- 版本发布管理
- 灰度发布
- 权限管理、发布审核、操作审计
- 客户端配置信息监控
- 提供Java和.net原生客户端
- 提供开放平台API
三:核心概念
- Application(应用)
- environment(环境)
- cluster(集群)
- namespace(命名空间)
四:项目管理
-
基础设置
2.用户权限设置
3.删除数据
4.添加namespace
5.创建集群
5.1读取集群配置
启动应用时指定具体的应用,环境和集群
-Dapp.id=应用名称
-Denv=环境名称
-Dapollo.cluster=集群名称
-D环境_meta=meta地址
-Dapp.id=account-service -Denv=DEV -Dapollo.cluster=SHAJQ -Ddev_meta=http://localhost:8080
添加配置
代码demo
五、配置发布原理
主要过程:
- 用户在Portal操作配置发布
- Portal调用Admin Service的接口操作发布
- Admin Service发布配置后,发布ReleaseMessage给各个Config Service
- Config Service收到ReleaseMessage后,通知对应的客户端
六:SrpingBoot 集成Apoolo
1.添加依赖
apollo-client /// @EnableApolloConfig 主启动类
Appld∶在Spring Boot application.properties或application.yml中配置
application.properties
app.id=account-service properties
application.yml
app:
id: account-service
2. apollo.bootstrap
集成springboot,开启apollo.bootstrap,指定namespace 例子
apollo.bootstrap.enabled = true
apollo.bootstrap.namespaces = application,micro_service.spring-boot-http,spring-rocketmq,micro_service.spring-boot-druid
3. Apollo Meta Server
Apollo支持应用在不同的环境有不同的配置,常用的指定方式有如下两种∶
o 第一种∶通过Java System Property的apollo.meta ∶ -Dapollo.meta=http∶//localhost∶80
● 第二种∶在resources目录下新建apollo-env.properties文件
dev.meta=http://localhost:8080
pro.meta=http://localhost:8081
获取apollo中的配置,如图demo