如何以最小的开销实现主站?

我有2台机器(Linux机器运行我的CPP应用程序)。 关于应用程序:应用程序从NFQUEUE收集数据包,并根据一些逻辑logging它们。 该应用程序是简单的cpp应用程序运行在无限循环。 该应用需要支持500MbpS的带宽。 机器没有IP。 它们是networking上不可见的监听器(标识一些业务逻辑logging)。

我想拥有最低性能影响的主从。

我希望所有的数据包将被发送到机器A,并在机器上的应用程序停止工作(我需要你的build议,如何最好的信号,应用程序停止工作)数据包应路由到机器B.我不想连接两台机器和解决scheme不能单点故障。 如果设备崩溃数据包仍然通过,我需要绕过一些东西。

有没有办法做到这一点在硬件或在较低的networking层(dosnt想要在第7层做到这一点)。

硬件成本(主/从“开关”限制为1500美元)。

有一个端口镜像的交换机,它始终向两台机器发送stream量。 同时使用ucarp / keepalived / heartbeat打开/closures活动节点上的应用程序。 你将需要一些在你的服务器之间进行通信的方式来表明谁是主动节点; 你可以让它通过单独的界面stream动(即使两个盒子之间的交叉电缆)。

使用keepalived

这将实施“共享”IP地址。 IP一次只能在一台主机上分配。

从你的例子来看,假设主机A.1 ,主机B.2 。 你可以使共享地址.3 。 虽然A是主人,但它会同时拥有.1.3 。 当机器A死亡时, .3将转换到B.