【问题标题】:ADO.NET transparent broker to separate reads and writes?ADO.NET 透明代理来分离读写?
【发布时间】:2013-07-10 04:33:32
【问题描述】:

我想将我的 .NET 应用程序执行的数据库读写分离,而不修改应用程序代码。

是否有商业或开源产品,可以用作虚拟“SQL Server”端点,同时执行代理/代理功能,与实际 SQL Server 通信?

然后我会通过修改连接字符串将我的应用程序指向这样的代理,然后它会根据其对 ADO.NET 或 TDS 协议或其他东西的了解将读取和写入路由到相应的 SQL Server。我知道在 Oracle / Java 世界中存在这样的事情,但是在 Microsoft 世界中是否存在这样的事情?

【问题讨论】:

    标签: .net ado.net master-slave read-write broker


    【解决方案1】:

    SQL Server 具有称为“可用性组侦听器”的功能,听起来与您在此处寻找的非常相似。它在 MSDN (http://msdn.microsoft.com/en-us/library/hh213417.aspx) 上有很好的记录。

    这是文档的摘录,听起来像是您想要的功能:

    可用性组的主数据库处理传入的只读路由请求,并尝试查找已加入主副本并配置为只读路由的联机只读副本。客户端从主副本服务器接收回连接信息并连接到已识别的只读副本。

    请注意,此功能是特定于 SQL Server 的,一般不适用于任何 ADO.NET 提供程序;由于您的问题同时提到了 ADO.NET 和 SQL Server,我不确定这是否能解决您的问题。

    【讨论】:

    • 谢谢,特定于 SQL Server 的解决方案是可以接受的,但是,这需要一个读/写选择器作为“ApplicationIntent=ReadOnly”添加到连接字符串中——从应用程序的角度来看,这与直接指向只读副本。我希望找到不需要在应用程序端指定意图的东西。无论如何感谢您的信息。
    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多