이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19063|회답: 0

[ASP.NET] . 넷 분산 아키텍처: Redis 기반 세션 공유

[링크 복사]
게시됨 2018. 10. 15. 오후 1:26:55 | | | |
1: 세션 소개

세션이란 무엇인가요? 간단히 말해, 서버가 클라이언트에게 주는 숫자입니다. 웹 서버가 실행 중일 때, 여러 사용자가 그 서버에서 운영되는 웹사이트를 탐색할 수 있습니다. 각 사용자가 처음 웹 서버에 접속할 때, 서버와 세션을 설정하고, 서버는 자동으로 사용자의 고유 신원을 식별하는 SessionID를 할당합니다. 이 SessionID는 웹 서버에서 무작위로 생성되는 24자 문자열이며, 아래 실험에서 그 작동 방식을 확인할 것입니다.

2: Asp.Net 내 세션의 중앙집중식 모드 및 구성

(1): InProc, 세션은 프로세스에 저장되며, 이는 ASP.Net 의 저장 방식이자 기본 값입니다
(2): StateServer, 세션은 별도의 상태 서비스, 즉 ASP.NET 상태 서비스에 저장됩니다
(3): SQLServer, 세션은 SQL Server 데이터베이스에 저장됩니다
(4): Custom, Oracle, SQLServer, MongoDb, Redis에 저장할 수 있는 맞춤형 저장 방법입니다
이 글은 주로 Redis에서 세션의 저장과 공유에 대해 다룹니다

3: Redis 기반 세션 제공자 구성

(1) 아래 그림에 나타난 대로 사이트 A와 B의 홈컨트롤러에 다음과 같은 변경을 가하고, 세션 생성 및 획득 기능을 추가합니다


해당 뷰


   (2) RedisProvider 구성: Microsoft.Web.RedisSessionStateProvider
아래 이미지에 보이는 대로 Nuget과 함께 Microsoft.Web.RedisSessionStateProvider를 설치하세요:

        프로필 수정:



4. 부하 분산 세션 테스트

(1) 브라우저에서 다음 입력:http://192.168.152.128/   세션 생성


     (2) 브라우저에서 다음을 입력합니다:http://192.168.152.128/home/getsessionvalue, 두 개의 탭을 열고, 반드시 같은 브라우저 창에서 열어야 합니다. 그렇지 않으면 세션 ID가 확실히 달라질 수 있습니다


그림에서 볼 수 있듯이, 사이트 A는 사이트 B가 생성한 세션을 공유합니다.
아래 그림에서 보시는 것처럼 방금 redis에서 생성한 세션도 볼 수 있습니다







이전의:Asp.Net MVC 네이티브 EF 삽입, 데이터를 올바르게 업데이트하는 방법
다음:Angular6는 jquery와 부트스트랩을 도입합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com