Apollo 客户端减少重复拉取有哪些办法?
查看完整题解
参考回答
直接回答
长轮询可以在一次等待请求里带上多个命名空间各自的通知 ID。实际读取通常按命名空间请求,并带上已知的 ReleaseKey。版本相同时可直接返回 304。
讲清原理
Apollo 2.5 起有可选的增量配置同步。服务端需 2.5.0 或以上,Java 客户端需 2.4.0 或以上,再开启 config-service.incremental.change.enabled。该开关默认关闭,修改后要重启 Config Service。服务端也要为缓存留内存。客户端能用差异时才减少正文流量。
例子与易错点
同一个命名空间没变时,轮询后就不必传完整配置。刚启动的空缓存实例仍然要先拿到可用的完整配置,不能用差异拼出从未拿过的旧内容。
延伸阅读 Apollo 的实时通知是怎么实现的? · Apollo 的 ReleaseKey 到底标识什么? · Apollo 支持上千个应用时怎么做性能调优?
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。