背景:我们将使用 Exchange 2010 向我们组织之外的已知用户发送时间敏感的电子邮件警报(我们将我们的组织称为“internal.loc”)。
该项目需要某种故障转移功能,但不使用 MS 集群服务。
我们有两台 Windows Server 2008 Standard 计算机。两台计算机上都安装了 Exchange,并且都配置为 Hub Tranport。我们将这两台计算机称为 EXCH-A 和 EXCH-B。
电子邮件警报将由我们自己的自定义业务应用程序生成。我们还有另一个域(我们称之为 alerts.foo),它将充当警报的发送者和返回电子邮件的接收者。
以下是邮件流的基本图表:
商务应用 > EXCH-A > SMTP-A > TO:[电子邮件保护]从:[电子邮件保护]
如果 EXCH-A 发生故障,则我们有 EXCH-B 待命。我们的业务应用程序将首先轮询 EXCH-A 以获取心跳。如果没有活动,则我们的业务应用程序将使用 EXCH-B 发送警报。
这里对邮件流程进行更具体的描述:
1)商务应用程序检查EXCH-A的健康状况。
2) 如果 EXCH-A 没问题,则继续使用 SMTP-A 发送邮件至:[电子邮件保护]从:[电子邮件保护]。
3) 如果 EXCH-A 不可用,则使用 EXCH-B/SMPT-B 递送至[电子邮件保护]。
问题:我们如何处理退回的电子邮件?特别是关于邮箱设置和 DC/AD 配置。
假设 EXCH-A 和 EXCH-B 都有邮箱,并且假设我们有一个内部用户 -[电子邮件保护]- 充当回复电子邮件的发件人和收件人。
对于一台机器,这或多或少是一个普通的设置。对于两台机器(在我们的穷人故障转移设置中),如果 EXCH-A 不可用,我们将如何路由回邮。是否可以为用户设置两个独立的邮箱[电子邮件保护],每台机器上一个?或者两个邮箱应该“同步”?
如有任何帮助我将不胜感激,当然,我很乐意根据需要详细说明。
答案1
您可以设置一个名为[电子邮件保护]并将邮件副本反弹到两个服务器。集线器传输应尝试将邮件传递到两个服务器,并将邮件保留在 EXCH-B 上的队列中,直到 EXCH-A 恢复。由于您可以使用组电子邮件地址发送,因此这可能是一种方法。也可能有其他方法。
如果您使用的是 Enterprise,Exch 将使用内置的 Exch 集群服务为您处理此问题。它们可以很好地处理这些场景。
答案2
我个人会利用 TCP 负载平衡与数据库可用性组相结合,类似于使用 HAProxy 利用 SMTP 负载平衡,这将允许您进一步优化此故障转移以满足您的需求。
这应该会给你一个你正在寻找的“穷人”故障转移解决方案。