2012-03-05 2 views
4

1) 세션에 첨부해야하는 허용 가능한 크기의 객체 범위는 무엇입니까? 5k가 될 수있는 객체를 첨부하고 주어진 시간에 10k 개의 유효한 세션이 있으면 50MB의 메모리가 허용됩니다. 그 방법으로 문제에 접근 할 수 있습니까? 아니면 다른 중요한 문제가 있습니까?서블릿 세션 속성 크기 및 수명

2) 이것은 아마도 바보 같은 질문 일 수 있습니다. 그러나 객체를 2 주 수명으로 세션에 첨부하면 세션의 전체 기간 동안 메모리에있는 것처럼 속성에 액세스 할 수 있습니까?

3) 세션 정보를 항상 DB에 저장하지 않을 이유가 있습니까?

답변

3
  1. 허용되는 크기는 사용 사례 및 동시 세션 수에 따라 다릅니다. 세션이 2 주 동안 지속되면 많은 동시 세션을 가질 수 있다고 생각할 수 있습니다.하지만 10k가 최대 허용치를 초과하면 5k 세션 개체에 아무런 문제가 없어야합니다 (계산 결과와 같이).

  2. 세션 개체에 대한 참조가 있거나 그러한 참조를 얻을 수있는 한 데이터는 세션에서 유지됩니다. 세션 객체는 직렬화 가능해야합니다.

  3. 특히 세션 데이터를 쉽게 다시 작성할 수있는 경우 성능상의 이유로 모든 세션 데이터를 db에 유지하지 않을 수 있습니다.

3
  1. 자바 EE는 HTTP 세션의 크기를 제한하지 않습니다. webapp의 RAM 요구 사항은 x + su *입니다. 여기서 "x"는 그 밖의 모든 항목이고 "su"는 동시 세션 사용자의 최대 수이며 "s"는 세션 개체 크기입니다. 5 명 이하의 사용자가있는 앱인 경우 이동하십시오. 1500 명의 사용자가있는 경우 재검토를 원할 수 있습니다. 각 세션 객체의 직렬화/비 직렬화에 필요한 시간은 객체의 크기에 따라 다소 선형 적으로 증가합니다. 따라서 많은 일련의 변형이 예상되는 경우 준비하십시오.
  2. 세션이 살아있을 때까지 사용할 수 있습니다.
  3. 지속성 세션 데이터는 성능 측면에서 비싸지 만 복구를 위해 클러스터에서 세션 복제가 필요한 경우에만 수행해야합니다.