我正在使用一些使用移动互联网与我的应用服务器通信的硬件单元.
最初,硬件在硬件中具有硬编码的IP地址(负载平衡器),用于通信,用于将流量路由到我的应用服务器;现在,如果负载平衡器发生故障,整个冗余基础架构变得无用,就会产生单点故障,因为它的目标是共享负载,而不是维持可用性.
现在我要求硬件创建者将其切换为使用DNS,并且使用多个A records我得到了更好的结果.在这种情况下,我可以让应用程序服务器直接使用硬件;但如果一台服务器发生故障,某些硬件单元会暂时无法通信,但会在20-30分钟内转到另一台服务器;因为DNS故障转移始终不起作用.
那么我怎样才能克服这个问题并让我的应用服务器始终以某种方式工作?
由于您的问题非常通用,并且没有提供有关所涉及软件的任何细节,我的答案也很简短:只需使用一组两个
负载均衡器,它们之间通过使用例如“虚拟IP”共享“虚拟IP”.
vrrp(“虚拟路由器冗余协议”)或
pacemaker(还有更多选项).使用两台机器,它们是裸机或从两个不同的主机运行.如果其中一台机器发生故障,另一台机器将接管IP.将您的记录指向此IP(并记住:未实现DNS以实现高可用性.)
编辑1:正如评论中提到的@Ondra Sniper Flidr:另一个解决方案是keepalived.
编辑2:您还可以查看CARP,“通用地址冗余协议”.例如,使用该协议的软件解决方案将是UCARP.
原文链接:https://www.f2er.com/html/228960.html