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

目录
相关文章
|
15天前
|
运维 Kubernetes Java
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
本文由仁励家网络科技(杭州)有限公司架构师赵云兴、葛志刚撰写,探讨了公司在优化HR SaaS解决方案时遇到的系统资源浪费和运维成本高的问题。通过引入Koupleless框架,成功将模块体积从500M缩减至5M以下,部署时间从6分钟缩短至3分钟,并大幅节省服务器资源。文章详细介绍了Koupleless的部署方案及优化措施,感谢Koupleless团队的专业支持,使人力家实现了多应用合并部署,降低了运维成本。
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
|
16天前
|
运维 Kubernetes Java
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
通过引入Koupleless框架,解决了多应用部署中资源浪费和运维成本高的问题,实现了模块瘦身、快速部署及流量控制优化,大幅降低了服务器资源占用和发布耗时,提升了系统稳定性和运维效率。最终,人力家成功实现了多应用的轻量集中部署,显著减少了运维成本。
 Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
|
24天前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
53 19
|
15天前
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
73 1
|
20天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
|
24天前
|
SQL 数据建模 BI
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
|
7天前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
|
Docker 容器
五分钟带你玩转apollo(七)docker极简部署,楼主亲测
五分钟带你玩转apollo(七)docker极简部署,楼主亲测
378 0
五分钟带你玩转apollo(七)docker极简部署,楼主亲测
|
3天前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
67 30
|
2天前
|
存储 虚拟化 Docker