Apollo配置中心分布式部署指南

Apollo配置中心分布式部署指南

apollo apolloconfig/apollo: 是一个分布式配置管理平台,可以方便地实现配置的统一管理和发布。该项目提供了一个简单易用的配置管理平台,可以方便地实现配置的统一管理和发布,同时支持多种配置格式和部署方式。 apollo 项目地址: https://gitcode.com/gh_mirrors/apoll/apollo

前言

Apollo配置中心是一款开源的分布式配置管理系统,能够集中化管理应用在不同环境、不同集群的配置。本文将详细介绍如何在分布式环境下部署Apollo配置中心,包括开发、测试和生产环境的独立部署方案。

一、准备工作

1.1 运行环境要求

操作系统
  • 推荐使用CentOS 7或更高版本
  • 理论上支持所有Linux发行版
Java环境
  • 服务端:JDK 1.8+
  • 客户端:JDK 1.8+
    • 如需在Java 1.7环境下运行,请使用1.x版本的客户端

验证Java版本命令:

java -version

1.2 数据库要求

MySQL
  • 版本要求:5.6.5+
  • 原因:Apollo表结构使用了timestamp的多重默认声明

验证MySQL版本命令:

SHOW VARIABLES WHERE Variable_name = 'version';
其他数据库支持
  • Oracle:需使用特定适配代码
  • PostgreSQL:需使用特定适配代码

1.3 环境规划

Apollo支持以下标准环境:

  • DEV:开发环境
  • FAT:测试环境(功能测试)
  • UAT:集成环境(回归测试)
  • PRO:生产环境

注意:环境名称"PROD"会被强制转换为"PRO","FWS"会被转换为"FAT"

1.4 网络策略

重要安全提示
  • 不要将configservice和adminservice直接暴露在公网
  • 这些服务设计基于内网可信网络
网络配置方案
  1. 忽略特定网卡

    -Dspring.cloud.inetutils.ignoredInterfaces[0]=docker0
    -Dspring.cloud.inetutils.ignoredInterfaces[1]=veth.*
    
  2. 指定注册IP

    -Deureka.instance.ip-address=1.2.3.4
    
  3. 指定注册URL

    # configservice
    -Deureka.instance.homePageUrl=http://1.2.3.4:8080
    
    # adminservice
    -Deureka.instance.homePageUrl=http://1.2.3.4:8090
    
  4. 客户端直连配置

    • 适用于公云部署场景
    • 客户端0.11.0+版本支持
网络连通性要求
  1. 客户端到配置中心:

    • 需要访问所有Meta Server和Config Service(默认8080端口)
    • 不需要访问Admin Service
  2. 配置中心内部:

    • 各服务间需要相互访问
    • 需要访问数据库

二、部署步骤

2.1 创建数据库

2.1.1 创建ApolloPortalDB
  1. 导入SQL文件:

    source /path/to/apolloportaldb.sql
    
  2. 验证:

    select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
    

注意:ApolloPortalDB只需在生产环境部署一套

2.1.2 创建ApolloConfigDB
  1. 导入SQL文件:

    source /path/to/apolloconfigdb.sql
    
  2. 验证:

    select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
    

注意:每个环境需要部署一套ApolloConfigDB

  1. 从其他环境导入项目数据(非全新部署时需要):
    • 导入App表数据
    • 导入AppNamespace表数据
    • 导入Cluster表数据(默认集群)
    • 导入Namespace表数据(默认集群)

2.2 服务器部署

2.2.1 获取安装包

两种方式:

  1. 直接下载预编译包(推荐)
  2. 通过源码构建(需要定制开发时使用)
配置数据库连接
  1. configservice配置

    spring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
    spring.datasource.username=username
    spring.datasource.password=password
    
  2. adminservice配置: 同configservice配置

  3. portal配置

    spring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
    spring.datasource.username=username
    spring.datasource.password=password
    
配置portal的meta服务信息

portal需要知道如何访问各环境的meta service(即configservice)

三、服务端配置说明

3.1 Portal配置

apollo.portal.envs
  • 定义portal支持的环境列表
  • 示例:dev,fat,uat,pro

3.2 ConfigService配置

eureka.service.url
  • 定义Eureka服务地址
  • 示例:http://127.0.0.1:8080/eureka/

四、部署验证

  1. 启动各服务
  2. 访问Portal界面
  3. 创建测试项目
  4. 发布配置
  5. 客户端获取配置

五、常见问题

  1. 数据库版本兼容性问题
  2. 网络连通性问题
  3. 服务注册问题
  4. 多环境配置问题

结语

通过本文的详细指导,您应该能够成功完成Apollo配置中心的分布式部署。Apollo的强大功能将帮助您实现配置的集中化管理,提高应用的可维护性和部署效率。如果在部署过程中遇到任何问题,建议参考官方文档或社区讨论。

apollo apolloconfig/apollo: 是一个分布式配置管理平台,可以方便地实现配置的统一管理和发布。该项目提供了一个简单易用的配置管理平台,可以方便地实现配置的统一管理和发布,同时支持多种配置格式和部署方式。 apollo 项目地址: https://gitcode.com/gh_mirrors/apoll/apollo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霍日江Eagle-Eyed

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值