2013-05-14 6 views
0

CloudBees의 개념을 사용하는시기/방법을 application session stores으로 완전히 이해하려고합니다.CloudBees의 응용 프로그램 세션 상점

해당 기사를 읽은 후 을 이해하면은 응용 프로그램 서버의 여러 인스턴스에서 지속적인 세션 변수를 공유 할 수있는 방법을 제공한다는 것입니다. 그렇게하면 각 서버간에 부하를 분산시킬 수 있으며 사용자가 어떤 인스턴스로 리디렉션되는지는 중요하지 않습니다. 각 서버 인스턴스는 모든 사용자에 대해 동일한 공유 세션 상태를 갖습니다.

먼저 내 이해가 잘못되었거나 약간 잘못 알고 있다면 저를 시정하십시오!

가정 I 나는 더 많거나 적은 올바른 다음, 나는 다음과 같은 질문이 :

  1. 어떻게이 상처 성능이나 메모리를 사용합니까? 각 서버가 모든 사용자에 대해 동일한 캐시 된 세션 데이터를 공유해야하는 경우 부피가 크고 가격이 비싸다고 느낄 것입니다 ...
  2. 프로그래밍 방식으로 세션 상태를 CRUD (즉, 캐시 플러시, JMX 등으로 검사)?
  3. 누군가이 기능에 대한 구체적인 사용 사례를 제공 할 수 있습니까?

미리 감사드립니다.

답변

1

세션 저장소를 사용하면 클러스터를 중심으로 HttpSession을 복제 할 수 있으므로 사용자를 특정 서버에 고정 할 필요없이 여러 인스턴스에서 응용 프로그램로드를 확장 할 수 있습니다 (구성 가능한).)

기본적으로 HttpSession 데이터를 직렬화하면 성능에 영향을 미치지 만, memcache 백엔드를 사용하므로 최소한의 성능을 발휘합니다. 이것은 또한 대부분 사용자 세션에 저장하는 개체의 크기와 크기에 따라 다릅니다. 또한 속성 변경 후 HttpSession에 객체를 명시 적으로 넣어야합니다. 세션에서 객체를 가져 오더라도 JavaEE 클러스터링의 일반적인 API 문제입니다.

당신은 프로그래밍 세션 저장소를 쿼리 할 수 ​​없습니다 (당신이 적절한 memcache에 클라이언트 코드와 하지만,이 훨씬 이해가되지 않습니다)

두 구체적인 사용 사례

  • 응용 프로그램 배포 여러 노드에서 세션이 클러스터 주위에 분산되어 있고 끈적 세션이 없으므로 실제로 모든 사용자에 대해로드가 분산됩니다.
  • 응용 프로그램을 다시 배포하면 사용자 세션이 손실 될 수 없으므로 지속적인 다운 타임이 발생하지 않습니다. ervice. 버전 N + 1 응용 프로그램은 버전 N에서 httpsession 데이터를 검색하고 직렬화 관점에서 호환 가능해야하지만 연결된 사용자는 재배포 및 버전 업그레이드를 알 수 없습니다.