Tomcat 每个数据模型的Mahout servlet

Tomcat 每个数据模型的Mahout servlet,tomcat,servlets,mahout,collaborative-filtering,Tomcat,Servlets,Mahout,Collaborative Filtering,我正在实现基于Mahout用户的推荐引擎,通过运行在Tomcat中的RecommenderServlet提供推荐 到目前为止,它看起来像一个基本的设置,但是它有一些额外的属性: 根据用户的上下文,将从100个不同的数据模型提供建议。每个数据模型约为2MB 在给定的时间内,可能有1000个并发用户查询建议 我考虑的一个选项是为每个数据模型设置一个RecommenderServlet。因此,在多个Tomcat实例之间将分布100个 Mahout专家的主要问题: 您是否建议为每个数据模型设置一个Rec

我正在实现基于Mahout用户的推荐引擎,通过运行在Tomcat中的
RecommenderServlet
提供推荐

到目前为止,它看起来像一个基本的设置,但是它有一些额外的属性:

  • 根据用户的上下文,将从100个不同的数据模型提供建议。每个数据模型约为2MB

  • 在给定的时间内,可能有1000个并发用户查询建议

  • 我考虑的一个选项是为每个数据模型设置一个
    RecommenderServlet
    。因此,在多个Tomcat实例之间将分布100个

    Mahout专家的主要问题:


    您是否建议为每个数据模型设置一个
    RecommenderServlet
    ,或者有更好的替代方案?

    我认为这一选择对您提到的性能问题没有什么影响

    更重要的是什么对你更有逻辑意义。servlet通常提供一个逻辑服务并回答一种“类型”的请求——对于页面或方法。从理论上讲,你可以让一个servlet为你的站点上的一切服务,但这将是丑陋的、明智的设计

    我的经验法则是对不同的URL路径使用不同的servlet

    但它不会改变内存需求或性能。无论哪种方式,您都可以从内存中的数据为这些请求提供服务


    现在,事实上,您可以将Tomcat的整个实例仅用于服务这100个模型中的一个子集。但是你实际上在不同的服务器上运行不同的web应用程序。这不再是一个1个或100个servlet的问题,而是一个拆分架构的更大选择。

    谢谢。你说得对,这是一个建筑问题。不过,我想澄清一个具体方面。每个RecommenderServlet使用一个Recommender对象。每个推荐者使用一个数据模型并将其加载到servlet的init()中。这让我得出结论,拥有不同的数据模型需要单独的servlet。这不是真的吗?哦,我明白了。如果您使用的是
    RecommenderServlet
    ,那么它是为处理一个
    Recommender
    而构建的。但这对于快速演示或原型来说更方便,更像是一个例子。对于您的用例,我将编写您自己的定制servlet。这些可以做任何你想做的事。尽管我最终可能还是会为每个逻辑服务使用一个servlet,我想每个逻辑服务都有一个模型/推荐程序。