可扩展的自动电邮分类服务

时间:2012-05-05 22:05:17

标签: java ruby email scalability

我们目前正在开发一个应用程序,使用户能够注册一个或多个电子邮件帐户,以便他的电子邮件可以自动分类。前端已经使用Ruby实现,但后端(电子邮件分类器)是用java编写的,并使用WEKA API。问题是我们如何以可扩展的方式将前端(用Ruby编写的Web界面)与后端(用java编写的电子邮件分类器)集成(同时处理大量用户..

3 个答案:

答案 0 :(得分:1)

我不确定什么是电子邮件分类器。但在任何类似的问题中,我建议为您的Java服务创建RESTful API的最佳解决方案。使用正确的工具可以非常优雅地完成这项工作。 API应该通过HTTP返回JSON。使用序列化为JSON的Jackson等库。

在ruby方面,您可以轻松解析JSON并反序列化。

这是一个非常可扩展的解决方案,因为HTTP调用是无状态的并且已经可扩展。线程被使用并丢弃。如果您需要更多电量,那么只需添加更多机器。

Rails应用程序也可以开始缓存一些调用。但那是不成熟的优化。

如果没有逻辑且只有公共数据库,那么只需在两个应用程序之间共享该公共数据库。但听起来Java应用程序需要做一些工作。这是API的常用方法。它也不限制你使用Ruby。您可以为AJAX或任何其他可以理解JSON的客户端创建JSONP服务。

答案 1 :(得分:0)

如果您想要新的电子邮件提醒,请反转您正在公开的RESTful API。不要将Java应用程序公开为RESTful API,而是公开Rails应用程序API。例如/user/ID/newmail

当新的电子邮件到达时,Java应用程序将调用Rails应用程序。

顺便说一下:

您是如何在Java中实现可扩展的系统来检查1000个电子邮件帐户的?

答案 2 :(得分:0)

随着您用于训练分类器的数据量增加,您可能会发现您可能想要使用整体算法(其中一组n个节点组成整体)并将训练数据分散到每个n个节点。

要对新数据点进行分类,您可以使用投票系统,其中n个节点中的每个节点都会对新数据点应归类为“投票”。得票最多的分类获胜。

相关问题