# Mollom 体系结构-每秒以 100 个请求杀死超过 3.73 亿个垃圾邮件

> 原文： [http://highscalability.com/blog/2011/2/8/mollom-architecture-killing-over-373-million-spams-at-100-re.html](http://highscalability.com/blog/2011/2/8/mollom-architecture-killing-over-373-million-spams-at-100-re.html)

![](img/26429ee917d000d853d82c835eb1ab89.png) [Mollom](http://mollom.com/) 是每个开发人员在绞尽脑汁寻找可行的软件即服务创业公司时都梦 of 以求的出色的 SaaS 公司之一。 Mollom 与一小部分地理位置分散的开发人员一起以有益的方式运行有用的服务-[垃圾邮件过滤](http://www.youtube.com/watch?v=anwy2MPT5RE)。 Mollom 帮助保护了近 40,000 个网站免受垃圾邮件的侵扰，其中包括[属于我的](http://biztaxtalk.com/)，这是我第一次了解 Mollom 的地方。 为了在 Drupal 网站上停止垃圾邮件的拼命尝试，在该网站上，所有其他形式的 CAPTCHA 都失败了，我在大约 10 分钟内安装了 Mollom，它立即开始工作。 那是我一直在寻找的开箱即用的体验。

从 Mollom 开放其数字检查系统开始，他们已经拒绝了超过 3.73 亿封垃圾邮件，在此过程中，他们了解到，惊人的 90％的邮件都是垃圾邮件。 该垃圾邮件洪流仅由两台地理位置分散的计算机处理，这些计算机每秒处理 100 个请求，每个计算机都运行 Java 应用程序服务器和 Cassandra。 因为它们创建了一个非常高效的机器学习系统，所以几乎不需要任何资源。 那不是很酷吗？ 那么，他们怎么做呢？

为了找出答案，我采访了 Mollom 的联合创始人 Benjamin Schrauwen，以及 Glassfish 和 Java 企业专家 Johan Vos。 证明软件没有国界，Mollom HQ 位于比利时的[H​​TG0] （来自比利时的其他好东西： [Hercule Poirot](http://en.wikipedia.org/wiki/Hercule_Poirot) ，[巧克力](http://www.google.com/images?q=belgian+chocolate)，[华夫饼](http://www.google.com/images?q=belgium+waffles) ）。

## 统计

*   服务于 40,000 个活跃的网站，其中许多是非常大的客户，例如 Sony Music，Warner Brothers，Fox News 和 The Economist。 很多大品牌，有大网站，还有很多评论。
*   每天查找 1/2 百万封垃圾邮件。
*   每秒处理 100 个 API 调用。
*   垃圾邮件检查的延迟很短，大约需要 30-50 毫秒。 最慢的连接将是 500 毫秒。 延迟的第 95 个百分位数是 250 毫秒。 它确实针对速度进行了优化。
*   垃圾邮件分类效率为 99.95％。 这意味着 Mollom 不会捕获 10,000 个垃圾邮件中的 5 个。
*   [Netlog](http://mollom.com/blog/netlog-using-mollom) 是欧洲的一个社交网站，在其自己的数据中心中拥有自己的 Mollom 设置。 Netlog 每天根据自定义[分类器](http://en.wikipedia.org/wiki/Learning_classifier_system)处理大约 400 万条消息，这些分类器对其数据进行了训练。

## 平台

*   两个生产服务器在两个不同的数据中心中运行以进行故障转移。
    *   一台服务器在东海岸，一台在西海岸。
    *   每个服务器是一个 Intel Xeon Quad 核心，2.8 GHz，16 GB RAM，4 个 300 GB 磁盘，RAID 10。
*   [SoftLayer](http://www.softlayer.com/ ) -机器由 SoftLayer 托管。
*   [Cassandra](http://cassandra.apache.org/) -选择 NoSQL 数据库是因为它具有出色的写入性能和跨多个数据中心进行操作的能力。
*   [Glassfish](http://en.wikipedia.org/wiki/GlassFish) -用于 Java EE 平台的开源应用程序服务器。 他们选择了 Glassfish，因为它具有企业级功能，例如复制和故障转移。
*   [Hudson](http://hudson-ci.org/) -可在所有服务器上进行后端的连续测试和部署。
*   Java-Mollom 从一开始就是用 Java 编写的。
*   [Munin](http://munin-monitoring.org/) -用于测量和绘制有关服务器运行状况的指标。
*   [MySQL](http://www.mysql.com/) -JPA（Java Persistence API）用于常规数据集，而 Cassandra 用于大型数据集。
*   [Pingdom](http://www.pingdom.com/) -用于正常运行时间监视。
*   [Zendesk](http://www.zendesk.com/) -用于支持。
*   [Drupal](http://drupal.org/) -用于具有自定义电子商务模块的主网站。
*   [解除混淆](http://unfuddle.com/)-Subversion 托管由其分布式开发团队用于源代码控制。

## 什么是 Mollom？

Mollom 是一项 Web 服务，用于从用户生成的内容中过滤掉各种类型的垃圾邮件：评论，论坛帖子，博客帖子，民意调查，联系表，注册表和密码请求表。 垃圾邮件的确定不仅取决于发布的内容，还取决于张贴者的过去活动和声誉。 Mollom 的[机器学习](http://en.wikipedia.org/wiki/Machine_learning)算法充当您的 24x7 数字主持人，因此您不必这样做。

### 如何使用？

例如，诸如 Drupal 之类的应用程序使用一个模块将 Mollom 集成，该模块将自身安装到内容编辑集成点中，以便在将内容写入数据库之前可以检查其内容是否为垃圾内容。 该过程看起来像：

*   当用户向网站提交评论时，将对后端服务器进行 API 调用。
*   会对内容进行分析，如果是垃圾内容，则将告知网站阻止该内容，或者如果后端不确定，它将建议该网站显示 [CAPTCHA](http://en.wikipedia.org/wiki/CAPTCHA) ，它们也可以提供该内容。
*   正确填写验证码后，内容将被接受。 在大多数情况下，人们不会看到验证码，该内容将直接被视为*火腿*，火腿是好内容，*垃圾邮件*是坏内容。
*   仅在机器学习算法不是 100％确定的情况下才显示 CAPTCHA，因此在大多数情况下不会给人类带来不便。

### 仪表板

Mollom 的每个帐户都包含一个漂亮的[漂亮的信息中心](http://mollom.com/scorecard)，它向您显示了已接受多少火腿和已拒绝多少垃圾邮件。 在图中看到的垃圾邮件数量确实令人沮丧。

### 运作流程

**安装。** 对于 Drupal 来说，安装非常容易。 像安装其他模块一样安装它。 在 Mollom 网站上创建一个帐户。 获取一对安全密钥，将这些密钥配置到模块中，然后选择要使用 Mollum 保护的系统部分。 就是这样

**每日**。 我定期检查垃圾邮件是否已经通过。 它不是 100％，因此某些垃圾邮件确实可以通过，但很少。 如果垃圾邮件确实通过了，则有一种方法可以告诉 Mollom 该帖子确实是垃圾邮件，应将其删除。 无论如何，这都是您必须要做的，但是在此过程中，您正在帮助培训 Mollom 的机器学习算法，了解什么是垃圾邮件。

**允许匿名用户交互**。 有了出色的垃圾邮件检查程序，就有可能建立一个网站，人们可以进行匿名交互，这是许多使用某些类型网站的人真正喜欢的。 一旦您要求注册，参与活动就会减少，并且注册也不会阻止垃圾邮件发送者。

### 并非一切都是玫瑰色

处理误报是 Mollom 的最大缺点。 垃圾邮件检测是拒绝火腿和接受垃圾邮件之间的困难平衡行为。 Mollom 的机器学习算法似乎运行得很好，但是有时存在一个问题，即好的帖子被拒绝，您会感到恐惧：*您的提交触发了垃圾邮件过滤器，将不被接受*。 目前没有追索权。 对于用户而言，几乎没有什么比让他们的光荣评论被垃圾邮件拒绝更令用户生气的了。 用户只会尝试几次来解决问题，然后他们只会放弃并走开。

问题是无法解决此问题。 为了保护机器学习算法不被玩耍，Mollom 不允许您提供一个示例，该示例错误地拒绝了应接受的内容块，尽管他们正在努力在将来添加它。

这是一个艰难的决定。 静态 CAPTCHA 系统，即仅要求用户通过测试即可提交内容的系统，一旦将站点定为严重攻击目标就无法正常工作。 用户注册无效。 考虑到一个站点每天可能有成千上万的垃圾邮件，对每个帖子进行审核需要非常高的负担，尤其是对于“爱好”站点。 垃圾邮件完全杀死了一个站点，因此，要平衡激怒某些用户的风险，而不要因为一个被炸毁的站点而最终没有用户。

## 商业模式

*   让 Mollom 轻松自如的是，它是免费的。 您只需在网站开始每天接受 100 多个火腿消息后付款。 对于小型站点，这可能永远不会发生。
*   一旦超过免费门槛，便有 Mollom Plus（每天 1 欧元）和 Mollom Premium（3600 欧元/年/站点）的定价层，这似乎很合理。
*   免费的网站并不会像您期望的那样浪费资源，它们实际上是重要培训数据的来源。 所有使用 Mollom 的网站都在不断将数据反馈给后端分类器。 使用 Mollom 的人越多，通过从用户那里获得的所有反馈进行培训的效果就越好。 没有免费的网站，Mollom 就不会像现在那样准确。

## 建筑

*   Mollom 非常受工程驱动。 主要重点在于使 Mollom 在代码和服务器资源使用上都尽可能高效。
*   实际上，每个服务器都可以处理所有请求，但是它们具有完整的故障转移。 工作在机器之间分配。 如果其中一个发生故障，则工作移至另一台机器。
    *   他们曾经有 3 台服务器，但是由于它们提高了性能，因此可以将第三台服务器用作登台服务器。
    *   每个服务器每秒可以处理完整的 100 个连接，并且每个连接运行整个管道：全文分析，计算作者的信誉并提供 CAPTCHAS。
*   真正针对低延迟进行了优化。 由于垃圾邮件检测是内容提交到站点过程的一部分，因此，如果花很长时间，对用户来说真的很烦。
*   软体动物经历了几个发展阶段：
    1.  最初，一个由两个人组成的小团队在做兼职，负责算法，分类器和他们试图解决的实际业务问题。 为了在后端建立基础架构，他们使用了自己的线程池，连接池，资源管理实现。 他们发现他们花了太多时间来支持所有这些东西并使其扩展。 然后他们切换到 Java 应用程序服务器 Glassfish，因此他们不必担心内存管理，REST 处理，XML 解析和数据库连接池。
    2.  过去的主要问题是磁盘带宽。 他们需要跟踪 Internet 上所有 IP 地址和所有 URL 的信誉，因此这是一个庞大的数据存储，具有许多随机访问权限。
    3.  早期，他们使用廉价的虚拟机，而一切都在 MySQL 中进行，但无法扩展。
    4.  然后，他们将其移至固态磁盘并将所有内容存储在文件中。 固态解决了写问题，但是有一些问题：
        1.  真的很贵。
        2.  这对安装的文件系统类型非常敏感。
        3.  写入速度很快，但是遍历数据以清理数据或在数百万个小对象上训练新的分类器仍然非常缓慢。
    5.  然后他们离开了固态，搬到了卡桑德拉。
*   Cassandra 现在用作写繁重负载的数据库和缓存层：
    *   在 [RAID 10](http://www.thegeekstuff.com/2010/08/raid-levels-tutorial/) 磁盘配置（条带化和镜像）上运行，这对于大量读/写非常有用。
    *   卡桑德拉（Cassandra）针对写入进行了优化，而 Mollom 的写入量要大于读取量。
    *   设计为分布在数据中心内部和整个数据中心。
    *   缺点是没有标准的 NoSQL 接口，这使得编写应用程序变得困难。
    *   Cassandra 的行缓存使他们不必在系统中添加另一个缓存层，从而消除了大量应用程序代码。
    *   Cassandra 具有老化功能，该功能会在一段时间后自动删除数据。 欧洲有严格的隐私法，要求一段时间后删除某些数据。 此功能是一个巨大的胜利。 这是一个非常昂贵的操作，Cassandra 处理它会删除很多应用程序代码。
*   博客评论通过系统的路径：
    *   请求可以来自任何客户端。 客户端跨服务器负载平衡请求。 这部分将在后面说明。 典型的客户端是 Drupal 系统。 请求可以是 XML-RPC 或 REST。
    *   请求由 Glassfish 应用程序服务器处理并遵循典型的应用程序服务器工作流程：请求由 servlet 处理并委托给会话 bean。
    *   付费客户首先得到服务，免费客户可能会遇到更长的延迟。
    *   对该请求进行解析和分析。 稍后再详细介绍。 确定垃圾邮件分数并将其返回给用户。 因此，Mollom 有不同的功能部分：垃圾邮件检查和 CAPTCHA 处理。 CAPTCHA 包括生成，提供和处理响应。 不同的会话 bean 负责 Mollom 功能的各个部分。
    *   分类器完全位于 RAM 中。 一小部分内容被炸裂成数千个可以识别垃圾邮件的小令牌。 这些分类器在 RAM 中具有几百万个令牌。 分类器需要真正快速运行，因此它们必须位于 RAM 中。
    *   卡桑德拉（Cassandra）中保存的是信誉分数，频率，URL 和 IP 地址。 Cassandra 的新行缓存功能现在充当其缓存层。 以前，他们实现了内部缓存，但是已将其删除。
    *   两个数据中心中的两台机器都运行 Cassandra 和 Glassfish 应用程序服务器。 Cassandra 不断在数据中心之间复制数据。
    *   内存中的数据结构不会直接复制。 他们写信给 Cassandra，然后复制。 另一端的缓存超时，因此它将转到 Cassandra 并获取新数据。 最终是一致的。 不一致的窗口很小，但是模型在这么短的时间内不会受到负面影响。
    *   一致性是根据具体情况进行管理的。 对于信誉和 IP 地址，最终的一致性很好。 会话数据（包括 CAPTCHA 会话）保持严格一致，因此当计算机进行故障转移时，它们将正确跟踪。
*   客户端负载平衡
    *   Mollom 使用[客户端负载平衡](http://mollom.com/api/client-side-load-balancing)，该负载平衡基于延迟等进行分配。作为一家初创公司，他们没有钱购买大型负载平衡器。 他们的另一个目标是能够对多个数据中心进行全局负载平衡，这将需要昂贵且复杂的设置。
    *   客户端列表的管理通过 API 进行。 每个客户端都有其可以使用的可用服务器的列表。
    *   每个客户端可以获取要使用的服务器的不同列表。 可以向付费客户提供更近的服务器列表，以减少延迟。
    *   当服务器发生故障时，客户端将尝试列表中的下一个服务器。
    *   客户端负载平衡有助于从旧系统迁移到新的基于 Glassfish 的系统。 将为新用户提供已迁移计算机的地址，而旧用户仍在旧计算机上工作，并且可以通过更新其服务器列表以有序方式进行迁移。 这允许进行测试，以便他们可以测试功能，然后测试伸缩性和性能。 他们查看了响应时间，连接队列中有多少个连接以及队列中将保留多长时间。 他们可以测试如果增加线程池中的线程，更改 JDBC 连接数以及其他配置会发生什么情况。 所有人迁移后，旧服务器将关闭。 过渡期间几乎没有停机时间，这对于高可用性系统至关重要。 当系统关闭时，垃圾邮件正在通过。
    *   客户端方法的缺点是，如果第三方客户端的文字写得不好，就会出现问题。 例如，客户端可以获取服务器列表，并以相反的顺序对其进行迭代，这是错误的。 他们现在与客户开发人员紧密合作，并提供高质量的参考代码示例，以便开发人员可以学习最佳实践。
*   机器学习
    *   Mollom 是一组学习系统。 一个既不考虑用户行为也不考虑起点的 CAPTCHA 解决方案，永远无法达到这种水平的知情保护，并且通常要求用户在每个帖子上都解决 CAPTCHA 问题。 使用 Mollom 的文本分析，仅当 Mollom 不确定帖子时，用户才必须解决验证码。
    *   平均消息长度约为 500 个字符，这被分解为 3,000 个功能。 通过查看 IP 地址或 Open ID 的信誉来确定帖子的混乱状态，可以查看用户 ID，情感，语言，亵渎，特定单词和单词组合，还可以查看文字的写法。 等等。所有这些都是基于分类器的。 一些分类器本质上是统计的，可以自动学习。 一些基于规则的分类器可确保它们永远不会出错。 最终，所有这些测试将决定垃圾邮件得分。
    *   他们从该过程中学习，并实时更新分类器和内部指标。
*   Glassfish 可处理工作计划，并旨在处理多核工作负载。
    *   关键是创建一个尽可能平行的作品设计，并具有尽可能小的锁定窗口。
    *   调整并发 HTTP 连接的数量，以便它们具有适当大小的可用连接池。
    *   每个服务器使用 16 个线程。
    *   大多数调用由无状态会话 Bean 处理，该会话状态可很好地进行并发管理。
    *   他们在池中保留了多个会话 bean，但让 Glassfish 决定池中应包含多少个会话 bean。 在峰值负载下，池中将有更多会话 Bean，因此可以有效地处理请求。 任何给定时刻都可以并行运行 32 个会话 Bean。
    *   所有的分类器实际上都是会话 Bean，它们被不同的线程重用。
    *   每个会话 bean 都有自己的与 Cassandra 的客户端连接，因此它们不会互相阻塞。
    *   当用户不响应 CAPTCHA 时，该会话将被清除，Mollom 得知这可能是垃圾邮件。
    *   每个服务器的每个分类器都有一个实例。
    *   会话清理的锁争用时间很短，其中正在更新分类器。
    *   每 1/2 小时将更新的分类器写回到 Cassandra。
*   应用整合
    *   Mollom 使用开放式 API，可以将其集成到任何系统中。
    *   库：Java，PHP，Ruby 等。
    *   集成解决方案：Drupal，Joomla，Wordpress 和其他内容管理系统。
    *   第三方根据 Mollom 产生的示例代码生成新的绑定。
*   为了监视服务器的运行状况，他们使用 Munin 进行了持续监视：
    *   垃圾回收后堆的大小是多少？
    *   可用连接数是多少？
    *   线程池中可用的线程数是多少？ 确保没有一个线程长时间等待锁。
*   当您查看他们的体系结构时，Mollom 试图构建一种可以透明地在多个数据中心内工作的体系结构，当它们已经超出单个服务器系统的规模时，它们本身可以向上扩展：
    *   客户端负载平衡用于选择和故障转移服务器。
    *   Glassfish 群集将用于在应用程序层进行故障转移，并使添加和删除计算机变得容易。
    *   Cassandra 将用于跨数据中心管理数据层。
*   Netlog 的 Mollom 安装具有一些有趣的特征。 它比 Mollom.com 主要服务器处理的更多，但是垃圾邮件的分布完全不同，因为他们的人员进行通信是社交网络的一部分。 Netlog 上的垃圾邮件分布为 90％的火腿和 10％的垃圾邮件，而在残酷的博客世界中，这恰恰相反。 有趣的含义是，处理火腿所需的资源较少，因此它们实际上可以在同一服务器上执行更多工作。
*   他们最初尝试使用虚拟服务器，并考虑使用 Amazon，但是他们发现 IO 是使用共享虚拟服务器的主要瓶颈。 IO 延迟和带宽是真正的问题，因此他们决定扩大规模并使用更大的计算机和更大的磁盘。
    *   令人惊讶的是，它们不受 CPU 限制。 8 个内核中只有两个在计算。 其他人只是在做 IO。
    *   Mollom 的流量相当稳定，因此拥有专用服务器更具成本效益。 他们看到亚马逊更多地是一种处理高峰负载的方式。
*   开发过程
    *   他们是分散的团队。 三个人在比利时，一个在德克萨斯州，波士顿和德国。
    *   Scrum 被用作开发过程，他们对此非常满意。 Scrum 会议在下午 2 点通过 Skype 进行。 他们发现随着他们的成长，他们需要更多的过程。
    *   开发人员在本地进行开发，并将代码提交到 Unfuddle 中。
    *   Hudson 被用作他们的持续集成环境。 Hudson 使他们从旧系统到新 Glassfish 系统的迁移更加容易，因为必须在部署之前通过测试。 他们并没有浪费太多时间，因为在生产部署之前就发现了问题。
    *   他们有很多测试：单元测试，系统测试，Drupal 测试。 只有当 Hudson 通过了这些测试时，才能部署系统。
    *   仍然可以手动进行部署，以减少潜在的停机时间。
    *   每当他们发现垃圾回收时间出现问题时，这总是归因于其应用程序中的内存泄漏。 万一发生内存泄漏，他们将进行核心转储。 要从 16GB 的计算机分析核心转储不是那么容易，您可能无法在本地计算机上对其进行分析，因此他们要做的是在 Amazon 上租用一个大内存实例来分析转储。 处理堆转储大约需要 2 个小时。 他们比较了两个转储，一个在执行时间 10 小时后，另一个在执行时间 20 小时后。 如果存在重大差异，则可能是由于内存泄漏。

## **未来方向**

*   Mollom API 使用 XML-RPC，他们现在正在测试 REST 实现，以使服务更易于使用 Mollom 进行混搭。
*   现在，他们已经过渡到 Cassandra，在增长需要时，他们可以更轻松地进行横向扩展。
*   即将发布的企业功能可以将数百个网站作为一个单元进行管理。 通过情绪，垃圾邮件分数或从某些 IP 地址删除所有评论，很容易在一组网站上进行审核。
*   他们已经进行了有关进入 Twitter 等流数据业务的讨论，但受到欧洲更加严格的隐私政策的限制。
*   他们将使用 Glassfish 进行实验，以平衡每个数据中心的负载。
*   如果负载增加 10 倍，则必须添加更多的 Cassandra 节点。 磁盘 IO 是瓶颈。 仅当它们的增长速度必须超过 10 倍时，才需要添加更多的应用程序服务器。

## 经验教训 [

*   ****效率带来幸福。** Mollom 非常重视高性能工程。 他们为 Mollom 极具成本效益而感到自豪。 它可以在一台服务器上处理许多请求，而延迟时间很短，这使客户感到满意，这使他们感到满意，因为他们不必维护大量机器，而且成本很低。 他们从一开始就将其作为优先事项，并选择了正确的技术来实现其目标。 这样一来，他们就可以利用自己赚的钱，在营销，建立用户群以及在 Mollom 之上开发新产品方面进行投资。**
*   **广度免费，付出深度**。 机器学习需要大量示例数据才能成功检测到垃圾邮件。 为了获得这些数据，Mollom 为客户提供了免费的服务，他们提供了更好地训练学习算法所需的广泛数据，他们是不断提供情报和反馈的来源。 较大的客户不仅提供收入，而且还可以从免费客户那里学到的数据受益。 该模型似乎是大数据和机器学习所特有的，众所周知，这是一切的未来。
*   **移除非特定领域的障碍物**。 大型系统需要大量基础架构工作。 基础架构的工作通常使工作不再涉及与产品的真正价值产生领域相关的功能（分类器，信誉系统，客户端库）。 Mollom 有意识地尝试通过选择 Cassandra 和 Glassfish 来尽可能地摆脱基础设施业务。
*   **注意客户端代码**。 客户端代码很有吸引力，因为它使用别人的资源而不是您的资源。 问题在于代码编写得不好，这会使您的系统看起来很糟糕。 与客户开发人员紧密合作，并提供高质量的参考代码示例，以便开发人员可以学习最佳实践。
*   **优先考虑付费客户**。 付费客户可以获得更好的服务质量。 它们首先在队列中处理，并且减少了整个系统的延迟。 付费客户可以访问故障转移服务器，而免费客户只能使用一台服务器。
*   **通过让堆栈进行繁重的操作**来减少代码。 在早期，Mollom 代码库比现在大得多。 Cassandra 通过处理复制和行缓存删除了许多复杂的代码，Glassfish 删除了许多应用程序代码，并将处理集群。 随着时间的推移而简化。
*   **最小化锁争用**。 Mollom 花了很多时间来减少 Glassfish 服务器中的锁争用，因为这已成为主要瓶颈。 尽可能少地锁定即可保持完全的并行性。

## 相关文章

*   [Mollom API](http://mollom.com/api)
*   [Mollom Drupal 模块](http://drupal.org/project/mollom)
*   [Mollom 技术白皮书](http://mollom.com/files/mollom-technical-whitepaper.pdf)
*   [Mollom 的 Twitter 帐户](http://twitter.com/#!/mollom)
*   [第 072 集-Mollom.com 的 GlassFish 后端，带有 Dries 和 Johan](http://blogs.sun.com/glassfishpodcast/entry/episode_072_mollom_com_s)
*   [Mollom 获得了一个新的后端](http://buytaert.net/mollom-gets-a-new-backend)
*   [在 Glassfish 上用 Mollom 打击垃圾邮件](http://blogs.lodgon.com/johan/)
*   要了解有关大数据和机器学习的更多信息，请查看 [Strata Conference](http://strataconf.com/strata2011/public/schedule/proceedings) 中的一些资料。

好帖子！

我想念什么吗？ 100 rps 令人印象深刻吗？

托德

首先，我是该网站的忠实拥护者，我会定期关注您的帖子。

我喜欢这篇文章，但是每秒的请求引起了我的注意。 我很好奇您认为“高吞吐量”服务。 我问是因为我是 Proxomo 的首席软件架构师（http://www.proxomo.com）。 我们的负载测试已在两台服务器（在 Microsoft Azure 上运行）上以每秒超过 500 个请求的速度为 REST 服务提供时钟。

谢谢
Daniel .....

丹尼尔，您好，如果您想谈谈您的架构，请给我发电子邮件。 关于您的问题，我认为没有任何特定的阈值定义“高吞吐量服务”。 Mollom 给我留下了深刻的印象，因为它们有一个复杂的机器学习应用程序，可以在一台（大型）机器上运行，它们遵循严格的质量和性能指标，它们是可盈利的，并且它们以正确的方式做事。 有很多人在创建应用程序，不是每个人都是 Google，所以我真的很喜欢这些提供真正价值的更人性化服务的示例。

垃圾邮件取决于上下文。 如果我经营一个科技网站，那么政治评论就是垃圾邮件。 如果我经营一个政治网站，那么技术评论就是垃圾邮件。 如果使用“从用户那里获得的所有反馈”对 Mollom 进行培训，如何避免出现问题？

如何将其整合到 Drupal 中？？？