是否有可能将networkingstream量从端口复制到2台不同的机器?

首先,我将尝试描述这个问题。 我们使用以下networkingconfiguration:

  • machine1安装了haproxy
  • machine2与应用程序(在这种情况下,我们可以认为是只有RabbitMq服务)
  • machine3作为testing服务器(machine2的副本)

所有的stream量到达机器1的端口(例如777)。 Haproxy将stream量redirect到machine2的端口(例如888)。 在machine2上应用监听端口888并处理请求。 我们也有machine3作为testing服务器,当我们准备下一个版本时,我们要用真实的负载来testing它。

所以现在的问题:是否有可能将来自机器1的端口777到机器2的端口888的传入networking通信复制到机器3的端口888(当我们需要的时候)

PS抱歉我的英文不好

如果您的stream量使用TCP进行通信,则任何第2层stream量重复都不起作用。 这是因为TCP握手是一个双向过程,客户端需要将响应数据包发送回客户端。

如果这样的stream量重复是在更高层次上完成的,那么问题就是对客户的回应。 如果两台服务器收到相同的stream量,并且都发回应答,应该发送哪个应答?

您应该能够在HAProxy中设置stream量处理规则,它将服务器之间的stream量分开。 这样你就可以获得真正的stream量到testing服务器。

但是,将生产用户发送到testing服务器并不是一个好主意。

唯一好的解决scheme是使用为其devise的工具设置适当的负载testing。 通过这些工具,您可以为负载testing设置testing场景,并为真实客户端提供执行请求。

唯一类似于你所要求的是交换机上的端口镜像。 这将分割stream量,但不能让两台服务器都响应相同的数据包。 端口镜像通常用于只听设备进行报告或跟踪。 它将无法给你一个负载testing。