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

보기: 50989|회답: 2

[출처] .NET Core는 Redis Lua 기반 분산 락을 구현합니다 [소스 코드 포함]

[링크 복사]
2021-5-9 21:11:18에 게시됨 | | | |
분산 잠금의 응용 시나리오: 서비스가 개발되면서 단일 애플리케이션이 클러스터가 되고, 분산 잠금은 동일 자원에서 동시 상황에서 서로 다른 프로세스(스레드)의 동작을 해결하며, 일부 서비스는 예금 금액 변경, 상품 재고 변경 등과 같이 단일 스레드가 작동하도록 해야 합니다.

복습:

.NET Core는 Redis 기반의 분산 잠금 원칙 파싱을 구현합니다
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Zookeeper 분산 잠금 구현 [소스 코드]
https://www.itsvse.com/thread-4651-1-1.html

Redis는 상세한 설명을 위해 Lua 스크립트를 사용합니다
https://www.itsvse.com/thread-9634-1-1.html

[실제 전투] ASP.NET 코어는 레디스 배포 잠금 플래시 세일을 기반으로 합니다
https://www.itsvse.com/thread-9397-1-1.html

이전 글 "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill"에서, 락을 추가할 때 락 시간을 연장하는 백그라운드 스레드도 활성화했습니다. 이를 통해 락이 해제될 때 다른 스레드가 점유한 락이 실수로 삭제되지 않도록 했습니다.

Redis를 배우고 나면 점유 잠금과 해제 잠금을 쉽게 수행할 수 있습니다.


먼저, 다음과 같이 렌더링을 살펴보겠습니다:



먼저 1000개의 병렬 스레드를 열어 자물쇠를 두고 경쟁했고, 자물쇠가 5초 동안 만료되었습니다.5초 만에 1000개의 스레드를 완료했는데, 단 1개의 스레드만이 성공적으로 잠금을 획득했습니다6초간 기다리면 자물쇠가 자동으로 해제되고, 두 번째 과제가 성공적으로 자물쇠를 획득하고 즉시 해제되었으며, 다음 코드도 자물쇠를 성공적으로 획득한 것을 볼 수 있습니다.

잠금을 얻는 루아 스크립트는 다음과 같습니다:

락을 해제하는 루아 스크립트는 다음과 같습니다:

인터페이스 코드:

소스 코드 다운로드:하이퍼링크 로그인이 보입니다.

"[연습] ASP.NET Core 기반 Redis의 분산 자물쇠 플래시 판매"는 이 문서를 사용하여 구현되었으며, 저희 웹사이트는 이를 시뮬레이션합니다10,000점그리고 HTTP 요청 시간을 시뮬레이션하는 콘솔을 작성했습니다매진 행사는 6초 만에 완료됩니다, 아래 그림에서 볼 수 있습니다:

[실제 전투] ASP.NET 코어는 레디스 배포 잠금 플래시 세일을 기반으로 합니다
https://www.itsvse.com/thread-9397-1-1.html



테스트 시뮬레이션 요청 코드를 수정하세요:



(끝)




이전의:카프카는 수동으로 오프셋 오프셋을 설정합니다
다음:ASP.NET Core가 요청 전체 URL 링크를 받습니다
2021-11-4 13:50:43에 게시됨 |
{:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:}
2022-6-11 13:36:33에 게시됨 |
고마워요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com