有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java何时使用属性文件,何时查找数据库?

全部:

我有一个场景来维护配置数据。据我所知,我们可以将配置数据存储在属性文件或平面表中

我正在寻找一个有效的界限,该界限规定了何时使用属性以及何时使用数据库表

就我的理解而言,在属性中存储配置数据相对于API(对于基于Java的应用程序)的成本和效率要比数据库便宜(因为为此目的建立连接的成本很高)

欢迎您的评论

谢谢


共 (4) 个答案

  1. # 1 楼答案

    属性文件包含静态值,在编译时(或部署时)固定。数据库包含动态值,您可以在应用程序运行时更改这些值

  2. # 2 楼答案

    属性文件数据库之间进行了比较属性文件存储由=或:分隔的键值对,并且键和值必须是字符串

    您可以在数据库中以二维表格格式存储任何数据

  3. # 3 楼答案

    我假设您只加载一次配置数据,或者很少加载配置数据,所以我不会太担心性能方面的问题。需要考虑的几个方面:

    • 如果您不需要名称/值对,那么数据库可能会提供更丰富的数据模型
    • 将配置存储在数据库中可能会使多台计算机之间更容易共享
    • 即使在数据库中进行了配置,您也需要配置数据库连接本身
    • 使用配置数据库EM>如果您不需要任何数据库,EME>似乎有点奇怪,尽管您可以考虑使用嵌入式EEM>数据库,如SQLite,而不是传统的客户机/服务器。李>
    • 别忘了,除了你提到的两个,还有其他选择
  4. # 4 楼答案

    虽然该服务没有聚合成吨的配置,但效率并不是关键。 有几个问题可能会有所帮助:

    • 配置数据是否复杂?是吗数据库存储
    • 很少重新加载数据吗?是吗属性文件
    • 服务是否有多个实例?对我想支持像Puppet这样的配置管理系统吗?是吗属性文件
    • 服务是否有多个实例?对服务是否需要A/B测试?是吗属性文件
    • 我是否需要在不重新启动的情况下紧急更新配置?是吗数据库存储(不包括Archaius案例)
    • 我需要跟踪配置更新吗?是吗数据库存储
    • 服务是否有许多逻辑划分的配置(例如,在微服务中配置服务连接)?是吗属性文件
    • 配置数据是否敏感?(例如秘密代币、信用证)-财产文件