Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 156057|Odpowiedź: 37

[Program konsolowy] .net/c# Implementacja rozproszonego zamka Zookeeper [Kod źródłowy]

[Skopiuj link]
Opublikowano 04.04.2018 17:10:42 | | | |
Po pierwsze, dwa artykuły o .net/c# Zookeeper rozpowszechniał blokady:

Logowanie do linku jest widoczne.

Logowanie do linku jest widoczne.

W rzeczywistości powyższe dwa artykuły są błędne! Całkowicie wprowadzam w błąd programistów!


O nasTutorial instalacji Zookeepera:

【Praktyczny samouczek walki】Tutorial instalacji Zookeepera w środowisku Windows
http://www.itsvse.com/thread-4603-1-1.html
(Źródło: Architect_Programmer)

Zasada implementacji rozproszonej blokady Zookeeper jest wyjaśniona w prostych słowach:

1: Umieść wszystkie węzły potomne pod szafką

2: Wszystkie podwęzły są posortowane, oto dwie sytuacje

Jeśli Twój węzeł ma najmniejszy numer seryjny, to klient jest uważany za posiadającego blokadę. Możesz robić swoje!
Jeśli Twój węzeł nie ma najmniejszego numeru seryjnego, to nie jest ten poprzedni, który jest mniejszy od Ciebie!! Zwróćcie uwagę!
(Bo twój poprzedni węzeł może się skończyć i zwolnić blokadę!) )

3: Czekaj na powiadomienie Zookeepera, a następnie powtarzaj procedurę 2, pobierasz wszystkie węzły, sortuj je i oceń, czy jesteś najmniejszym węzłem............

Gdy już poznamy zasadę, przyjrzyjmy się, dlaczego dwa pierwsze wstępy artykułu są błędne?





Patrząc na przykład kolejności w artykule, wydaje się to poprawne, a wynik po biegu też jest poprawny! Jednak jeśli przetestujesz to kilka razy, przekonasz się, że kod w artykule jest całkowicie błędny!!!

Znając zasadę, napiszmy ją sami! Tak czy inaczej, to nie pierwszy raz, kiedy zostałem zaskoczony przez kod w Internecie!

Oto poprawny gif:



Kod wywoławczy:



Używana ZooKeeperNet.dll wersja to 3.4.6.1

[Rzeczywista walka] ASP.NET Core opiera się na wyprzedaży Redis Distributed Lock Flash Sale
https://www.itsvse.com/thread-9397-1-1.html

Na koniec dołącz kod źródłowy:

Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszęOdpowiedź





Poprzedni:Rozwiąż problem "Używanie hasła w interfejsie wiersza poleceń... "
Następny:jquery otrzymuje typ etykiety obiektu jquery
Opublikowano 06.05.2019 18:15:55 |
LZ, sprawdziłem kod źródłowy i nie obsługiwał on operacji timeoutu ZK, takich jak zwalnianie blokad, czy to przez mechanizm tymczasowego węzła ZK. Jeśli zk zostanie rozłączony, węzeł jest automatycznie usuwany.
Opublikowano 03.07.2019 11:16:25 |
Błąd biegu: Wyrzuca wyjątek typu ZooKeeperNet.KeeperException+ConnectionLossException.
Opublikowano 06.05.2019 18:17:02 |
W przypadku pojedynczego ZK może nie być problemu. Jeśli ZK to klaster, czy będą problemy z wydajnością aktualizacji zsynchronizowanych z danymi 3 ZK?
Opublikowano 08.04.2018 16:32:38 |
Dziękuję za podzielenie się, zobaczmy to
Opublikowano 01.06.2018 12:01:39 |
Dzięki za podzielenie się
Opublikowano 05.07.2018 12:31:02 |
Fajny post
Opublikowano 10.07.2018 12:11:14 |
mark
mark
mark
mark
Opublikowano 11.07.2018 15:47:20 |
Tak, pracujemy nad wdrożeniem blokady dystrybucyjnej
Opublikowano 01.08.2018 12:52:23 |
Zobaczmy to
Opublikowano 28.10.2018 19:55:23 |
Naucz się uczyć
Opublikowano 31.10.2018 16:52:15 |
Uczę się, dziękuję
Opublikowano 23.11.2018 10:24:32 |
Nieźle, bardzo dobrze
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com