먼저, .net/c# Zookeeper에 관한 두 개의 배포 자물쇠 기사입니다:
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
사실, 위의 두 글은 틀렸습니다! 프로그래밍 개발자들을 완전히 오해의 소지가 있습니다!
소개Zookeeper 설치 튜토리얼:
Zookeeper 분산 잠금장치의 구현 원리는 간단한 용어로 설명됩니다:
1: 모든 자식 노드를 락커 아래에 넣는다
2: 모든 하위 노드가 정렬되어 있으며, 다음은 두 가지 상황입니다
노드의 일련번호가 가장 작으면, 클라이언트는 잠금을 획득한 것으로 간주됩니다. 네가 할 수 있는 게 있어! 만약 당신의 노드가 가장 작은 일련번호가 아니라면, 가장 작은 노드를 듣는 노드는 이전 노드가 아닙니다!! 여기 집중하세요! (이전 노드가 타임아웃되어 잠금을 해제할 수 있기 때문입니다!) )
3: Zookeeper 알림을 기다린 후, 2번 연산을 반복하여 모든 노드를 뽑아 정렬하고, 자신이 가장 작은 노드인지 판단합니다............
원리를 알았다면, 왜 이 글의 상위 두 서론이 틀렸는지 살펴보겠습니다.
기사에 나온 순서 예시를 보면 맞는 것 같고, 달리기 후 결과도 맞습니다! 하지만 몇 번 테스트해보면 기사 내 코드가 완전히 틀렸다는 것을 알게 될 것입니다!!!
그러니 원칙을 알고 있으니 직접 써봅시다! 어쨌든, 인터넷에서 코드에 의해 좌절된 게 이번이 처음은 아니에요!
정확한 GIF는 다음과 같습니다:
통화 코드:
ZooKeeperNet.dll 사용되는 버전은 3.4.6.1입니다
마지막으로 소스 코드를 첨부하세요:
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
|