使用Erlang电子邮件存档的建议

使用Erlang电子邮件存档的建议,erlang,Erlang,我们致力于电子邮件存档服务。该产品是用Java编写的。主要功能是从客户的邮件服务器(大多数情况下是MS Exchange)读取电子邮件,使用特定参数对其进行丰富,并将其写入光盘。然后对邮件进行归档、索引并可进行搜索 我们使用的邮件服务器是ApacheJames,ApacheLucene用于索引,Jboss用作做其他工作的应用服务器。因此在典型的生产环境中,会有负载平衡器,它接收大的PST文件,然后处理读取PST并将邮件发送到ApacheJames的集合。中间的过程是在磁盘上进行邮件存档,然后在L

我们致力于电子邮件存档服务。该产品是用Java编写的。主要功能是从客户的邮件服务器(大多数情况下是MS Exchange)读取电子邮件,使用特定参数对其进行丰富,并将其写入光盘。然后对邮件进行归档、索引并可进行搜索

我们使用的邮件服务器是ApacheJames,ApacheLucene用于索引,Jboss用作做其他工作的应用服务器。因此在典型的生产环境中,会有负载平衡器,它接收大的PST文件,然后处理读取PST并将邮件发送到ApacheJames的集合。中间的过程是在磁盘上进行邮件存档,然后在Lucene上进行索引

我们不会面临特定的并发性或容错问题,因为整个过程处于脱机状态,负载平衡器可能会每天接收一次PST文件


我想知道我们是否可以在流程中的任何地方使用Erlang

根据索引/归档任务的详细信息,整个堆栈可以由较小的Erlang系统替换。我所说的“更小”是指它不涉及任何外部工具,维护和运行时占用的空间可能会小得多,开发人员需要记住的可能会少很多(具体来说,它将使开发人员摆脱webstack风格的多工具合并所必需的操作思维)。这将完全消除James、Lucene和Jboss,但无论您使用什么方法从PST提取邮件,都可能保留下来,并通过套接字将位推送到Erlang系统

这可以以增量的方式完成,但我认为让Erlang节点与JMX星座一起工作需要做很多额外的工作——这实际上取决于JMX位与核心逻辑的分离程度。如果您当前的代码编写方式使JMX易于替换,那么您可以使用使Java应用程序与Erlang节点本机通信的接口库之一替换这些位

让Java商店做好Erlang是一大步。必须颠覆如此多的思维方式,必须学习一个完全陌生的环境(Erlang本身非常简单,语言不是真正的问题,它在平台上摸索)。在转换过程中,它将使现有开发人员的认知负荷加倍。这是否值得,完全取决于你的商业状况

虽然从长远来看,我无法想象想要在JVM世界中为任何不是Android的东西而生活,但现实是,大多数业务关注点并不是非常长期的。我也不想坚持使用COBOL,但大量的企业确实有充分的理由这样做


如果你的商店定期对你的产品进行重构或审查,那么就有很多机会来引导事情,使其在不破坏银行或团队的情况下可行。如果没有,我怀疑它是否值得,而Erlang可能更适合先进行内部项目,这样开发者就可以在不受持续运营压力的情况下感受到事物。

答案是“是”。您可以将其用于所有、部分或任何类似的系统。真正的问题是,如果您现在已经有了一个可以运行的系统,那么是什么促使您希望在“某个地方”包含Erlang?你想要满足什么样的需求?如果你能提供更多的背景知识(组织、技术和对目标的一些解释),那么有人可能会给你一个更具体的答案。各种组件使用JMX相互交互。每个组件都使用MXBeans公开其功能。非常感谢您的回答。我仍处于学习Erlang的阶段。使用JBoss可能是的,但不确定是否使用ApacheLucene或ApacheJames。Lucene(单元或节点)用于索引和搜索。詹姆斯也是这样。Erlang可能肯定有SMTP服务器,但不确定在这种情况下使用它比James有什么优势。