如果我正在设计一个服务器基础设施来支持电子邮件服务器。接收系统是否应该支持容错。我认为,考虑到它将管理的事务类型,处理和过滤工作量很大,但磁盘工作量不大(还有另一个存储系统)。我认为这样做会非常昂贵。但我不知道。
此外,考虑到当我发送电子邮件但收件人未收到时,发送系统会自动重试。我认为集群对于可用性是必要的,但对于容错性(用于存储状态)来说不是必要的。
有什么建议吗?
编辑
当我谈到“接收系统”时,我指的是 MX 记录上指向的服务器。我指的是 20,000 名用户。是一个学术实体,因此邮件非常重要。
每天几乎有 1,000,000 封新电子邮件,但只有 30,000 封是无用的(其余的是垃圾邮件或恶意软件)。
我特别想问的是,是否有必要提供容错功能,保存传入交易的状态,或者仅拥有一个负载均衡器,在发生故障时将负载重定向到另一个(正常运行的)服务器。
答案1
这取决于您需要电子邮件的及时性。SMTP 旨在解决偶尔的邮件中断问题,但最终用户却不能。如果一条消息需要超过 5 分钟才能到达目的地,我知道我会接到电话。最终,我相信这是一个基于业务需求和将使用此系统的用户的服务期望的业务决策。
答案2
问题很模糊 - 没有“电子邮件”这样的协议,因此告诉我们您正在设置电子邮件服务器并没有太大的帮助 - 有很多用于处理电子邮件的协议 - POP,IMAP,SMTP,SSMTP,x400 ....
当我发送一封电子邮件但未到达收件人时,发送系统会自动重试。
这假设当您尝试发送电子邮件时“发送系统”(WTF?)正在运行。是的,MUA 将保存未发送的消息。
如果不知道内容是什么,就不可能建议您是否需要容错功能 - 如果您谈论的是具有 ADSL 连接的家用电脑,那么运行具有异地故障转移的事务安全多节点群集可能不值得。
此外,您还没有提到您打算使用什么软件/操作系统 - 如果是商业软件,那么许可证成本可能会远远高于硬件成本。
设置辅助 MX 是一件轻而易举的事 - 并且如果“系统到存储”已经分开,那么您已经解决了邮箱争用的一半问题。
答案3
我倾向于使用电子邮件或网络托管服务为较小的客户提供“缓存”或保存点,通常可保存所有 SMTP 电子邮件 3 天。如果他们的服务器的互联网链接中断超过 24 小时,这将非常方便。
另一个解决方案是使用您自己的电子邮件服务器作为客户电子邮件服务器的后备。只需查看域名的多个 MX 记录设置(即它是 DNS 设置的一部分)。
较大的客户将拥有自己的故障转移设置,分布在办公地点或数据中心。例如,运行:
nslookup -type=mx sun.com
答案4
任何 IT 系统都应支持与所花费的资金相称的可用性级别。如果您的公司依赖电子邮件,并且一旦发生故障就会蒙受损失,那么它很可能应该是容错的,除非您能制定一个足够快的恢复计划。
对于您这个非常模糊的问题,这些都是非常模糊的答案——IT 和业务部门需要在讨论中提供具体的细节。
你的第二句和第三句让我头疼。我认为你的第二句是在询问 MX 记录(用于接收来自外部方的电子邮件的 SMTP 服务器),但我真的不知道你在问什么。
您的第二段也非常模糊;它太令人困惑了,我不知道您是否对电子邮件存在一些误解,或者只是遗漏了一些细节。