Swa*_*nil 6 database configuration storage nosql
我们的应用程序和服务使用了很多配置,其中大部分配置目前在java代码中都是硬编码的,并且分布在很多类中.显然,这需要改变,我们希望将其集中在一个地方,并且应该由其中一个服务(比如ConfigurationService)检索和公开,这也包括为其客户端缓存配置以获得更好的性能.我们还需要为长时间运行的应用程序动态重新加载配置,并避免重新启动.我想就我应该用于此目的的存储类型得到一些评论 -
无需构建数据.它可以是一个简单的键值对,也可以是多键,单值对.以下是配置的一些随机示例 -
基本上,形成键的参数的集合和类型不是固定的,这给了我一个提示,即这种配置不是真正的结构.整个配置的量不会太大.与读取相比,写入很少.
数据库(RDBMS/NoSQL) - 使用数据库表的优点可能是它提供的安全性和备份.由于这看起来不像关系数据,我会考虑使用NoSQL解决方案.我个人并没有真正使用它们,请告诉我哪一种更适合这种数据.由于可能存在许多不同的键,我们应该能够选择精确的键(某种索引).数据库使用会引入延迟,但可以构建有效的缓存来克服这个问题(因为对配置的写入不会太多).数据更容易查询.
文件(XML或其他平面文件) - 我们可以使用这些文件保持简单.缓存也可用于文件的情况.只要整个配置可以导入内存(RAM),这也是一个选项(必须实现选择性高速缓存失效).文件提供版本控制,必须查看权限/安全性.如果XML文件变大,尤其会变得更加混乱.如果我们使用文件,数据可能不容易查询.
假设动态重新加载和缓存失效是分开实现的,哪个应该是更好的存储解决方案?这里应该考虑哪些其他因素?
如果要使用文件来存储此类配置,那么这些用例的文件格式有哪些?
注意:我在SO上提出了类似的问题,但可能没有像我应该的那样清楚地构建问题,所以创建了一个新问题,而不是进行大量编辑.
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |