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

Άποψη: 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 Core βασίζεται στην πώληση φλας κατανεμημένης κλειδαριάς Redis
https://www.itsvse.com/thread-9397-1-1.html

Στο προηγούμενο άρθρο "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", όταν προσθέσαμε μια κλειδαριά, ενεργοποιήσαμε επίσης ένα νήμα φόντου για να παρατείνουμε τον χρόνο κλειδώματος, έτσι ώστε να διασφαλίσουμε ότι όταν απελευθερωθεί η κλειδαριά, η κλειδαριά που καταλαμβάνεται από άλλα νήματα δεν θα διαγραφεί κατά λάθος.

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


Αρχικά, ας ρίξουμε μια ματιά στις αποδόσεις ως εξής:



Πρώτα ανοίξαμε 1000 παράλληλα νήματα για να ανταγωνιστούμε για την κλειδαριά και η κλειδαριά έληξε για 5 δευτερόλεπτα.Ολοκληρώσαμε 1000 νήματα σε 5 δευτερόλεπτα και μόνο 1 νήμα απέκτησε με επιτυχία την κλειδαριάΑφού περιμένετε 6 δευτερόλεπτα, η κλειδαριά θα απελευθερωθεί αυτόματα και μπορείτε να δείτε ότι η δεύτερη εργασία έλαβε με επιτυχία την κλειδαριά και απελευθέρωσε αμέσως την κλειδαριά και ο επόμενος κωδικός έλαβε με επιτυχία την κλειδαριά.

Το σενάριο lua για να αποκτήσετε το κλείδωμα είναι το εξής:

Το σενάριο lua για την απελευθέρωση της κλειδαριάς είναι το εξής:

Κωδικός διεπαφής:

Λήψη πηγαίου κώδικα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Τροποποίηση Το "[Practice] ASP.NET Core based on Redis distributed lock flash sale" υλοποιείται χρησιμοποιώντας αυτό το άρθρο και ο ιστότοπός μας το προσομοιώνει10000 είδηκαι, στη συνέχεια, έγραψε μια κονσόλα για να προσομοιώσει τον χρόνο αίτησης HTTPΤο sold-out ολοκληρώνεται σε 6 δευτερόλεπτα, όπως φαίνεται στο παρακάτω σχήμα:

[Πραγματική μάχη] Το ASP.NET Core βασίζεται στην πώληση φλας κατανεμημένης κλειδαριάς Redis
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 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com