我有 2 台机器(Linux 机器运行我的 cpp 应用程序)。关于应用程序:应用程序根据某些逻辑从 NFQUEUE 收集数据包并记录它们。该应用程序是无限循环运行的简单 cpp 应用程序。该应用程序需要支持 500MbpS 的带宽。机器没有 ip。它们是网络上不可见的侦听器(识别一些业务逻辑日志记录)。
我希望拥有对性能影响最小的主从系统。
我希望所有数据包都发送到机器 A,如果机器 A 上的应用程序停止工作(我需要您的建议,如何最好地发出信号表明应用程序停止工作),数据包应该路由到机器 B。我不想连接两台机器,解决方案不能是单点故障。我需要一些类似旁路的东西,如果设备崩溃,数据包仍然会通过它。
有没有办法在硬件或较低的网络层中做到这一点(不想在第 7 层做到这一点)。
硬件成本(主/从“切换”限制为 1500 美元)。
答案1
答案2
使用keepalived
。
这将实现“共享” IP 地址。IP 每次只能分配给单个主机。
从你的例子来看,假设主机A有 IP.1
和主机乙有 IP .2
。您可以创建共享地址.3
。而A是主控它将同时具有.1
和.3
。当机器A死亡后将.3
过渡到乙。