经过一些关于问题的建议后,我正在使用基于Linux的软件来平衡两台服务器之间的流量。

基本上我们有生产网站和备份系统(在远程站点)。生产被不断地镜像到备份以保持同步。我们的域名指向Linux Ubuntu 9.04服务器(除了负载平衡软件之外什么都不干净安装)。这是运行最新版本的Crossroads(又名XR)。

XR设置为将所有连接传递到实时网络服务器,直到它失去其“心跳”。与该服务器的连接,一旦发生这种情况,就会将连接弹回我们的备份系统。

我得到的问题表现为我们的网络服务器缺乏响应,基本上客户端将正确形成的XML消息传递给.NET Web服务,该服务对数据进行一些计算和更改然后使用XML进行回复然而,客户似乎从未得到回应。

我一直在使用wireshark来调查这个问题,看起来似乎连接被切断或掉线的一半(由于我缺乏对wireshark的经验而不太确定)。

我一直在与XR软件的作者交谈,他们找不到任何可以解释这种行为的软件本身的原因或问题,并且相信它可能与我正在使用的linux发行版有关或者是内核问题。

任何人都可以帮我解决这个问题,因为我们将在接下来的几个星期内使用此系统,这个问题阻碍了我们。

我现在已经从Ubuntu转换到CentOS 4并再次尝试,现在当我使用wireshark时,我得到系统的随机回复。有时我会从服务器获得一个完整形成的XMl回复,下一次尝试我可能只会在Linux机箱发送RST数据包之前得到部分回复。

有帮助吗?

解决方案

好的,事实证明这与操作系统没什么关系,但我正在使用的软件存在问题。在config xml文件中输入一些超时值(感谢作者的建议),这似乎解决了这个问题。

以下是您需要在#符号之间添加到配置文件中的条目的示例,给出的超时有点过分(1分钟)

<service>
    <name>web_http</name>
    <server>
      <address>x.x.x.x:80</address>
      <type>tcp</type>
      <dispatchmode>first-available</dispatchmode>

      <clienttimeout>60:60</clienttimeout>
      <backendtimeout>60:60</backendtimeout>

    </server>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
  </service>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top