Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Apollo 怎样做高可用和故障转移?

查看完整题解

参考回答

直接回答

Config Service 和 Admin Service 可以做多副本。客户端访问失效节点时可切换尝试其他可达地址,暂时拿不到新值的实例仍可使用已加载配置或本地缓存。

讲清原理

环境中的服务副本通常接同一个逻辑 ApolloConfigDB,数据库另做高可用。Portal、Meta 和负载均衡入口也需要考虑故障。切换成功有前提,备选地址必须对调用者可达,要执行读取或发布,底层数据库也得能支撑对应操作。

运行时内存、重启磁盘缓存和首次启动的区别
运行时内存、重启磁盘缓存和首次启动的区别

例子与易错点

两台 Config Service 中一台故障时,客户端可以换到另一台。同一个环境的数据库写入失败时,增加 Config Service 副本也不能替 Admin Service 完成发布。

延伸阅读 Apollo Java 客户端为何保留磁盘缓存? · Apollo 暂时不可用时,应用会怎样降级? · 多个 Config Service 副本怎样保持配置一致?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。