【问题标题】:WCF distributed transactions with load balancing具有负载平衡的 WCF 分布式事务
【发布时间】:2012-04-07 00:57:09
【问题描述】:

我有客户端-服务器应用程序。客户端是一个 .NET 4.0 应用程序。服务器是无状态的 WCF (.NET 4.0) 服务。 WCF 服务对 SQL Server 2005 数据库执行一些 CRUD。 WCF 配置为支持事务。为了可扩展性,服务应该是无状态的。 在不同的物理机器上有几个 WCF 服务实例。它们位于负载均衡器后面。 如果我们有如下客户端代码:

using (var scope = new TransactionScope())
{
  var proxy1 = new WCFServiceProxy();
  proxy.DoSomeDBStuff1();
  proxy.DoSomeDBStuff2();

  scope.Complete();
}

这两个服务请求可能由不同的 WCF 服务实例提供服务。这些交易会以正确的方式进行吗?

【问题讨论】:

    标签: wcf transactions distributed-transactions wsat


    【解决方案1】:

    它们应该可以正常工作。事务的 2 阶段提交应该在不同的机器上工作,不管它们是否在同一个负载均衡器下。

    【讨论】:

    • 谢谢!你说的对。我已经做了一个原型(1 个客户端,负载均衡器后面的 2 个服务器),一切正常。当我尝试使用 WS-Atomic(而不是 OleTx)时,问题出现了:它需要 SSL,并且当服务器位于负载平衡器后面时,WCF 配置很复杂。但现在 OleTx 对我来说已经足够好了。
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 2019-04-22
    • 2011-08-04
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多