highLight:

apollo 配置时很容易混淆 config svr 和 eureka,他们虽然是部署在一起,都是config svr 这个包内。但是实际上是两个业务。

1 config svr 内置了 eureka,所以分布式部署,eureka 集群无需自己搭建。

2 portal 配置了config svr的各个节点地址(每个环境配置单独的 config svr 地址)来进行服务调用,portal 到 config svr 是直接配置的 ip,并没有服务发现逻辑。

3 当然如果有公司级的 eureka,也可以配置为对应的地址。这里仅演示config svr内置 eureka 的情况。

1. 数据库初始化 (Storage Layer)

Apollo 依赖两个独立的 MySQL 数据库实例。请先获取官方 SQL 脚本并执行:

  • ApolloConfigDB: 存储配置、集群、命名空间等核心元数据。

  • ApolloPortalDB: 存储用户、角色、权限及管理后台相关配置。


2. 运行环境与安装包准备

2.1 获取发布版本

从官方仓库下载 v1.7.2 编译好的安装包(包含 ConfigService, AdminService, Portal三个包):

2.2 JDK 部署

Apollo 核心组件基于 Java,需安装 JDK 1.8 环境:

Bash

sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# 验证安装版本
java -version

3. 核心配置文件修正

需修改3 个组件下 config/application-github.properties 中的数据库连接信息:

关键风控检查:

  1. 确保 jdbc.url 中的数据库名称与初始化时一致。

  2. 密码严禁含有空格,否则会导致连接池初始化失败。


4. 服务启动与配置逻辑 (Sequence)

Step 1: 启动 Config Service (Port: 8080)
  1. 启动服务并确认 8080 端口进入 Listening 状态。

  2. 高可用配置:在 ApolloConfigDB 中通过 SQL 注册 Eureka 集群地址(多个地址以逗号分隔, 也即你的多个 meta svr 地址)。如果不配置,默认是http://localhost:8080/eureka/,也就是说 config svr 上报到自己的 eureka,也没有问题。只是就不再是集群,而是两个垂直的分区了。

    SQL
    UPDATE ApolloConfigDB.ServerConfig 
    SET Value = 'http://10.1.1.1:8080/eureka/,http://10.1.1.2:8080/eureka/' 
    WHERE `Key` = 'eureka.service.url';
    
  3. 心跳验证

    curl http://127.0.0.1:8080/eureka/apps
    
Step 2: 启动 Admin Service (Port: 8090)

确认 8090 端口启动成功。该服务负责配置的治理与发布,是 Config Service 的有力支撑。

Step 3: 启动 Portal (Port: 8070)

Portal 需要在 apollo-env.properties 中 配置各个环境的 meta 。

  • 3.1多环境扩展 (以增加 Prod 环境为例)

    • 方案 A (UI 修改):登录 Portal -> 管理员工具 -> 系统参数 -> 修改 apollo.portal.envsdev,pro(或者其他你需要的 env)

    • 方案 B (DB 修改)

      UPDATE ApolloPortalDB.ServerConfig 
      SET Value = 'dev,pro' 
      WHERE `Key` = 'apollo.portal.envs';
      
  • 3.2Meta Server 配置:若对应环境有多个 Meta Server,需使用逗号分隔。


5. 联调验证 (Verification)

登录管理端(http://xxx:8070),新增一个 key

通过 REST API 直接调用配置接口,验证数据链路是否畅通(假设 AppID 为 proj1):

Bash

# 获取特定 AppID 在默认集群下的 application 配置
curl http://localhost:8080/configfiles/proj1/default/application

Logo

更多推荐