分布式轮询模型可以应用于移动 MailClient 应用程序吗?

分布式轮询模型可以应用于移动 MailClient 应用程序吗?

我正在尝试找出服务器架构,以便在移动设备上运行类似于 MailClient 应用程序的应用程序。基本上,该应用程序需要在后台检查人员的电子邮件(gmail api、pop 或 imap),然后在他们的手机上启动推送通知。我已经确定了此应用程序的两种可能架构:

  • 分布式:电子邮件地址在移动设备上进行后台轮询和检查。这意味着一切基本上都在个人移动设备上运行,而不是在中央服务器上运行。
  • 集中式:电子邮件地址从主集中式服务器轮询,然后服务器将推送通知发送到移动设备。

我认为集中式服务器轮询将是一个大问题。如果该应用流行起来,我们将不得不构建必要的服务器基础设施来处理负载。此外,如果我们有数千次应用下载,那么服务器将检查来自 1 个 IP 地址的数千封电子邮件。这个 1 个 IP 地址被主要电子邮件提供商列入黑名单的可能性有多大?

我想这一切都取决于 Android 和 iOS 对应用程序的沙盒类型。我们目前使用 React Native 作为移动框架。有人知道沙盒是否会阻止通过 gmail api、pop 或 imap 方法在后台检查电子邮件的能力吗?

答案1

如上所述,反对这两种观点的论据都很强烈。

  1. 相对于分布式,通过移动网络从移动设备进行轮询,特别是使用 IMAP 和 POP 等旧协议,是非常浪费的。如果对部分或全部轮询的电子邮件进行处理,则浪费会加倍。轮询的成本是通知协议最初创建的原因。最后,如果您必须迭代您的产品,移动应用程序是最糟糕的方式。

  2. 反对集中化——收集人们的电子邮件凭证侵犯隐私,阻碍扩大规模,并让你成为目标。尽管电子邮件存在种种缺陷,但它是一种重要的托管协议。

假设此处提供的是使用某种特殊方法识别和处理特定电子邮件,然后在发生某些事件时通知用户的东西,那么可以考虑为用户提供一个新域名上的电子邮件地址,默认情况下该地址会转发给他们。用户在与您的产品兼容的任何地方提供您的 @wayofthefuture.com 电子邮件。然后使用集中式架构部署您的轮询和处理。使用亚马逊等云服务扩展此类处理非常简单且成本低廉。这种模式还可以避免托​​管和声誉风险。

如果遗漏了一些基本内容,请随意编辑该问题。

相关内容