我有一个应用程序在多个级别使用电子邮件通知,因此如果 SMTP 服务器宕机,我就会遇到麻烦。我无法快速切换所有配置中的 SMTP 地址,或者说我甚至不想这样做。
那么,有人知道如何将所有请求从一个 smtp 重新路由到另一个 smtp 吗?这有什么大不了的吗?谢谢
答案1
是的,你可以实现它,而且设置起来确实(相对)麻烦,但如果你已经在使用 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 端口,并将流量转发到两个都SMTP 服务器。
- Keepalived 控制 VIP,并将故障转移至负载均衡器 1到负载均衡器 2。
- 如果 SMTP 服务器出现故障,它将从池中删除,并且请求将转移到剩余的健康服务器。
- 如果负载均衡器发生故障,如果发生故障的 LB 是辅助 LB,则不会有任何变化。如果发生故障的 LB 是主 LB,则 VIP 将故障转移到辅助 LB。
- 此设置可以应对一LB 和一SMTP 服务器,但两个都SMTP/LB 不能失败。