如何管理上百个带有用户设置的配置文件--AppSettings还是不行?

问题描述 投票:2回答:2

我目前正在做一个asp.net core (c#) Web API项目。

每一次对Web API的调用都会有一个唯一的密钥,以帮助识别调用的用户。

每个调用者将有一组特定的配置值与之关联。我预计将有大约100到200个不同的用户会访问这个Web API。我想尝试将每个调用者的所有配置保存在一个配置文件中,使用唯一的密钥来分离每个配置。我预计每个调用者在配置文件中会有大约30到50个设置(有些人可能会有多达100个设置)。

我的问题是: 使用AppSetting.json文件来保存这些值是一个好办法吗,还是说我应该为每个调用创建一个单独的配置json文件,并在需要时加载?效率是需要考虑的问题。

c# asp.net .net asp.net-core appsettings
2个回答
0
投票

在给定的上下文中,看起来每个客户端的配置是你的解决方案的一部分。我会强烈考虑将配置移到代码中,并将其作为业务域的正常部分来处理。

将这些东西保存在appsetting.json中看起来很危险(很容易为错误的客户端更改配置),而且很难维护。这也可能会影响到调试,因为你可能在开发环境和生产环境中拥有一套不同的配置文件。

还有一个性能方面的考虑。从磁盘上读取众多文件并不是最好的做法。你总是可以把它缓存在内存中,但这样你的内存占用就会增加。


0
投票

我会考虑SQLite DB而不是JSON文件。

对于100个用户,50个设置,在dB中管理起来会容易得多,而且这样可以防止在多线程情况下高并发时期的文件锁定。如果设置不是关系型的,更好的选择是NoSQL db。

管理分布在100到200个文件中的5000个设置将是一场噩梦。如果需要做大量的selects,update,(应用升级的insert)等,可以考虑NoSQL或者轻量级的RDBMS。

它是如此之小,性能差异将几乎不明显,因此,最容易阅读、维护和构建将是我的专业建议。

© www.soinside.com 2019 - 2024. All rights reserved.