Apollo 配置中心搭建与简单说明
文章目录
- Apollo 配置中心搭建与简单说明
- 从git拉取Apollo源码
- 创建所需数据库
- 配置项目
- apollo-configservice 服务配置
- apollo-adminservice 服务配置
- apollo-portal 服务配置
- SpringBoot项目对接Apollo
- Apollo 原理简单总结
从git拉取Apollo源码
github地址:https://github.com/ctripcorp/apollo
# 由于github上下载太慢,我从码云上进行下载(码云的代码比官方git仓库要老几个版本)
码云地址:https://gitee.com/lepdou/apollo
创建所需数据库
- 从 Quick Start 中获取所需库表(库表不要从码云获取,直接从github上找)
配置项目
apollo 项目主要分为三大块,详细设计请参考(Apollo配置中心设计):
- apollo-adminservice
- apollo-configservice
- apollo-portal
apollo-configservice 服务配置
提供配置的读取、推送等功能,服务对象是Apollo客户端
需要注意的是:该服务与Eureka和Meta Server 部署在同一个JVM进程中,故该服务相当于一个服务注册中心,提供服务注册与发现功能
Meta Server:是携程对注册中心的一层封装,相当于Eureka;client和Portal在进行服务的注册与发现的时候,会先对Meta Server进行请求,再由Meta Server进行转发;
项目中在application.yml中添加数据源的配置文件即可:
datasource:
url: jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
username: root
password: 123456
apollo-adminservice 服务配置
提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
项目中在application.yml中添加数据源的配置文件即可:
datasource:
url: jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
username: root
password: 123456
由于注册中心是配置在 apollo-configservice 中,故配置的时候需要查看 bootstrap.yml 对注册中心地址进行配置,由于默认是localhost,故,本地启动不需要设置
apollo-portal 服务配置
提供Web界面供用户管理配置
项目中修改端口号、数据源和注册中心地址,修改的文件为:
application.yml
spring:
application:
name: apollo-portal
profiles:
active: ${apollo_profile} # 可以在apollo-env.properties选择环境进行激活
datasource:
url: jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
username: root
password: 123456
server:
port: 8011
compression:
enabled: true
logging:
file: /opt/logs/100003173/apollo-portal.log
management:
health:
status:
order: DOWN, OUT_OF_SERVICE, UNKNOWN, UP
apollo-env.properties:
这里只需要修改fat.meta、uat.meta、pro.meta,具体可以查看PortalConfig#portalSupportedEnvs()
local.meta=http://localhost:8080
dev.meta=${dev_meta}
fat.meta=http://localhost:8080
uat.meta=http://localhost:8080
lpt.meta=${lpt_meta}
pro.meta=http://localhost:8080
SpringBoot项目对接Apollo
- 导入Apollo Client依赖
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.4.0</version>
</dependency>
- 注入默认application namespace的配置示例
# will inject 'application' namespace in bootstrap phase
apollo.bootstrap.enabled = true
- 设置appid,这appid是你在已经搭好的apollo平台上创建时的id
app.id=apollo-demo
- 申明Meta Server地址,需要这个地址进行服务发现,获取远程服务地址然后进行rpc请求获取拉取配置。配置Meta Server 有以下方式:
# 1.启动项进行配置
-Dapollo.meta=http://config-service-url
# 2.Spring Boot的配置文件中进行配置
apollo.meta=http://config-service-url
# 其他方式后面在研究
- \opt\data{appid}\config-cache\ 下创建你的配置{appid}+default+application.properties
Apollo 原理简单总结
Admin 和 Config 提供配置服务,将配置存储到数据库中
Client 和 Portal 从 Meta Server(服务注册中心与Config、Eureka同一进程) 拉取服务地址进行RPC请求获取数据