Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 34174|Απάντηση: 5

[.NET Πυρήνας] Το .NET Core υλοποιεί την ανάλυση της αρχής του κατανεμημένου κλειδώματος με βάση το Redis

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 22/9/2020 9:17:22 π.μ. | | | |
Σε επιχειρηματικά σενάρια, δεν επιτρέπονται ταυτόχρονες λειτουργίες περιεχομένου, όπως απογραφή εμπορευμάτων, το ίδιο αρχείο κ.λπ., και η εφαρμογή προγράμματος αναπτύσσεται σε πολλούς διακομιστές.
[Πραγματική μάχη] Το ASP.NET Core βασίζεται στην πώληση φλας κατανεμημένης κλειδαριάς Redis
https://www.itsvse.com/thread-9397-1-1.html

Το προηγουμένως γραμμένο κατανεμημένο κλείδωμα που βασίζεται σε zk έχει ως εξής:

.net/c# Υλοποίηση κατανεμημένου κλειδώματος Zookeeper [Πηγαίος κώδικας]
https://www.itsvse.com/thread-4651-1-1.html

Τι πρέπει επίσης να γνωρίζετε για να διαβάσετε αυτό το άρθρο:

Πτητικό vs. Αλληλένδετο vs. κλειδαριά
https://www.itsvse.com/thread-5023-1-1.html

C# Παράλληλος Υπολογισμός Parallel.For&Parallel.For
https://www.itsvse.com/thread-3671-1-1.html

Το .NET Core υλοποιεί κατανεμημένα κλειδώματα που βασίζονται στο RedisΗ αρχή είναι να καλέσετε την εντολή SETNX του redis, εάν το κλειδί υπάρχει ήδη, η εντολή SETNX δεν κάνει τίποτα. Η εντολή επιστρέφει 1 όταν η ρύθμιση είναι επιτυχής και 0 όταν η ρύθμιση αποτυγχάνει.

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Δημιουργήστε ένα νέο έργο κονσόλας .NET Core 3.1, προσθέστε μια αναφορά StackExchange.Redis και χρησιμοποιήστε την εντολή nuget ως εξής:

Καλούμε τη μέθοδο StringSet της βιβλιοθήκης, μέσω του πηγαίου κώδικα StackExchange.Redis, μπορούμε να δούμε ότι η μέθοδος StringSet θα καλέσει την ιδιωτική μέθοδο του GetStringSetMessage για να εκτελέσει διαφορετικές εντολές συνόλου μέσω της τιμής απαρίθμησης του πότε, ο κώδικας έχει ως εξής:

Εκτελούμε την εντολή SETNX 2000 φορές μέσω μιας παράλληλης δοκιμαστικής κλήσης στο πρόγραμμα, η οποία εκτελείται σε 2 δόσεις, στις οποίες η ισχύς της προσωρινής μνήμης του κλειδιού είναι 5 δευτερόλεπτα, δηλαδή το κλειδί θα απελευθερωθεί αυτόματα μετά από 5 δευτερόλεπτα, δηλαδή θα απελευθερωθεί το κλείδωμα.

Ο κωδικός έχει ως εξής:


Όπως μπορείτε να δείτε, συνολικά 2 επιτυχημένες εισαγωγές και 1998 αποτυχημένες προσπάθειες είναι ακριβώς αυτό που περιμέναμε και οι αποδόσεις είναι οι εξής:


Προς το παρόν, η κλειδαριά δεν έχει ακόμη απελευθερωθεί.
(Τέλος)









Προηγούμενος:Απέτυχε η εύρεση λύσης για τμήμα της διαδρομής "\bin\roslyn\csc.exe"
Επόμενος:Το EF Core Series 2 ενσωματώνει το OnModelCreating, δημιουργεί ευρετήρια χρησιμοποιώντας αντανακλάσεις και πολλά άλλα
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 26/9/2020 3:37:52 μ.μ. |
δοκιμή123
Δημοσιεύτηκε στις 20/11/2020 11:18:31 π.μ. |
Εάν υπάρχει ένα περιβάλλον πολλαπλών νημάτων και ένα περιβάλλον πολλαπλών παρουσιών κατά την ανάπτυξη κοντέινερ, υπάρχει πρόβλημα με αυτόν τον χειρισμό;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 20/11/2020 11:29:44 π.μ. |
Qiuyueming Δημοσιεύτηκε στις 2020-11-20 11:18
Εάν υπάρχει ένα περιβάλλον πολλαπλών νημάτων και ένα περιβάλλον πολλαπλών παρουσιών κατά την ανάπτυξη κοντέινερ, υπάρχει πρόβλημα με αυτόν τον χειρισμό; ...

Multi-instance σημαίνει multi-threading, και στον πηγαίο κώδικα, το multi-threaded καλεί redis, και μόνο ένα νήμα κλειδώνει
Δημοσιεύτηκε στις 22/3/2022 2:32:40 μ.μ. |
Υποστήριξη, υποστήριξη
Δημοσιεύτηκε στις 23/3/2022 11:15:30 π.μ. |
Μάθετε ότι αυτό είναι καλό @
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com