gpt4 book ai didi

c++ - 配置存储

转载 作者:太空狗 更新时间:2023-10-29 12:38:13 25 4
gpt4 key购买 nike

我想存储大量与集群、进程、IP 地址等相关的配置数据。我之前曾开发过一款此类产品,其中 LDAP 用于此目的。虽然第一次配置它是 PITA,但我喜欢事务性 LDAP 部分,它有助于在发生更改时动态重新加载配置。它可以通过使用 inotify 的平面文件来完成,但这不如事务性 LDAP。但是,正如我所说,配置真的很痛苦,而且我不想在这个产品中借用 LDAP 的相同想法。

所以任何人都可以告诉我哪个将是下一个最佳替代品,这使得输入配置变得容易,并且还可以帮助动态配置并在配置文件发生变化时通知我的进程以及确切的变化(直接或间接)?

我计划用 C++ 和 C 开发我的产品。

配置可以由管理员编辑,或者如果他太懒,他可以使用一些脚本自动完成。同样通过 cli,但不是通过正在运行的进程,这将使我陷入并发和锁定问题。

我的程序是一个守护进程,某种在多个节点上运行的集群管理器。

没有为用户提供编辑配置的包装器。

我只在寻找 Linux/Solaris 平台。

最佳答案

您没有真正提供足够的背景信息来给出一个好的答案。因此,这里有一些未被问及的问题,其答案将影响您的选择:

  • 配置文件是如何编辑的?通过您的流程、手动编辑或其他程序?
  • 主程序如何运行 - 在前台与用户交互,还是在后台作为守护进程?
  • 如果您希望人们手动编辑配置,那么您可以为此提供一个包装脚本,它会向守护进程发送一个信号(通常是 SIGHUP),告诉它重新读取其配置文件。
  • 如果您的主程序要引导用户完成编辑,那么您真的不需要在编辑完成时告诉程序。它已经知道了。
  • 您在标签中提到了 Linux;我们可以假设 Windows 的可移植性不是问题吗?

至于配置文件格式,您可以使用 XML 的流行(和膨胀)。不过,虽然那是一个程序交流的好工具,但对人们进行编辑却不是很好。你应该看看 E S Raymond 的 "The Art of UNIX Programming"这是一本很好的通识读物,有一章介绍不同的配置文件格式。您可能应该采用其中概述的方案之一。哪种方案最好部分取决于您必须在配置文件中捕获哪些信息。

如果您打算将解释器(Perl、Lua、Tcl/Tk 等)嵌入到您的程序中,您可能会使用该语言来处理配置文件...或者您可能不会。

关于c++ - 配置存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com