문제

.NET 세션 데이터 (높은 트래픽 웹 사이트의 경우)를 캐싱하거나 저장하기위한 무료 고가의 고성능 솔루션을 조사하고 있습니다. DB를 사용하고 싶지 않습니다 (DB는 트래픽 증가에 대한 병목 현상)입니다.

키/가치 저장소가 있지만, 내가 아는 한 .NET 객체를 지원하지 않는 한. 또한 고 가용성을 지원하는 일부 분산 또는 복제 캐싱 솔루션이 있습니다.

그러나 세션 데이터를 저장하는 가장 좋은 방법은 무엇입니까 (모노에서 실행되는 경우 더 나은 방법)?

편집하다: 고 가용성을 위해서는 사용자 세션 데이터를 둘 이상의 컴퓨터로 복제해야합니다. 최상의 방법을 달성하는 데 필요한 경우 직렬 라이저를 쓸 수 있습니다. 사용자 세션에는 전자 상거래 사이트에 필요한 표준 객체가 포함됩니다.

안부, Sirmak

도움이 되었습니까?

해결책

Windows 서비스로 실행되는 Session State Server를 사용할 수 있지만 웹 팜 시나리오에서 해당 작업을 수행하려면 웹 서버 중 하나가 Session State Service를 실행해야하며 다른 웹 서버는 조정됩니다. 그 단일 웹 서버. 물론 웹 서버가 다운되어 서비스를 실행하는 경우 문제가됩니다.

또 다른 옵션은 메모리 세션 상태 서버에 분산 된 Memcachd를 사용하는 것입니다. 이것은 무료이며 이미이 프레임 워크를위한 .NET를위한 공급자가 있습니다. 그것은 상당히 성숙하고 한동안 주변에있었습니다.

지출 할 돈이 있으면 서버를 확장하는 것이 옵션 일 수 있습니다. 그러나 실제로 대규모 웹 사이트에서 스케일 아웃 기술을 때때로 재활용해야한다고 들었습니다.

Microsoft에서 구부러진 것은 속도입니다. 이것은 아직 출시되지 않았으며 성숙한 기술이 아닙니다.

기술 및 재무 요구 사항에 맞는 솔루션을 선택해야합니다.

다른 팁

당신이 무료로 말하고 있다면, 그렇다면 MySQL 가능합니다 대량 트래픽 처리 (오른쪽 하드웨어에서)

글쎄, 먼저 세션에서 무엇을 저장하고 있는지 결정해야합니다. 직렬화 할 수없는 것들이 있습니다. 그러나 관련 객체에 대한 자신의 직렬화 루틴을 구현하여 구성하는 방식으로 저장할 수 있습니다. 예를 들어 내부적으로 바이너리 세르 리아 화를 한 다음 객체를 Base64 인코딩 된 문자열로 캐싱 도구 (Memcached 또는 무엇이든)로 작성하여 검색 할 수 있습니다.

그러나 여기서 어떤 종류의 확장 성이 여기에서 갈 것인가? 요청 당 서버간에 사용자를 교환하고 있습니까? 그렇다면 적어도 중앙 또는 적어도 미러링 된 캐시 시스템이 필요합니다.

사용자를 동일한 서버에 보관하지만 많은 경우가 많으면 실제로 중요하지 않으면 동일한 컴퓨터에서 외부 프로세스를 사용하여 캐시를 사용할 수 있습니다.

좀 더 많은 정보를 제공해야한다고 생각합니다. 나는 모노에서 물건을 달리는 것에 익숙하지 않지만 (그래서 나는 단지 ASP.NET State Service를 추천합니다) 내 추측은 Memcached와 같은 타사 캐싱 프로세스가 좋을 것입니다.

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