千家信息网

docker compose怎样一键部署分布式配置中心Apollo

发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,docker compose怎样一键部署分布式配置中心Apollo,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介说起
千家信息网最后更新 2025年11月06日docker compose怎样一键部署分布式配置中心Apollo

docker compose怎样一键部署分布式配置中心Apollo,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

简介

说起分布式肯定要想到分布式配置中心、分布式日志、分布式链路追踪等

在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等,都需要去维护和配置,但不可能一台台服务器登录上去配置
今天我要跟大家分享一下分布式配置中心Apollo:

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

搭建

官方文档中有两种搭建方式一种是下载源代码进行搭建,一种是使用Docker或者K8S进行搭建,今天我们使用Docker来进行搭建,毕竟Docker对于开发者来说更友好一些。

如果已有Mysql服务,推荐已有Mysql服务或者云服务RDS来当数据库使用,毕竟数据无价。

version: "3"services:  apollo-configservice: #Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端    image: apolloconfig/apollo-configservice:1.8.1    restart: always    #container_name: apollo-configservice    volumes:          - ./logs/apollo-configservice:/opt/logs    ports:      - "8080:8080"    environment:      - TZ='Asia/Shanghai'          - SERVER_PORT=8080      - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx      - EUREKA_INSTANCE_HOME_PAGE_URL=http://xxx.xxx.xxx.xxx:8080      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai      - SPRING_DATASOURCE_USERNAME=root      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!              apollo-adminservice: #Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)    image: apolloconfig/apollo-adminservice:1.8.1    restart: always    #container_name: apollo-adminservice    volumes:      - ./logs/apollo-adminservice:/opt/logs    ports:      - "8090:8090"    depends_on:      - apollo-configservice    environment:      - TZ='Asia/Shanghai'          - SERVER_PORT=8090      - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai      - SPRING_DATASOURCE_USERNAME=root      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!              apollo-portal: #管理界面    image: apolloconfig/apollo-portal:1.8.1    restart: always    container_name: apollo-portal    volumes:      - ./logs/apollo-portal:/opt/logs    ports:      - "8070:8070"    depends_on:      - apollo-adminservice    environment:      - TZ='Asia/Shanghai'          - SERVER_PORT=8070      - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx      - APOLLO_PORTAL_ENVS=dev      - DEV_META=http://xxx.xxx.xxx.xxx:8080      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai      - SPRING_DATASOURCE_USERNAME=root      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!

从以上docker-compose.yaml中可以看出共包含3个服务,分别为:

  1. Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端

  2. Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)

  3. Portal(管理界面)

如果想了解它们之间的运行方式推荐查看官方文档

日志挂载到外部./logs目录下

大家可以看到上方并没有给出Mysql的部署,如果需要使用容器部署Mysql可以参照下方docker-compose.yaml

version: '3'services:   mysql: # myslq 数据库    image: 'mysql/mysql-server'    container_name: 'mysql'    restart: always    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower-case-table-names=1    environment: #环境变量      MYSQL_ROOT_HOST: "%"       MYSQL_ROOT_PASSWORD: password      MYSQL_USER: brook      MYSQL_PASSWORD: password    ports:      - "3306:3306"

上述mysql的docker-compose.yaml 仅供测试使用

初始化数据库
初始化 apolloconfigdb.sql 和 apolloportaldb.sql

数据库初始化后,记得修改apolloconfigdb库中serverconfig表的 eureka.service.url 否则 apollo-adminservice无法注册到eureka

修改后切换到Apollo docker-compose.yaml目录 然后使用

docker-compose up -d #启动文件中的三个服务并且后台运行

查看启动情况

docker-compose ps

访问 http://10.0.0.53:8070/ #Apollo管理端

默认用户名:apollo
默认密码:admin

创建一个测试项目


测试

创建一个.NetCore项目 添加Apollo.net client

添加Apollo

配置Apollo

配置如上

添加测试内容
代码中获取Apollo

启动程序 请求/weatherforecast/apollotest

发现并未获取到apollo中设置的配置

检查Apollo发现配置的值并没有发布

所以大家配置或者修改了Apollo一定记得发布,我们发布后再次刷新浏览器

发现数据已经是新的数据了,我们再次修改一下Apollo的Value

刷新

致此 Apollo已经搭建完毕并且可以正常使用了

代码

示例中的代码在
https://github.com/yuefengkai/Brook.Apollo
欢迎大家Start

注意如果程序启动后无法拉取配置,可以打开Apollo的日志,在控制台中可以看到详细的配置 放到Program.cs Main函数第一行即可!

LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

配置 服务 分布式 数据 管理 数据库 功能 对象 界面 程序 应用 测试 代码 日志 运行 不同 内容 再次 参数 官方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伊旗网络安全应急指挥中心 大创软件开发项目 以下是将pig数据库 无锡信息化软件开发销售价格 江阴网络软件开发价格表格 软件开发师 系统架构师 简易版数据库有什么不同 届国家网络安全周主题班会 数据库监听的配置文件在 软件开发技术论坛app 关于企业网络安全评估报告 软件开发的主要组成 莱芜高校党建软件开发 服务器可以带多少台终端 网络安全态势感知预警系统 dhcp服务器的配置与管理总结 手机版我的世界里怎么找服务器 云服务器网络拓扑图 浙江常规网络技术咨询价格行情 益阳游戏软件开发 电力应急软件开发推广 学习数据库设计要多久 数据库主键类型有哪两种 简易广州游戏软件开发公司 腾讯云服务器可以存多少视频 管家婆用什么数据库 关于网络安全学习的心得体会 南昌企业管理软件开发 网络技术挑战赛内容 网络安全有啥考试
0