[session] 끈적 끈적하고 비 스틱 세션

끈적 끈적한 세션과 끈적 거리지 않은 세션의 차이점을 알고 싶습니다. 인터넷에서 읽은 후 이해 한 내용 :

고정 : 단일 세션 개체 만 있습니다.

고정되지 않은 세션 : 각 서버 노드에 대한 세션 객체



답변

웹 사이트가 하나의 웹 서버에서만 제공 될 때 각 클라이언트-서버 쌍에 대해 세션 개체가 만들어지고 웹 서버의 메모리에 남아 있습니다. 클라이언트의 모든 요청은이 웹 서버로 이동하여이 세션 객체를 업데이트합니다. 상호 작용 기간 동안 일부 데이터를 세션 오브젝트에 저장해야하는 경우이 데이터는이 세션 오브젝트에 저장되며 세션이 존재하는 한 계속 유지됩니다.

그러나로드 밸런서 뒤에있는 여러 웹 서버에서 웹 사이트를 제공하는 경우로드 밸런서는 각 요청에 대한 실제 (물리적) 웹 서버를 결정합니다. 예를 들어,로드 밸런서 뒤에 3 개의 웹 서버 A, B 및 C가있는 경우 www.mywebsite.com/index.jsp는 서버 A에서 제공 될 수 있습니다. www.mywebsite.com/login.jsp는 서버 B와 www.mywebsite.com/accoutdetails.php는 서버 C에서 제공됩니다.

이제 (물리적으로) 3 개의 서로 다른 서버에서 요청이 제공되는 경우 각 서버는 사용자를 위해 세션 객체를 생성했으며이 세션 객체는 3 개의 독립적 인 상자에 있기 때문에 세션 객체에 무엇이 있는지 알 수있는 직접적인 방법은 없습니다. 다른 사람의. 이러한 서버 세션간에 동기화하려면 DB와 같이 모든 세션에 공통 인 계층에 세션 데이터를 쓰거나 읽어야 할 수 있습니다. 이제이 사용 사례에 대해 DB에 데이터를 쓰고 DB에서 데이터를 읽는 것은 좋은 생각이 아닙니다. 이제 여기 sticky-session 의 역할이 있습니다.

로드 밸런서가 고정 세션을 사용하도록 지시받은 경우 다른 서버가 있더라도 모든 실제 상호 작용은 동일한 물리적 서버와 이루어집니다. 따라서이 웹 사이트와의 전체 상호 작용에 걸쳐 세션 개체가 동일합니다.

요약하면, Sticky Sessions의 경우 모든 요청이 동일한 실제 웹 서버로 보내지는 반면, Sticky 이외의로드 밸런서는 요청을 처리 할 웹 서버를 선택할 수 있습니다.

예를 들어 Amazon의 Elastic Load Balancer 및 고정 세션에 대한 내용은 여기 ( http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html)를 참조 하십시오.


답변

자세한 내용은 https://stackoverflow.com/a/11045462/592477 에서 답변을 작성했습니다.

또는 거기에서 읽을 수 있습니다 ==>

로드 밸런싱을 사용하면 여러 Tomcat 인스턴스가 있고로드를 분할해야 함을 의미합니다.

  • 고정 세션없이 세션 복제를 사용하는 경우 : 웹 앱을 사용하는 사용자가 한 명이고 Tomcat 인스턴스가 3 개 있다고 가정합니다. 이 사용자는 여러 요청을 앱에 전송 한 다음로드 밸런서는 이러한 요청 중 일부를 첫 번째 tomcat 인스턴스로 보내고이 요청 중 일부를 두 번째 인스턴스로 보내고 다른 요청을 세 번째 인스턴스로 보냅니다.
  • 복제없이 고정 세션을 사용하는 경우 :웹 앱을 사용하는 사용자가 한 명이고 톰캣 인스턴스가 3 명 있다고 가정합니다. 이 사용자는 앱에 여러 요청을 보낸 다음로드 밸런서는 첫 번째 사용자 요청을 3 개의 tomcat 인스턴스 중 하나로 보내고 세션 중에이 사용자가 보낸 다른 모든 요청은 동일한 tomcat 인스턴스로 보내집니다. 이러한 요청 중에이 Tomcat 인스턴스 (사용 된 Tomcat 인스턴스)를 종료하거나 다시 시작하면로드 밸런서는 나머지 요청을 여전히 실행중인 다른 Tomcat 인스턴스로 보냅니다. 그러나 세션 복제를 사용하지 않는 다른 Tomcat 인스턴스는 수신합니다. 나머지 요청에는 사용자 세션의 사본이 없으므로이 Tomcat의 경우 사용자가 세션을 시작합니다. 사용자가 세션을 느슨하게하고 웹 앱이 여전히 실행 중이지만 웹 앱과 연결이 끊어졌습니다.
  • 고정 세션 WITH 세션 복제를 사용하는 경우 :웹 앱을 사용하는 사용자가 한 명이고 톰캣 인스턴스가 3 명 있다고 가정합니다. 이 사용자는 앱에 여러 요청을 보낸 다음로드 밸런서는 첫 번째 사용자 요청을 3 개의 tomcat 인스턴스 중 하나로 보내고 세션 중에이 사용자가 보낸 다른 모든 요청은 동일한 tomcat 인스턴스로 보내집니다. 이러한 요청 중에이 Tomcat 인스턴스 (사용 된 Tomcat 인스턴스)를 종료하거나 다시 시작하면로드 밸런서는 세션 복제를 사용할 때 나머지 요청을 여전히 실행중인 다른 Tomcat 인스턴스로 보냅니다. 나머지 요청을 수신하는 인스턴스 Tomcat은 사용자 세션의 사본은 사용자가 세션을 유지합니다. 사용자는 연결을 끊지 않고 웹 앱을 계속 탐색하며 Tomcat 인스턴스의 종료는 사용자 탐색에 영향을 미치지 않습니다.

답변