apollo icon indicating copy to clipboard operation
apollo copied to clipboard

apollo-client容器化场景的客户端可靠性

Open GuiSong01 opened this issue 4 years ago • 5 comments

你的特性请求和某个问题有关吗?请描述

apollo-client提供的客户端可靠性是把配置缓存到文件,但是现在大多数场景都是容器化场景,服务可以在虚拟机上漂移,因此,缓存到文件不满足apollo服务端故障后,apollo-client服务重启、漂移的可靠性诉求。

清晰简洁地描述一下你希望的解决方案

我们目前采用的方案是改造了apollo-client,如果配置了apiserver地址和service account token,则apollo-client会把配置缓存到configMap去,这样就算apollo服务端故障,业务容器化实例重启或者漂移后,都能从configmap拉取到配置。

可以看一下这个特性可以合入开源社区吗

GuiSong01 avatar Jan 20 '21 06:01 GuiSong01

欢迎提交 PR!

希望能借此机会把本地缓存这一层抽象出来,可以灵活支持本地文件、config map、本地 cache 等多种场景。 目前 apollo-client 的ConfigRepository是可以支持多种配置源实现的,不过在代码层面可能还要做一些重构,比如DefaultConfigFactory

nobodyiam avatar Jan 21 '21 00:01 nobodyiam

期望添加这个特性,有后续吗?

hueidou avatar Oct 27 '21 03:10 hueidou

如果配置了apiserver地址和service account token,则apollo-client会把配置缓存到configMap去

这个意思是由 client 去写 configMap 吗?

我的想法是由外部系统,比如 apollo-admin 或者别的服务将应用服务的配置写到 configMap 里。 应用服务的 deployment 里默认挂载自己的 configMap 到某个目录,apollo-client 到这个目录读取

这样 apollo-client 的职责比较简单,还是和原来的功能一样。 写 configMap 的逻辑是新增的,在服务端实现就行

wcp1231 avatar Sep 23 '22 09:09 wcp1231

need it as well!

Shelby-Jiao avatar Mar 30 '23 06:03 Shelby-Jiao

I think I can work on this

shoothzj avatar Mar 30 '23 07:03 shoothzj