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客户端使用指南

目录
相关文章
|
1月前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
173 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
13天前
|
Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
25天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
32 5
|
1天前
|
开发工具 Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
24天前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
29 2
|
1月前
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
29 6
|
1月前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
43 3
|
1月前
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
60 1
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用