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

Apollo 的实时通知是怎么实现的?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

客户端先发 /notifications/v2 请求并等待。Config Service 收到相关发布消息时返回有变化的命名空间,客户端再发配置读取请求。一直等到服务端超时仍没有变化时,通常收到 HTTP 304,然后发下一轮。

讲清原理

Admin Service 发布后会产生 ReleaseMessage,各 Config Service 扫描并分发消息。通知中的 notificationId 用于下一轮等待。配置读取用的是对应发布的 releaseKey,两种标记解决不同问题。

先收到命名空间通知,再请求新配置
先收到命名空间通知,再请求新配置

例子与易错点

开关发版后,客户端先收到“application 有变化”,随后才从配置接口拿到新的值。这中间会受等待、网络与应用处理时间影响。

延伸阅读 Apollo 怎样让应用接到最新配置? · Apollo 的 ReleaseKey 到底标识什么? · Apollo 客户端减少重复拉取有哪些办法?

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

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