세션처리에 대해서 배우던중 StateServer로 관리하는 방법과 SQLServer에 저장하는 방법을 알게 되었습니다.
각각 장단점이 있던데 만약 이것을 실무에 적용하여 동시접속자가 많거나 접속자가 많은 쇼핑몰의 장바구니 기능처럼
세션처리를 많이 해야 하는 경우가 발생할 때는 StateServer와 SQLServer중 어떤 방식이 더 효율적일까요?
초보가 궁금한 것이 많아 조언좀 부탁드립니다.^^
Comment 3
-
찌짐
2013.02.02 10:24
-
쓸만한게없네(윤선식)
2013.02.02 20:18
어떤 방식이 더 효율적이다 아니다의 차이는 아니고,
mikahaio 님 회사의 환경에 맞춰서 하셔야 할 듯.
어떤 곳은 별도의 Server 한 대를 Session State 로 사용하기도 하고, 어떤 곳은 SQL Server를 쓰기도 합니다.
네트워크 환경이나 SQL Server 상황에 따라 쓰는 거죠...
가장 좋은 방법은 직접 테스트해 보시는 것이..
다만 구성에는 신경을 좀 쓰셔야 합니다.
예를 들어, SQL Server를 세션서버로 사용하는데, 전체적으로 성능이 좋지 않거나 다른 업무와 같이 사용한다면 효율은 떨어지겠지요.
-
컴포지트
2013.02.06 17:39
먼저 업무 트랜잭션과 연관을 짓는 것이 좋습니다. 세션은 트랜잭션에 민감하거든요.
세션은 깊이 파고들수록 SQL 트랜잭션 같은 DB 트랜잭션보다 더욱 더 빡셉니다.
StateServer 나 Redis 같은 메모리 기반 DB의 배경도 알아두시면 좋을 듯 합니다.
그런 다음에 트랜잭션에 맞는 방법을 StateServer 나 SQL Server 그리고 다른 방법 등으로 구현할 방법이 생기겠죠.
극히 개인적인(?) 의견 입니다만... 동시접속자의 수도 한가지 고려 요인일수 있으나 장바구니에 누적되는 데이터의 양과 이후 프로세스에서의 사용도, 그리고 정책(특정 기간동안 장바구니 데이터를 누적해야 한다던가..)등 여러부분을 고려해야 합니다.
모(?) 오픈마켓의 경우 장바구니 자체가 전체 주문 및 이후 프로세스 그리고 서비스에서 중요한 부분을 차지하기 때문에 SQL Server에
저장하고 있습니다.