世界可扩展系统上的配置分布

时间:2012-02-07 11:08:56

标签: .net configuration distributed

我想知道在世界范围内分发网络应用程序配置同步的最佳方法是什么。

例如,假设我们使用的是.NET。假设我没有使用web.config进行应用程序设置,而是使用隔离的cofngig文件(或NO-SQL数据库),我会在其中放置特定的应用程序配置,如静态服务器URL,电子邮件模板等。

我想编辑一个配置并确保所有服务器(在任何国家/地区)都会尽快收到此修改,并且如果服务器处于DOWN状态,它将在重新联机后立即应用修改。

我认为将配置集中在一台服务器上是最糟糕的事情,并且每次从'config-server'获取配置时所有app-server都会占用 - 延迟和其他问题可能会破坏整个系统。

我想象了一些像缓存(每个服务器尝试从配置服务器下载配置并缓存值直到它出现)但这会将配置分配绑定到到期失效....

您认为最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

有多种可能的方法,但是您没有提供足够的信息来权衡权衡。

  • “尽快”多快? 1-5秒好吗?怎么样30?
  • 需要保持多少台机器同步?
  • 配置多久更改一次?

例如,一种相对简单的方法是保留唯一标识当前配置的版本或时间戳值。这将缓存在配置服务器上,因此查询非常便宜,并且应用服务器可以经常检查该值(每隔几秒)以查看是否需要刷新其配置。这样他们就可以进行频繁的廉价调用,并且只有在配置实际发生变化时才会产生复制数据的费用。

“结束所有”的方法是使用gossip protocol,但这是一项重大的努力(纯粹基于这个问题)可能超出你目前的技能水平。

答案 1 :(得分:0)

DNS