Design patterns 跨多个服务器/应用程序共享全局变量

Design patterns 跨多个服务器/应用程序共享全局变量,design-patterns,architecture,global-variables,application-settings,Design Patterns,Architecture,Global Variables,Application Settings,我希望为跨多个web服务器、服务器应用程序甚至可能是内部桌面工具的设置设置一个中心控制点 目前的情况是,我在每个Web服务器或每个应用程序中都有一个设置文件,并定义了全局变量:管理电子邮件、上传文件的存储位置等。一些设置(例如发送错误报告的全局管理电子邮件)几乎是全公司范围的。其他设置可能是特定于客户端或站点的 我还希望中央数据库能够跟踪访问每个设置的用户/内容。例如,假设我有一个“ProcessedImageUploadFolder”设置,其值为“\\ImageServer\cache\”,由

我希望为跨多个web服务器、服务器应用程序甚至可能是内部桌面工具的设置设置一个中心控制点

目前的情况是,我在每个Web服务器或每个应用程序中都有一个设置文件,并定义了全局变量:管理电子邮件、上传文件的存储位置等。一些设置(例如发送错误报告的全局管理电子邮件)几乎是全公司范围的。其他设置可能是特定于客户端或站点的

我还希望中央数据库能够跟踪访问每个设置的用户/内容。例如,假设我有一个“ProcessedImageUploadFolder”设置,其值为“\\ImageServer\cache\”,由5个不同的网站使用,但我想更改此设置,但查看我的中央系统,我发现有一个我没想到的第六个服务器也在请求此设置(呼叫应用程序需要识别自身以获取设置,以便DB可以记录),以防更改第6台服务器的此设置会产生副作用

在将我自己的DB与一项服务一起推出并记录设置之前,我想知道是否有任何库/应用程序已经处理过类似的事情。有人知道这样的事情是否已经完成了吗?这种类型的系统叫什么

最好的解决方案是C#/SQL,但如果唯一的选择是php或Java之类的东西,我可能会将其作为基础并对其进行移植

还是我完全错了

编辑: 这不是多租户。将使用此服务的某些应用程序已在多租户设置中。其他应用程序是一次性应用程序…其他应用程序是在本地网络或VPN上使用的桌面应用程序


如果有人能更好地回答这个问题,请便。

我认为尼尔最好用“多租赁”来描述你的问题。Devlicious在这里发布了一篇关于多租赁的有趣文章:

如果我正在编写一个sshared配置服务,我会尝试使用类似于服务定位器模式的模式来实现,并开发一个易于扩展和互操作的web服务。该服务将抽象您的设计,而不管它是1个数据库、2个数据库还是多个xml配置文件


其他人有什么建议吗?

带服务的中央数据库似乎是一条可行之路。请确保您的应用程序缓存配置,这样它们不会在每次请求时都访问数据库,并且如果中央数据库暂时不可用,它们也可以继续运行


如果Java是一个选项,你可以看看。你也可以看看(第2-21页)中的配置文件选项一些想法。配置文件选项有一个有趣的配置层次结构,其中可以在站点、应用程序、责任和用户级别设置首选项,以最高级别的首选项为准。

感谢您的回复,但这不是多租户。请参阅我的编辑。我想web应用的缓存可能是12或24小时urs,可能每次启动一次桌面应用程序。我可能会创建一个dll,可以检索和缓存设置,然后在我的所有应用程序中使用该dll。但是,如果应用程序无法连接到设置服务,我还希望应用程序能够默认为上一次设置,而不会中断。