Първо, следните две статии в .net/c# Zookeeper разпространяваше ключалки:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Всъщност горните две статии са грешни! Напълно подвеждащо програмистите!
За насРъководство за инсталиране на Zookeeper:
Принципът на имплементация на разпределената заключваща система Zookeeper е обяснен по прост начин:
1: Събери всички дъщерни възли под шкафчето
2: Всички подвъзли са сортирани, ето две ситуации
Ако вашият възел има най-малкия сериен номер, клиентът се счита, че е получил заключването. Можеш да правиш каквото си правиш! Ако вашият възел не е с най-малък сериен номер, възелът, който слуша най-малкия възел, не е предишният възел, който е по-малък от вас!! Обърнете внимание тук! (Защото предишният ти възел може да изтече и да освободи заключването!) )
3: Изчакай известието от Zookeeper, след което повтори операцията на 2, изтегли всички възли, сортирай ги и прецени дали си най-малкият възел............
След като знаем принципа, нека разгледаме защо първите две въведения в статията са грешни?
Като гледам примера с реда в статията, изглежда правилен, а резултатът след бягане също е правилен! Въпреки това, ако го тествате няколко пъти, ще разберете, че кодът в статията е напълно неправилен!!!
Така че, знаейки принципа, нека го напишем сами! Както и да е, не е първият път, когато ме засяга код в интернет!
Ето правилния гиф:
Код за повикване:
Използваната версия на ZooKeeperNet.dll е 3.4.6.1
Накрая, прикачете изходния код:
Туристи, ако искате да видите скритото съдържание на този пост, моля Отговор
|