从多个源访问文件值中的json

qc6wkl3g  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(239)

背景
我有一个最大深度为1的json文件,这意味着它基本上一直包含键值。例如,键是某个id,值是一个数字数组。e、 g:{“1”:[1,2,3],“2”:[5,4,7,8]}
我们每x(目前,x=4)天上传一个新文件。在每个版本中,键和值可能不同于它们的前一个版本。文件大小可能是几GB。有时我们希望将数据附加到json文件中,这一点很重要,我们能够这样做。有许多文件,我们需要一起提供,一些文件可能会取代其他(版本)。
现在,我们正在与aws合作,我的整个部署都在那里,我不局限于它的任何服务。我想以某种方式托管文件,并从我拥有的多个ec2示例中按键请求值,就像字典一样。
我的ec2是用.netcore 3.1编写的普通restapi,并连接到mongodb数据库。
问题
我想用的技术和我不想用的原因。
蒙哥达。好吧,这里的问题从一开始就开始了,json文件可能包含数百万行,而且由于我们每x天上载一次新文件,删除/更新数百万行在带宽、连接和存储方面都是低效的。此外,在高并发性中请求值可能导致连接匮乏,而此数据库用于服务于为我们的应用程序提供服务的服务器。mongodb是昂贵的,它不是最好的用例。
雷迪斯。由于aws中的redis需要在步骤1中定义内存,因此在出现大量新密钥、值(基本上意味着更重的json文件)的情况下,系统的可伸缩性不够。此外,插入redis将需要批量插入,在这种情况下,将不会有任何过期(因为它不支持这种情况)。除此之外,如果我不使用expiration,那么在某个时间点redis必须承受两倍于json的大小(previous+current,然后删除previous)。除此之外,redis是完美的。
mongodb datalake,服务时间非常慢,每个请求到我们的服务器通常需要不到3ms的处理(包括db请求),添加datalake会增加200ms,这是不成比例的。
本地缓存。主要的问题是,当我们需要将数据附加到文件中时,它需要对所有其他服务器可用,并且它们也必须附加数据,这最终会导致数据同步问题。
如果我忘了补充什么或者你还有问题,请告诉我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题