Σε κατανεμημένες εφαρμογές, είναι συχνά απαραίτητο να τροποποιηθούν οι ιδιότητες διαμόρφωσης, όπως η ενημέρωση συμβολοσειρών σύνδεσης βάσης δεδομένων και η ενημέρωση διευθύνσεων προσωρινής μνήμης. Εάν δεν υπάρχουν πολλές εφαρμογές, μπορείτε να το τροποποιήσετε με μη αυτόματο τρόπο, όταν υπάρχουν πολλές εφαρμογές, η κατανεμημένη διαμόρφωση είναι πολύ σημαντική, αυτό το άρθρο εξηγεί την αρχιτεκτονική αποθήκευσης κλειδιού/τιμής του .net/c# που βασίζεται στο Consul για την υλοποίηση κατανεμημένης διαμόρφωσης.
Εγκαταστήστε το Consul
Σύντομη εισαγωγή
Το Consul είναι ένα εργαλείο ανακάλυψης και εγγραφής υπηρεσιών που είναι κατανεμημένο και εξαιρετικά επεκτάσιμο.
Το Consul περιλαμβάνει κυρίως τα ακόλουθα χαρακτηριστικά:
- Εντοπισμός υπηρεσίας: Υποστήριξη για εγγραφή και εντοπισμό υπηρεσίας για πρωτόκολλα HTTP και DNS.
- Έλεγχοι παρακολούθησης: Υποστηρίζει πολλαπλούς ελέγχους υγείας.
- Αποθήκευση κλειδιού/τιμής: Υποστηρίζει κατανεμημένη αποθήκευση δεδομένων KV μέσω HTTP API.
- Υποστήριξη πολλαπλών κέντρων δεδομένων: Υποστηρίζεται οποιοσδήποτε αριθμός κέντρων δεδομένων.
Εγκατάσταση
Λήψη Διεύθυνσης:
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Αυτό το άρθρο χρησιμοποιεί τα Windows 10 x64 ως περιβάλλον δοκιμής.
Μετά τη λήψη και την αποσυμπίεση, εκτελέστε το χρησιμοποιώντας την εντολή cmd, ο κωδικός είναι ο εξής:
dev σημαίνει εκτέλεση σε λειτουργία ανάπτυξης και η παράμετρος -client μπορεί να χρησιμοποιηθεί για να καθορίσει σε ποια IP επιτρέπεται να έχει πρόσβαση ο πελάτης, για παράδειγμα, -client 127.0.0.1 σημαίνει ότι μπορεί να χρησιμοποιηθεί και σε λειτουργία ανάπτυξης, τα δεδομένα δεν θα διατηρηθούν.
(Λειτουργία προγραμματιστή, η λειτουργία συμπλέγματος συνιστάται για περιβάλλοντα παραγωγής)
Πρόσβαση:http://127.0.0.1:8500/ui/dc1/servicesΔες παρακάτω:
Διεπαφή KV
Διεύθυνση τεκμηρίωσης API:
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Αρχικά, χρησιμοποιώ μια διαδικτυακή ιστοσελίδα και δημιουργώ ένα νέο ζεύγος κλειδιού/τιμής.
Λάβετε την τιμή μέσω της διαδρομής αιτήματος GET /v1/kv/:key.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, "Κλειδί": "δοκιμή", "Σημαίες": 0, "Τιμή": "aXRzdnNlLmNvbQ==", "CreateIndex": 194, "ΤροποποίησηΕυρετηρίου": 194 }
]
- Το CreateIndex είναι μια εσωτερική τιμή ευρετηρίου που αντιπροσωπεύει πότε δημιουργήθηκε η καταχώριση.
- Το ModifyIndex είναι το τελευταίο ευρετήριο που τροποποιεί αυτό το κλειδί. Αυτός ο δείκτης αντιστοιχεί στην τιμή κεφαλίδας που επιστρέφεται από το X-Consul-Index στην απόκριση και μπορεί να οριστεί από ? Η παράμετρος ερωτήματος ευρετηρίου χρησιμοποιείται για τη δημιουργία ερωτημάτων αποκλεισμού. Μπορείτε ακόμη και να εκτελέσετε ερωτήματα αποκλεισμού σε ολόκληρο το υποδέντρο του καταστήματος KV: τι θα γινόταν αν; Το recurse παρέχει ένα ερώτημα και η επιστρεφόμενη τιμή X-Consul-Index αντιστοιχεί στην πιο πρόσφατη τιμή του ModifyIndex στο πρόθεμα, χρησιμοποιώντας το ερώτημα αποκλεισμού ?index θα περιμένει μέχρι να ενημερωθεί οποιοδήποτε κλειδί σε αυτό το πρόθεμα.
- Το LockIndex είναι ο αριθμός των φορών που αποκτήθηκε με επιτυχία το κλειδί στην κλειδαριά. Εάν το κλείδωμα κρατηθεί, το πλήκτρο Session θα παρέχει την περίοδο λειτουργίας στην οποία ανήκει το κλείδωμα.
- Το κλειδί είναι απλώς η πλήρης διαδρομή της εισόδου.
- Οι σημαίες είναι αδιαφανείς ανυπόγραφοι ακέραιοι αριθμοί που μπορούν να επισυναφθούν σε κάθε καταχώρηση. Οι πελάτες μπορούν να επιλέξουν να χρησιμοποιήσουν αυτήν την επιλογή, αλλά είναι λογικό για την εφαρμογή τους.
- Η τιμή είναι μια κωδικοποιημένη σταγόνα δεδομένων base64.
.NET/C# Key/Value ανάγνωση και εγγραφή
Αρχικά, δημιουργήστε ένα έργο .NET 4.6.1 και χρησιμοποιήστε το nuget για να εγκαταστήσετε τα απαραίτητα πακέτα, ως εξής:
Ο κωδικός έχει ως εξής:
Οι αποδόσεις είναι οι εξής:
- Το βασικό κλειδί είναι η διάκριση πεζών-κεφαλαίων
- Διπλότυπο κλειδί, οι τιμές τιμών θα αντικατασταθούν
(Τέλος) |