2011-09-27 2 views
0

Tomcat에서 실행중인 RecommenderServlet을 통해 권장 사항이 제공되는 Mahout 사용자 기반 권장 사항 엔진을 구현 중입니다.데이터 모델 당 Mahout 서블릿

지금까지 기본 설정처럼 보이지만, 몇 가지 추가 속성이 있습니다

  1. 권장 사항은 사용자의 상황에 따라, 100 개 서로 다른 데이터 모델에서 제공됩니다. 각 데이터 모델은 ~ 2Mb입니다.

  2. 주어진 시간에 권장 사항을 쿼리하는 동시 사용자 수가 1000 명 있습니다.

하나의 옵션은 데이터 모델 당 하나의 RecommenderServlet을 설정하는 것으로 간주됩니다. 따라서 여러 Tomcat 인스턴스 사이에 100 개가 배포됩니다. 두싯 전문가를위한

주요 질문 :

당신은 데이터 모델 당 하나의 RecommenderServlet를 설정하는 것이 좋습니다 것인가, 또는 더 나은 대안이 있습니까?

답변

0

나는 당신이 언급 한 퍼포먼스의 이슈에 실제로 영향을 미치지 않는다고 생각한다.

더 많은 논리적 인 의미가 있습니다. 서블릿은 일반적으로 하나의 논리적 서비스를 제공하고 페이지 또는 메소드에 대한 하나의 요청 유형에 응답합니다. 이론 상으로는 하나의 서블릿이 사이트의 모든 것을 제공 할 수는 있지만, 디자인과는 거리가 멀다.

내 경험에 따르면 다른 URL 경로에 대해 서로 다른 서블릿을 사용하는 것이 좋습니다.

메모리 요구 사항이나 성능을 변경하지는 않습니다. 어느 쪽이든 당신은 그 요청을 메모리에있는 그 데이터로부터 제공합니다.

이제 실제로 Tomcat의 전체 인스턴스를 100 개의 모델 중 일부만 제공 할 수있었습니다. 그러나 다른 서버에서 다른 웹 응용 프로그램을 실제로 실행하고 있습니다. 더 이상 1 개 또는 100 개의 서블릿에 대한 질문이 아니라 아키텍처를 분할하는 더 큰 선택입니다.

+0

감사합니다. 네 말이 맞아, 이건 건축상의 질문이다. 그러나 분명히 말하고 싶은 Mahout 특정 측면이 하나 있습니다. 각 RecommenderServlet은 하나의 Recommender 객체를 사용합니다. 각 Recommender는 데이터 모델을 사용하여 서블릿의 init()에로드합니다. 이로 인해 서로 다른 데이터 모델을 사용하려면 별도의 서블릿이 필요하다는 결론을 이끌어 냈습니다. 그건 사실이 아닌가? – udachny

+0

아, 알겠습니다. 'RecommenderServlet'을 그대로 사용하고 있다면,'Recommender'를 처리하도록 만들어졌습니다. 그러나 이것은 빠른 데모 또는 프로토 타입을위한 편의성과 예제의 예입니다. 귀하의 유스 케이스의 경우, 나는 당신 자신의 커스텀 서블릿을 작성할 것이다. 그리고 그들은 당신이 원하는대로 할 수 있습니다. 논리적 인 서비스 당 하나의 서블릿을 사용하는 것으로 끝났지 만 논리적 서비스 당 하나의 모델/권장 사항이 있다고 상상해보십시오. –

관련 문제