분산 세션이란 무엇인가요?
Tomcat, jboss 등과 같은 기존 애플리케이션 서버는 대부분 단일 시스템에서 세션 관리를 구현합니다. 대규모 분산 웹사이트의 경우 비즈니스를 지원하는 하나의 서버가 아니라 분산 클러스터이며 요청이 서로 다른 서버 간에 이동합니다. 그렇다면 서버 간에 세션을 동기화하는 방법은 무엇입니까? 기존 웹사이트는 일반적으로 데이터의 일부를 쿠키에 저장하여 분산 환경에서 세션 작업을 방지합니다. 여기에는 많은 단점이 있습니다. 한편으로는 쿠키의 보안이 널리 비판을 받아온 반면, 쿠키에 저장되는 데이터의 크기는 제한되어 있습니다. 모바일 인터넷이 발전함에 따라 많은 경우 모바일 단말기의 세션 요구 사항을 고려할 필요가 있으며, 이로 인해 세션 동기화를 위해 쿠키를 사용하는 경우의 단점이 더욱 두드러지게 됩니다. 이러한 상황에서 분산 세션이 탄생했습니다.
시스템 안정성 요구 사항이 높은 사용자의 경우 세션을 DB에 유지하여 다운타임 중에 세션이 쉽게 손실되지 않도록 할 수 있지만 단점도 분명하며 전체 처리량도 높습니다. 시스템의 영향이 크게 영향을 받습니다. 또 다른 해결책은 더 높은 읽기 및 쓰기 성능을 보장할 수 있는 memcache와 같은 캐시 클러스터에 세션을 균일하게 저장하는 것입니다. 이는 동시성이 큰 시스템에 매우 중요하며 보안 고려 사항에서 세션에는 유효 기간이 있습니다. 캐시 저장소를 사용하면 캐시의 무효화 메커니즘을 더 쉽게 활용할 수도 있습니다. 캐시 사용의 단점은 캐시가 다시 시작되면 캐시에 저장된 세션이 손실되어 사용자가 세션을 다시 설정해야 한다는 것입니다.