2009-05-20 4 views
4

현재 단일 웹 서버에서 실행중인 ASP.NET 웹 응용 프로그램이 있습니다. 이 서버는 CPU 사용과 관련하여 위험 영역에 도달하려고하고 있으며 두 번째 서버를 배포하려고합니다.세션 상태 서버 중복

세션 상태를 처리하는 가장 좋은 방법은 무엇입니까?

현재 InProc가 실행 중입니다. 하지만 WLB 로테이션에서 단일 서버를 제외하여 유지 관리 작업을 수행하기 위해 2 개 이상의 서버가있는 것은 아닙니다. 고정로드 밸런싱을 사용하더라도 WLB 순환에서 서버를 제외하기 전에 모든 사용자가 종료 될 때까지 기다려야합니다.

그래서 나는이 MSDN 페이지를 찾고 있었어요 :

http://msdn.microsoft.com/en-us/library/ms178586(VS.80).aspx 나는 내 주요 질문은 추측 : 우리는 주 서버 모드를 사용하는 경우. 두 대의 서버에 상태 서버를 배치하여 rendudancy를 보장 할 수 있습니까? 단일 실패 지점을 방지합니다.

답변

1

표준 옵션 중 하나를 원하면 장애 조치 (failover) 클러스터에서 SQL Server를 사용하십시오. BTW memcacheddb 고려해 봤어?

+0

memcached에 대해 자세히 알려주십시오. – MartinHN

+0

Martin은 미안 해요. memcachedDB를 만들었 습니다만, memcached를 사용하면 쉽게 복제 할 수 있습니다. http://memcachedb.org. memcached 제공자가 http://www.microcoding.com/memcachedproviders와 함께 작동하는지 확인해야합니다 (http://www.codeplex.com/memcachedproviders). – RichardOD

+0

오. 그것은 "귀하의 책임에 따라 사용 - 우리는 아무것도 제공하거나 보증하지 않습니다"라고 생각합니다. – MartinHN

0

스케일 아웃 상태 서버 (빠를수록 좋음) 또는 SQL 상태 (더 느림)를 사용하십시오. 그러나 직렬화 할 수있는 객체를 Session 상태로 저장하지 않으면 마이그레이션 후에 예외가 발생하므로주의하십시오.

+2

또한 Global.asax의 Session_End는 상태 서버에서 실행되지 않으므로 inProc을 사용할 때이 이벤트에 접속하면 기능이 중단됩니다. – RichardOD

0

SQL 상태 서버는 더 좋은 옵션이 될 것입니다 :이 링크는 Sql State Server 를 도움이 될 수 있습니다. 여러 컴퓨터에서 상태 서버를 실행할 수 있다고 생각하지 않습니다.

0

에 대해 당신이 MIX09 세션을 보는 것이 좋습니다. 유일한 단점은 대용량 데이터 세트를 가지고 있다면 동료간에 복제하는 데 오래 걸리는 것입니다.