Apollo 可观测性最佳实践

简介

Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景,提供 Java 和 dotNET 原生客户端,提供了 Spring 的集成支持,其他语言通过 HTTP API 使用。

Apollo 在分布式部署时包含由三类进程 Portal、ConfigService、AdminService 扮演的众多角色,例如为测试和生产环境分别部署专用的 ConfigService、AdminService 实现不同环境间的隔离,Apollo 官方部署架构文档详细讨论了这一主题。在可观测方面,Apollo 的所有进程在 /prometheus 端口暴露指标,因此需要在每个进程采集指标,且需要通过进程角色类别、进程实例名称两类标签对部署的进程做出区分。

了解 Apollo 的工作机制是通过指标观测 Apollo 的前提,Apollo 官方设计文档详细讨论了这一主题,这里列出 Apollo 的配置发布过程:

  1. 用户登录 Portal 发布配置;
  2. Portal 调用 AdminService 接口进行配置发布;
  3. AdminService 发布配置后,向所有 ConfigService 发送 ReleaseMessage;
  4. ConfigService 收到 ReleaseMessage 后通过监听器通知对应客户端拉取配置;
  5. 客户端以 HTTP 长轮询方式连接监听器,60 秒内没有客户端相关的配置发布时连接器返回 304,客户端重新建立连接,有相关配置发布时监听器立即返回,客户端根据返回信息拉取配置,此外,客户端会定时拉取配置,配置信息缓存在内存和本地文件中。

以上过程中 ReleaseMessage 的发送过程是典型的消息消费场景,但是 Apollo 为了轻量化设计采用了以下设计方案:

  1. AdminService 在配置发布后向 ReleaseMessage 表插入记录:AppId+Cluster+Namespace;
  2. ConfigService 每秒扫描一次 ReleaseMessage 表,如发现新消息则通知所有的消息监听器;
  3. 消息监听器得到 ReleaseMessage 后通知对应客户端。

观测云

观测云采集器 DataKit 支持 Prometheus 指标采集插件,能够从指标端点自动拉取指标,并在指标上报时附加由用户定义的标签。

部署 DataKit

登录观测云控制台,点击「集成」-「DataKit」-「Linux」,复制安装命令在服务器执行即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值