docker部署apollo分布式配置中心

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

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

img_6377846066b4a79b4a380177ee37825a.png
图例

apollo组件介绍

apollo配置中心包括admin service,config service, config db 等服务组件,以及portal配置管理服务以及client客户端组件。组件逻辑关系如下图:

img_5a684fe8f69f42e456c61ccb1df4ad0e.png
image.png

本文说明服务端部署过程。
下面是docker部署服务的具体步骤:

1. 构建docker镜像

使用项目https://github.com/huwsun/docker-apollo来构建容器镜像,本项目包含所有服务端组件,可按需启用多环境及各组件,详细配置说明见项目说明。
注意修改Dockerfile中的版本变量,获取指定版本。

#构建
docker build -t docker-apollo:latest .
#创建tag
docker tag docker-apollo registry.cloud.xxx.com/hcf/apollo:1.1.0
#推送到镜像仓库
docker push registry.cloud.xxx.com/hcf/apollo:1.1.0

2. 本地测试镜像

按照创建数据库指导部署数据库,目前仅支持mysql。
如下命令,启动portal面板,以及dev环境的服务组件,其中8180为configservice端口,8190为adminservice端口

docker run -e DEV_DB='jdbc:mysql://1.1.1.1:3306/ApolloConfigDB?characterEncoding=utf8' \
 -e DEV_DB_USER='user' \
 -e DEV_DB_PWD='123' \
 -e DEV_ADMIN_PORT=8190 \
 -e DEV_CONFIG_PORT=8180 \
 -e PORTAL_DB='jdbc:mysql://1.1.1.1:3306/ApolloPortalDB?characterEncoding=utf8' \
 -e PORTAL_DB_USER='user' \
 -e PORTAL_DB_PWD='123' \
 -e JAVA_OPTS='-Deureka.service.url=http://localhost:8180/eureka/' \
 -p 8170:8170 \
 -v /opt/logs:/opt/logs --name apollo docker-apollo

3. Rancher部署

如下图,如果需要公网访问,需要将所有服务端口全部开放。环境变量配置参考本地测试配置

img_e546e9b478ae4778aa46d9dce088a97d.png
image.png

外网访问需要额外配置公网IP,如下

img_06ba1fc590284cdfbc9f480c97b9fc17.png
image.png

4. 客户端使用

项目中引入依赖:

 <dependency>
        <groupId>com.ctrip.framework.apollo</groupId>
        <artifactId>apollo-client</artifactId>
        <version>1.1.0</version>
    </dependency>

启用bootstrap.yml配置如下,app.id为apollo的应用项目名称,在portal中进行配置,config-service-ip:port为configservice对应的ip及端口

app:
  id: contract
apollo:
  bootstrap:
    enabled: true
  meta: http://config-service-ip:port

详细说明及api见Java客户端使用指南

目录
相关文章
|
6月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
482 12
|
7月前
|
机器学习/深度学习 监控 算法
分布式光伏储能系统的优化配置方法(Matlab代码实现)
分布式光伏储能系统的优化配置方法(Matlab代码实现)
388 1
|
9月前
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
3614 1
|
9月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
5677 61
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
6864 56
|
9月前
|
Java 分布式数据库 Docker
使用Docker配置并连接HBase的Java API
本流程概要的解释了如何在Docker上配置并启动HBase服务,并通过Java API进行连接和操作表,不涉及具体的业务逻辑处理和数据模型设计,这些因应用而异需由开发者根据实际需求进行实现。
411 13
|
10月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1166 4
|
12月前
|
Prometheus 监控 Cloud Native
Prometheus配置docker采集器
本文介绍了如何使用 Prometheus 监控 Docker 容器,涵盖环境准备、配置文件编写及服务启动等步骤。首先确保安装 Docker 和 Docker Compose,接着通过 `docker-compose.yml` 配置 Prometheus 和示例应用。创建 `prometheus.yml` 指定数据采集目标,最后用 `docker-compose up -d` 启动服务。文章还展示了甘特图和类图,帮助理解服务状态与关系,助力提升系统可靠性和可维护性。
531 11
|
安全 网络安全 数据库
YashanDB分布式节点间SSL连接配置
本文介绍YashanDB分布式节点间SSL连接配置方法,确保通信安全。需统一为整个集群配置SSL,使用相同根证书签名的服务器证书,否则可能导致连接失败或数据库无法启动。文章详细说明了使用OpenSSL生成根证书、服务器私钥、证书及DH文件的步骤,并指导如何将证书分发至各节点。最后,通过配置数据库参数(如`din_ssl_enable`)并重启集群完成设置。注意,证书过期需重新生成以保障安全性。
下一篇
开通oss服务