app 初始化时需要通过接口获取上千个独立的配置项,如何优化?

71 天前
 aboutboy

正在开发一个 app ,用户在使用 app 访问服务时,需要根据对应的服务从后端获取对应的配置文件( json 格式)。

一共有上千个独立的配置项。

目前是当 app 第一次启动时,会首先通过接口查询配置项清单,然后再依次对各配置项进行请求获取。

这样的问题是,一个 app 就会向后端发起上千个请求。而且可能需要十来分钟甚至更长时间才能把全部配置拉下来。

这样一方面对后端服务器造成压力,另一方面影响用户体验。

如果把配置全部打包在一起的话,大概40-50MB左右。

有些配置项还会更新,这就需要app 在后续的运行过程中对有更新的配置项进行更新

请问大佬们有什么好的思路?

8425 次点击
所在节点    程序员
106 条回复
yyyyyyh
71 天前
一个客户端就是上千请求。。。 100 个客户用 ,对后端来说岂不是 10W 的并发了。

如果还有更新的话, 建议用实时通讯的方式会好一点。

MQTT 或者 websocket 就当你在做一个 IM 。
GotKiCry
71 天前
一个 app 向后端发起上千个请求?你确定该优化的不是后端逻辑吗
onichandame
71 天前
渐进式不行吗?这上千个配置项既然是独立的,那应该是各自影响各自的页面,为啥要一次性全拉下来?进首页就只拉首页的配置,进登录页就只拉登录页的配置。我感觉现在的梭哈式设计是前端的锅。。
shadowyue
71 天前
上千个配置马上就要用吗?按需加载吧
cweijan
71 天前
先把程序员优化了吧
wxw752
71 天前
大佬们的脑子已经宕机了😰
horizon
71 天前
@onichandame #3
明显是后端配置项设计的问题
flytsuki
71 天前
这。。。人都麻了
liuyx7894
71 天前
比较好奇什么 APP 会需要这么多配置项
liuidetmks
71 天前
既然已经这样了,
把配置当做静态文件,放在 oss 上吧,让 app 去刷吧
业务能稳定运行最重要
nice2cu
71 天前
按需请求
合并请求
后端配置存储走缓存
bootvue
71 天前
json 放到 oss 上 后端更新
onichandame
71 天前
@horizon 后端可以怎么优化
RightHand
71 天前
按需加合并呗,这就是后台偷懒,不是什么都要原子化的
Hilong
71 天前
这接口设计有毒吧。搞个 bff 层聚合一下啊
Puteulanus
71 天前
把默认的全量配置都内置在 App 里,然后你们服务器那边每次改的时候打个版本,App 拉更新的时候根据版本号只增量拉修改了的配置项( patch )
ala2008
71 天前
说实话,业务是不是不合理
cinlen
71 天前
能否分享一下,什么情况下 app 一启动就需要 40~50MB 的配置量?
horizon
71 天前
@onichandame #13
首先把配置项分分类,不是所有的配置项都要实时从数据库里查吧
一些通用的可以提取出来,像上面说的放到 OSS 里
每次启动的时候从 oss 里获取咯
另外一些实时获取的,接口优化聚合一下,也分分类,首页只获取必要的
lasuar
71 天前
按 描述,判断 OP 几乎是个后端新手水平。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX