문제

Tomcat/Scala로 사용자 상태를 유지하는 가장 좋은 방법은 무엇입니까?내 첫 번째 생각은 항상 세션에 계정 정보를 유지하고 계정 세션에 대한 정보가 없으면 사용자를 로그인 페이지로 리디렉션하는 것입니다.이것이 실행 가능한 모델입니까, 아니면 사용자 정보를 유지하는 더 현명한 방법이 있습니까?기본적인 장바구니 사이트를 복제하려고 하는데 지금은 문제에 대해 고민 중입니다.

도움이 되었습니까?

해결책

이 고양이의 가죽을 벗기는 방법에는 여러 가지가 있습니다.개체의 무게가 충분히 가볍고 트래픽 양이 충분히 낮다면 세션에 정보를 저장할 수 있습니다.이는 아마도 가장 쉬운 솔루션일 수 있지만 확장 또는 클러스터링이 필요할 때 어려움을 겪을 수 있습니다.

Tomcat 스케일링, 클러스터링, DB 세션 스토어 등을 경험해 본 결과나에게는 별로 효과가 없었습니다.

또 다른 방법은 쿠키를 사용하여 자신의 토큰을 관리하는 것입니다.그런 다음 특정 사용자 토큰에 대한 실제 정보를 서버에 저장합니다.가장 순진한 구현은 단순히 메모리 내 맵을 가지지만 앱을 다시 시작할 때 모든 데이터가 손실되는 단점이 있습니다.

정보를 데이터베이스에 유지하고 모든 요청에서 사용자 토큰으로 조회를 수행할 수 있습니다(일부 캐싱 전략 사용).또한 이를 통해 클러스터링에 대한 큰 걱정 없이 여러 앱 서버로 확장할 수 있습니다. 각 인스턴스는 단순히 사용자 토큰을 조회하고 공유 데이터베이스에 대한 조회 요청을 수행합니다.

멋진 인터페이스 뒤에 실제 구현을 래핑하면 쉽고 저렴한 세션 솔루션으로 시작하고 나중에 필요한 경우 점차적으로 더 복잡한 구현으로 이동할 수 있습니다.한 가지 주의할 점은 첫 번째 구현 시 서블릿 관련 정보가 인터페이스에 누출되지 않도록 각별히 주의해야 한다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top