2012-08-08 41 views
2

如果您正在构建一个大型的基于云的平台,那么您将在该平台中拥有许多不同的模块/组件。范围从Web服务配置(地址,端口,...)到您拥有的每个组件的域特定配置。可以通过给系统中的每个组件配置一个tockenized配置文件来配置这样的系统,然后为整个平台提供一个大的tocken解析文件。这很快就会变得凌乱!中央配置系统

我在想这也许是一种更好的方法,将整个平台配置集中到一个Web服务中作为平台的中央配置系统,然后系统中的每个组件都会来到这个Web服务并通过提供它们来请求它们的配置设置ID或唯一的配置名称。

我甚至认为这样的配置必须是类型安全的,以便所有的系统组件都明确地引用它们所需的配置与键值方法。

这个中心配置系统的另一个重要特征应该是使配置值依赖于服务器端,这样我就可以说

能力

component1Config.LogServiceAddress = someMasterConfig.Address;

在服务器端。因此,只有中央配置系统知道上述逻辑,component1仅为其LogServiceAddress获取值,而不知道中央配置系统如何解决该问题。

我的问题是,这样的中央配置系统是否已经存在?有没有提供这种中央配置系统功能的开源软件?

回答

1

厨师/木偶是在各种机器上集中配置多个堆栈的标准方法。中央服务器可以启动远程节点,然后在该机器上推送所需的堆栈。虽然我看到用于配置软件的用法,但我认为它可以扩展以满足您的需求!

0

WCF Discovery Overview

拨打服务,当服务宣布,将其添加到服务列表。使用元数据来提供配置设置等。

公平地说,还有Mono.Zeroconf这需要bonjour(苹果)。

+0

谢谢你的回应,但服务发现真的不是我正在寻找的东西。我正在寻找一个集中的地方,所有的系统组件都可以包含Web服务。我的意思是,所有的数据库连接字符串,所有的域相关的配置,如AwsAccessKey和基本上所有的app.config配置类型将驻留和自动分布的一个地方。 – iCode 2012-08-10 00:45:32

+0

我知道我可以建立这个,但想知道这样的事情是否已经存在? – iCode 2012-08-10 00:45:55

+0

Mono.Zeroconf是“已经存在”的东西,可以提供连接和字符串以及任何类型的元数据,无论是设置还是你自己。获取此元数据并通过代码设置您的配置,完成。这是实现零配置的关键。 – Landern 2012-08-10 12:24:03