SMTP 智能主机循环平衡

SMTP 智能主机循环平衡

我们的 SMTP 提供商需要在四个不同的主机之间均匀分配电子邮件。我知道分配此类负载的标准方法是利用 DNS 循环功能,但问题是提供商的邮件服务器应使用符号名称而不是 IP 进行寻址。处理此问题的最佳方法是什么?设置多个 CNAME 记录是否可行,还是我应该使用任何内部 Sendmail/Postfix/Exim/等平衡功能(我目前不知道)?

答案1

您的提供商是个白痴。他们应该给您一个服务器名称,以便将其插入到您的 MTA 中并进行自己的负载平衡。我倾向于只将一个名称放入我的relayhost指令中,然后就完事了。您可以使用所有提供商机器的 A 记录(从解析他们给您的名称中获取)定义一个本地名称,但这样做毫无意义,因为每次您的提供商决定向其集群添加更多服务器时,您都必须进行配置更改。

答案2

+1 表示“您的提供商是个白痴”。

尽管如此,您可以通过在本地设置一些负载均衡器(例如 HAProxy)来解决其要求,该负载均衡器使用提供商的智能主机作为后端。然后,您的服务器会将其邮件定向到此负载均衡器。它不会严格基于电子邮件进行平衡,而是基于 TCP 连接。但我想这应该足够好了,因为很难决定最终会生成多少封个人邮件(因为有多个收件人、邮件列表、别名……)

另外,当您的提供商的服务器发生变化时,您只需调整负载均衡器的配置,而无需触及任何其他服务器。

您可能需要考虑负载均衡器的高可用性,因为它可能是单点故障。

答案3

好吧,BIND 9.x 不支持多个 CNAME 条目,因为这会破坏 RFC,真是令人惊讶!但我在这里找到了一个可能的解决方案:http://marc.info/?l=postfix-users&m=118849453519781&w=2 我将实施这一计划,并将在这里提供一份报告以供记录。

相关内容