如何内部实现 SMTP 负载平衡?

如何内部实现 SMTP 负载平衡?

我们正在使用 IIS SMTP 为 Web 应用程序发送电子邮件。如果我建立另一台服务器,最好的内部负载平衡方法是什么,以便它们都能使用,并且如果一台服务器宕机,另一台服务器仍能继续运行?据我所知,简单地创建另一个 Windows DNS 记录无法解决由于缓存而导致的问题。我们正在使用可以进行外部负载平衡的 SonicWall 防火墙,我不确定它们是否可以在内部执行相同的操作,或者是否可以做其他事情,也许是 NLB?

答案1

我们在这里只谈论外发邮件吗?(收到的邮件会带来一系列更为复杂的问题需要解决。)

TCP(“第 4 层”)负载平衡器可以很好地解决您的问题。也许,正如 @HBruijn 提到的,使用您现有的 SonicWalls 可以实现这一点。否则我个人更喜欢使用的工具是HAProxy(同时执行第 7 层 LB 和第 4 层 LB)。

Windows 自己的 NLB 功能实际上也是第 4 层 LB,因此如果您想使用现有功能解决问题,这是一种可能性。

(但请注意,如果您根据发件人的 IP 地址而不是使用身份验证将其列入白名单,则该白名单必须存在并在 LB 上进行管理(如果您使用单独的白名单),除非 SMTP 服务器遵守代理协议。否则 SMTP 服务器只会将当前活动的 LB 节点视为发起者,这有点违背了白名单的目的。)

相关内容