0

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

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

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

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

我一直在使用wireshark来调查这个问题,它似乎在响应进行到一半时连接被切断或断开(由于我缺乏wireshark经验,我不太确定)。

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

谁能帮我解决这个问题,因为我们将在接下来的几周内启用这个系统,这个问题阻碍了我们。

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

4

1 回答 1

0

好的,结果证明这与操作系统无关,而是我使用的软件有问题。在配置 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>
于 2009-07-14T13:01:41.313 回答