apollo

Apollo 配置中心

补充说明

Apollo 是携程开源的分布式配置中心,提供配置发布、灰度、回滚、权限和审计。核心组件包括 Config Service、Admin Service、Portal 和外部数据库。默认 Portal 端口 8070,Config Service 8080,Admin Service 8090。

常用示例

Docker Compose 快速启动(开发):

docker compose up -d
# Portal: http://localhost:8070
# 默认账号 apollo / admin

生产环境使用 Helm 或分布式部署,并配置外部 MySQL:

helm repo add apollo https://www.apolloconfig.com/charts
helm install apollo apollo/apollo-portal \
  --set configdb.host=mysql \
  --set configdb.dbName=ApolloConfigDB

通过开放 API 发布配置:

curl -X POST 'http://apollo-config:8080/openapi/v1/envs/DEV/apps/demo/clusters/default/namespaces/application/items' \
  -H 'Authorization: ***' \
  -H 'Content-Type: application/json' \
  -d '[{"key":"timeout","value":"3000"}]'

发布并查看 Release:

curl -X POST 'http://apollo-config:8080/openapi/v1/envs/DEV/apps/demo/clusters/default/namespaces/application/releases' \
  -H 'Authorization: ***'

客户端配置:

-Dapp.id=demo
-Dapollo.meta=http://apollo-config:8080
-Dapollo.cluster=default
-Dapollo.cacheDir=/opt/data/apollo-cache

易错点与排错

读完自测

合上页面,先回答,再展开对照。

  1. 在 Portal 保存配置后客户端没有变化,先查什么?
  2. 客户端读到的是默认值,常见原因是什么?
  3. 中文配置乱码,先查数据库什么设置?
答案
  1. 可能只保存了草稿,没有点“发布”。
  2. app.id、namespace、cluster 三者不一致。
  3. 数据库字符集是否为 utf8mb4。