의심의 여지가 없습니다. ASP.NET은 노후화되었으며 현재 대부분의 ASP.NET 응용 프로그램은 트래픽이 많고 미션 크리티컬합니다. 즉, 전체 웹 사이트 또는 많은 사용자가 충돌하는 일부 서버의 예정되지 않은 중단 시간을 감당할 수 없습니다. 이는 이러한 중단 시간으로 인해 막대한 수익 손실과 고치기 어려운 나쁜 평판이 발생하기 때문입니다.
ASP.NET 세션 상태 저장소를 올바르게 처리하지 않으면 예약되지 않은 중단 시간이 발생할 수 있습니다. Microsoft는 ASP.NET 세션 상태에 대한 네 가지 스토리지 옵션을 제공합니다.
- InProc: 작업자 프로세스 내부에 보관된 세션
- 상태서버: 별도의 프로세스에 보관된 세션
- Sql서버: SQL Server에 보관된 세션
- 정의 : 타사 사용자 지정 저장소에 보관된 세션
모두 InProc StateServer에는 ASP.NET 세션 상태를 둘 이상의 서버에 복제하는 기능이 없으므로 웹 서버가 다운되면 데이터 손실이 발생합니다. 사실 싱글만 있으면 상태서버 전체 웹 사이트에 대해 다운되면 전체 웹 사이트가 다운되기 때문에 완전히 호스를 당깁니다.
SQL서버 ASP.NET 세션 상태에 대한 세 번째 저장소 옵션이며 미러 또는 로드 균형 조정된 클러스터로 데이터베이스 클러스터를 구축할 수 있기 때문에 서버 중복성과 데이터 복제를 제공합니다.
그러나 SQL Server 클러스터를 설정하는 데 비용이 많이 들고 더 저렴하고 실행 가능한 대안이 있습니다. 또한 SQL Server(모든 관계형 데이터베이스와 마찬가지로)는 BLOB가 아닌 구조화된 관계형 데이터를 저장하도록 설계되었습니다. 반면 ASP.NET 세션 상태는 SQL Server에 BLOB로 저장됩니다. 따라서 세션 액세스 속도가 느릴 뿐만 아니라 애플리케이션을 확장하려고 하면 데이터베이스에 빠르게 병목 현상이 발생합니다.
이 모든 것에 대한 훨씬 더 나은 대안은 Custom storage 옵션을 사용하는 것입니다. ASP.NET 세션 상태 메모리 내 분산 캐시를 사용합니다(NCache)를 ASP.NET 세션 상태 저장소로 사용합니다. NCache 여러 서버에 세션을 복제하므로 하나의 서버가 다운되더라도 세션 데이터가 손실되지 않습니다. NCache 또한 인메모리이기 때문에 SQL Server보다 훨씬 빠르게 액세스할 수 있습니다. 마지막으로, NCache 웹 팜 크기가 커짐에 따라 캐시 클러스터를 쉽게 확장할 수 있습니다. 클러스터에 더 많은 캐시 서버를 추가하기만 하면 병목 현상이 발생하지 않습니다.
그리고 무엇보다도 사용하는 데 프로그래밍이 필요하지 않습니다. NCache ASP.NET 세션 상태 저장소용. web.config를 수정하여 다음을 지정하기만 하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<assemblies> <add assembly="Alachisoft.NCache.SessionStoreProvider, Version=4.4.0.0, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </assemblies> <sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" sessionAppId="NCacheTest" enableLogs="false" cacheName="myReplicatedCache"/> </providers> </sessionState> |
음, 웹 팜에서 실행 중인 ASP.NET 응용 프로그램이 있는 경우 다음을 살펴보십시오. NCache ASP.NET 세션 상태 저장소를 어떻게 개선하는지 확인하십시오. 다음은 몇 가지 유용한 링크입니다. NCache:
고가용성과 안정성을 위해 캐시 클러스터에 최소 4개의 전용 서버로 시작할 수 있으며, 애플리케이션에 대한 최적의 성능과 확장성을 얻기 위해 웹/앱 서버와 캐시 서버 간에 1:XNUMX 비율을 유지하는 것이 좋습니다. .