如果一台SMTP服务器发生故障,将所有请求路由到另一台,如何实现?

我有一个应用程序使用电子邮件通知在很多层面,所以如果SMTP服务器宕机,我遇到了麻烦。 我无法快速切换所有configuration中的SMTP地址,也不能说甚至不需要。

那么有谁知道如何“重新路由”从一个SMTP到另一个的所有请求? 这是一个大问题? 谢谢

是的,你可以做到这一点,是的,这是一个(相对)大笔的设置,但如果你已经使用像Puppet或Chef这样的自动化工具,这不是一个大问题。

理想情况下,您的设置将是真正的高可用性以下:

SMTP 1 (192.168.1.21) <-----> Load Balancer 1 (192.168.1.10) \ / | + |-------------- VIP (192.168.1.100) / \ | SMTP 2 (192.168.1.22) <-----> Load Balancer 2 (192.168.1.11) 
  • 您在两台负载均衡器上运行HAproxy, 这两台负载均衡器监听VIP上的端口25,并将stream量转发到两台 SMTP服务器上的端口25。
  • Keepalived控制VIP,并将从Load Balancer 1切换到Load Balancer 2
  • 如果SMTP服务器发生故障,它将从池中删除,请求将被转移到剩余的健康服务器。
  • 在负载均衡器失败的情况下,如果失败的LB是次要的,则不会有任何改变。 如果失败的LB是主要的,VIP将故障转移到次要的。
  • 此设置可以一次处理一个 LB和一个 SMTP服务器的故障,但是这两个 SMTP / LB都不能失败。