SQL连接字符串代理

SQL连接字符串代理,sql,architecture,connection-string,Sql,Architecture,Connection String,我的公司有很多SQL实例,每个实例上都有很多数据库。这些实例在许多不同的web和应用程序服务器中被许多自定义代码引用。任何给定服务器上的技术堆栈都可能处于生命周期的不同阶段。这是一场维护噩梦。我正在迁移一个SQL 2000实例,其中包含数千个无组织的表和一组未知的应用程序 我意识到我的问题是基础设施的架构和实现都很差,但我现在对此无能为力。我正在考虑的是建立某种类型的中央连接字符串代理,为连接字符串提供服务。应用程序将调用代理以获取适当的连接字符串 我想我的第一个问题是——是否存在类似的情况?我

我的公司有很多SQL实例,每个实例上都有很多数据库。这些实例在许多不同的web和应用程序服务器中被许多自定义代码引用。任何给定服务器上的技术堆栈都可能处于生命周期的不同阶段。这是一场维护噩梦。我正在迁移一个SQL 2000实例,其中包含数千个无组织的表和一组未知的应用程序

我意识到我的问题是基础设施的架构和实现都很差,但我现在对此无能为力。我正在考虑的是建立某种类型的中央连接字符串代理,为连接字符串提供服务。应用程序将调用代理以获取适当的连接字符串

我想我的第一个问题是——是否存在类似的情况?我宁愿采用现有的解决方案,也不愿采用自己的解决方案。如果不是,最简单、最透明的方法是什么

我对解决方案的第一个想法是在负载平衡的web服务器上运行RESTWeb服务,该服务器将底层连接存储在某种类型的配置文件中


如果您有任何想法或可能使用的工具,我将不胜感激。

您的语言是什么?在Java中,我们使用org.apache.commons.jbcp.BasicDataSource来保存连接字符串,该字符串是从属性/配置文件中按字符串加载的。这是很容易维护的。

看看分布式哈希表的实现。它们基本上提供了一个分散的地方来放置您的键和值对,连接字符串


举几个例子,它们都可以做您需要的事情。

连接字符串的哪一方面有问题?这会有效地进行键值对查找吗?最后使用DNS别名在哪些方面无法解决您的问题?我认为这将是一个键/值查找,但我可能希望记录查找。我想在应用程序中缓存查找。这很可能最终是非常特定于应用程序的。DNS别名在某种程度上假设我们可以一次移动整个系统,但事实并非如此。@Dems提到的DNS别名确实正确。还有“SQL客户端别名”。我假设应用程序仍然使用相同的数据库。因此,您将别名添加到
主机
文件中,类似于“db server old server ip”,然后只需重写该ip地址,而完全不涉及应用程序代码。这是多种语言的混合。我们主要是一家微软商店,但我们有一些PHP和ColdFusion,我们支持MySQL、Access和FoxPro。