前言

上一篇文章中,介绍了 libatbus 从静态子网树到动态拓扑注册表的路由设计变更。新的拓扑模型解决了代理层无法弹性伸缩和跨区域隔离的问题,但路由只是底层基座——上层应用框架 libatapp 才是真正面对业务开发者的接口。

这篇文章聚焦于 libatapp 在新架构下的连接管理层设计,涵盖以下核心问题:

最近给 libatapp 增加了一系列改造,非常多且琐碎,这里简单记录下吧。

首先是重构了配置管理。原来是手写在代码里的,因为原来上层的 libatbus 是不依赖 protobuf 的,现在 既然已经依赖 protobuf 了就转为 protobuf 管理了。同时现在还支持YAML配置,使用 yaml-cpp 来解析YAML文件,这个库也被一些其他知名的大型项目使用了,比如 Envoy proxy 。 原来的conf/ini模式的配置也是支持的,现在加载配置的时候会尝试猜测以下配置文件是yaml还是conf/ini模式。 并且增加了统一的 YAML转protobufconf/ini转protobuf指定层级配置导出到protobuf 的接口来方便使用。比较特殊的是自定义日志配置后端的接入接口有了一些小变化,问题也不大。