τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Οι μικροϋπηρεσίες είναι ααρχιτεκτονικό στυλ(Διαφορετικά από τη μονολιθική αρχιτεκτονική, την κατακόρυφη αρχιτεκτονική, την κατανεμημένη αρχιτεκτονική και την αρχιτεκτονική SOA), οι εφαρμογές χωρίζονται σε μικρότερες υπηρεσίες που βασίζονται σε διαδικασίες.
Ανοιξιάτικο σύννεφο είναι αΠλαίσιο μικροϋπηρεσιών , το οποίο παρέχει μια σειρά από λύσεις κατανεμημένου συστήματος. Παρέχει δυνατότητες όπως ανάπτυξη και ανάπτυξη μικροϋπηρεσιών, καταχώριση και ανακάλυψη υπηρεσιών, διακυβέρνηση υπηρεσιών και λειτουργία και συντήρηση υπηρεσιών μέσω εξαρτημάτων.
1)Spring Cloud Netflix:
Eureka: κέντρο εγγραφής
Κορδέλα: εξισορρόπηση φορτίου
Προσποιηση: τηλεκληση
Hystrix: διακόπτης κυκλώματος σέρβις
Zuul/Gateway: Πύλη
2)Spring Cloud Config: Κεντρικό εργαλείο διαχείρισης διαμόρφωσης, εξωτερική αποθήκευση της διαμόρφωσης εφαρμογής, μπορεί να χρησιμοποιηθεί για εφαρμογές Spring ή μη Spring.
3)Spring Cloud Bus: Δίαυλος συμβάντων και μηνυμάτων, που χρησιμοποιούνται για τη διάδοση αλλαγών κατάστασης ή γεγονότων αλλαγής διαμόρφωσης στο σύμπλεγμα.
4)Spring Cloud Consul: Εργαλείο ανακάλυψης και διαμόρφωσης υπηρεσιών, ενσωματωμένο άψογα με δοχεία Docker.
5)Spring Cloud Security: Μια εργαλειοθήκη ασφαλείας που παρέχει υποστήριξη για την ασφάλεια και τον έλεγχο ταυτότητας εφαρμογών.
6)Spring Cloud Sleuth: κατανεμημένη ανίχνευση αλυσίδας κλήσεων, συμβατή με την ανίχνευση Zipkin, HTrace και ELK.
7)Spring Cloud Cluster: Εκλογή αρχηγού, που υλοποιείται μέσω της αφαίρεσης των Zookeeper, Redis και Consul.
8)Spring Cloud Data Flow: Ενορχήστρωση μικροϋπηρεσιών, εύκολη στη χρήση μέσω της διεπαφής μεταφοράς και απόθεσης ή REST API.
9)Spring Cloud Stream: Ένα ελαφρύ πλαίσιο μικροϋπηρεσιών που βασίζεται σε συμβάντα για γρήγορη δημιουργία εφαρμογών που συνδέονται με εξωτερικά συστήματα.
10)Spring Cloud Task: Ένα βραχυπρόθεσμο πλαίσιο μικροϋπηρεσιών για τη γρήγορη δημιουργία εφαρμογών που ολοκληρώνουν εργασίες επεξεργασίας δεδομένων παρτίδας.
Springcloud tutorial--4 Λεπτομερής επεξήγηση της χρήσης του gateway zuul_zuul tutorial χρήσης-CSDN
υπάρχεισε κατανεμημένα συστήματα , εάν ένας κόμβος υπηρεσίας αποτύχει ή παρουσιαστεί μια ανωμαλία στο δίκτυο, ο καλών μπορεί να αποκλειστεί και να περιμένει Εάν το χρονικό όριο έχει ρυθμιστεί σε μεγάλο χρονικό διάστημα, οι πόροι του καλούντος μπορεί να εξαντληθούν.Αυτό με τη σειρά του οδηγεί σε εξάντληση των πόρων στο ανοδικό σύστημα του καλούντος, με αποτέλεσμα τελικάχιονοστιβάδα του συστήματος . Οι διακόπτες κυκλώματος μπορούν να αποτρέψουν αποτελεσματικά τις χιονοστιβάδες.
Εάν αντιμετωπίσετε μια ξαφνική αύξηση της επισκεψιμότητας, η γενική προσέγγιση είναι ναΜη βασικές επιχειρηματικές λειτουργίεςΥιοθετούνται μέτρα υποβάθμισης των υπηρεσιών για την προστασία της κανονικής εξυπηρέτησης των βασικών επιχειρηματικών λειτουργιών, ενώ για τις βασικές λειτουργικές υπηρεσίες, πρέπει να υιοθετηθούν τρέχοντα περιοριστικά μέτρα.
Σέρβις διακόπτης κυκλώματος:γενικά Εμφανίζεται στην πλευρά του διακομιστή (ο σκοπός είναι να επιτραπεί στον καλούντα να αποτύχει γρήγορα όταν μια υπηρεσία λήγει ή είναι μη φυσιολογική, προκαλεί ασφάλεια, παρόμοια με μια ασφάλεια στην πραγματική ζωή). (Μερικές φορές μπορεί επίσης να ρυθμιστεί στον πελάτη ώστε να αποτυγχάνει γρήγορα όταν βρεθεί μια εξαίρεση κατά την κλήση μιας συγκεκριμένης υπηρεσίας).
Υποβάθμιση υπηρεσίας: γενικά συμβαίνει στην πλευρά του πελάτη, λαμβάνοντας υπόψη τη συνολική φόρτωση του αιτήματος ιστότοπου, όταν μια υπηρεσία αποσυνδέεται ή τερματίζεται, η υπηρεσία δεν θα καλείται πλέον (μερικές φορές μπορεί να ρυθμιστεί και από την πλευρά του διακομιστή ξαφνική κίνηση, θα υποβαθμιστούν οι βασικές λειτουργίες για την προστασία των βασικών λειτουργιών).
Περιορισμός ρεύματος: συνήθως εμφανίζεται στην πλευρά του διακομιστή.
@EnableCircuitBreaker: ενεργοποιημένο στην εφαρμογήασφάλεια ηλεκτρική
@HistrixCommand(fallbackMethod="xxxFallback",commandProperties = {
}): Ο σχολιασμός σύντηξης προστίθεται στον σχολιασμό υποβάθμισης Συμπληρώστε τις συνθήκες σύντηξης στην εντολή Ιδιότητες = {}.HystrixPropertiesManagerΕλεγχος.
- @HystrixCommand(fallbackMethod = "xxxFallback",commandProperties = {
- //20秒内出现3个请求,失败率为30%,就会触发熔断,30秒内不再发送调用
- // 条件一: 请求数量达到3个
- @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_REQUEST_VOLUME_THRESHOLD, value = "3"),
- // 条件二: 每20秒一个判断单位
- @HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_THREAD_INTERRUPT_ON_TIMEOUT,value = "20000"),
- // 条件三: 失败率30%
- @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE, value = "30"),
- // 结果: 熔断后, 30秒内不再请求远程服务
- @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_SLEEP_WINDOW_IN_MILLISECONDS, value = "30000")
- })
Δημιουργήστε μια νέα κλάση xxxFallbackFactory για να εφαρμόσετε το FallbackFactory και να παρακάμψετε τη μέθοδο δημιουργίας Η μέθοδος υποβάθμισης ορίζεται στη δημιουργία.
@FeignCliend(fallbackFactory=xxxFallbackFactory.class): Το Histrix είναι ενσωματωμένο στο Feign
Ή καθορίστε την εναλλακτική μέθοδο απευθείας στη μέθοδο: @HistrixCommand(fallbackMethod="xxxFallback")
1、Τρέχουσα στρατηγική περιορισμού:
1), όριο ρεύματος σηματοφόρου
Το Semaphore χρησιμοποιείται για τον έλεγχο του αριθμού των ταυτόχρονων νημάτων. Καθορίστε τον αριθμό των εσωτερικών εικονικών αδειών χρήσης μέσω του κατασκευαστή.
Εάν χρησιμοποιείται τεχνολογία απομόνωσης σηματοφόρου, κάθε φορά που λαμβάνεται ένα αίτημα, το νήμα της υπηρεσίας καλεί απευθείας την εξαρτημένη υπηρεσία Ο σηματοφόρος ισοδυναμεί με ένα σημείο ελέγχου είναι 0, δεν είναι πλέον Το νήμα επιτρέπεται να περάσει, αλλά η εναλλακτική λογική εκτελείται απευθείας και επιστρέφεται για να το θέσουμε ωμά, είναι απλώς ένα τρέχον όριο.
Ένας σηματοφόρος μπορεί να νοηθεί ως αμετρητής, ο μετρητής μετράει τον αριθμό των αιτημάτων που επεξεργάζονται αυτήν τη στιγμή Όταν η τιμή του μετρητή φτάσει την καθορισμένη τιμή, τα επόμενα αιτήματα δεν θα γίνουν δεκτά (ή θα υποβαθμιστούν) και θα πρέπει να περιμένετε έως ότου η τιμή του μετρητή είναι μικρότερη από την καθορισμένη τιμή προτού μπορέσουν τα επόμενα αιτήματα. υποβάλλονται σε επεξεργασία.
- @HystrixCommand(
- commandProperties= {
- @HystrixProperty(name="execution.isolation.strategy", value="SEMAPHORE"),
- @HystrixProperty(name="execution.isolation.semaphore.maxConcurrentRequests", value="20")
- },
- fallbackMethod = "errMethod"
- )
2), όριο ρεύματος πισίνας νήματος
- @HystrixCommand(
- commandProperties = {
- @HystrixProperty(name = "execution.isolation.strategy", value = "THREAD")
- },
- threadPoolKey = "createOrderThreadPool",
- threadPoolProperties = {
- @HystrixProperty(name = "coreSize", value = "20"),
- @HystrixProperty(name = "maxQueueSize", value = "100"),
- @HystrixProperty(name = "maximumSize", value = "30"),
- @HystrixProperty(name = "queueSizeRejectionThreshold", value = "120")
- },
- fallbackMethod = "errMethod"
- )
Σημείωση εδώ: injava
Στη δεξαμενή νημάτων, εάν ο αριθμός των νημάτων υπερβαίνειcoreSize
, τα αιτήματα δημιουργίας νημάτων θα εισέλθουν πρώτα στην ουρά αν η ουρά είναι γεμάτη, τα νήματα θα συνεχίσουν να δημιουργούνται μέχρι να φτάσει ο αριθμός των νημάτων.maximumSize
, και στη συνέχεια υιοθετήστε τη στρατηγική απόρριψης.Αλλά υπάρχει μια πρόσθετη παράμετρος στο νήμα που έχει διαμορφωθεί από το hystrixqueueSizeRejectionThreshold
,ανqueueSizeRejectionThreshold < maxQueueSize
, ο αριθμός των ουρών φτάνειqueueSizeRejectionThreshold
θα υιοθετήσει τη στρατηγική απόρριψης, άραmaximumSize
απέτυχε.ανqueueSizeRejectionThreshold > maxQueueSize
, ο αριθμός των ουρών φτάνειmaxQueueSize
ώρα,maximumSize
είναι έγκυρο, το σύστημα θα συνεχίσει να δημιουργεί νήματα μέχρι να φτάσει ο αριθμόςmaximumSize
。
2. Η διαφορά μεταξύ περιορισμού ρεύματος σηματοφόρου και περιορισμού ρεύματος συγκέντρωσης νήματος:
1) Επίπεδο απόδοσης: Ο σηματοφόρος χρησιμοποιεί το αρχικό νήμα και έχει χαμηλή κατανάλωση απόδοσης.
2) Επίπεδο σταθερότητας συστήματος: Οι ομάδες νημάτων είναι απομονωμένες και τα προβλήματα από μόνα τους δεν θα επηρεάσουν άλλες ομάδες νημάτων.
3) Σύγχρονο και ασύγχρονο: Επειδή ο σηματοφόρος είναι το αρχικό νήμα που χρησιμοποιείται, είναι σύγχρονο και μπλοκάρει.
3. Τρέχοντα σενάρια χρήσης περιοριστικής στρατηγικής:
Όταν ο όγκος αιτημάτων είναι πολύ έντονος και η επιβάρυνση της απομόνωσης νημάτων είναι σχετικά υψηλή, συνιστάται η χρήση σηματοφόρων για τη μείωση του φόρτου. Αυτή η κατάσταση χρησιμοποιείται συνήθως για την αντιμετώπιση αιτημάτων εκτός δικτύου (χωρίς κλήση εξωτερικών υπηρεσιών). Συνιστάται η χρήση της μεθόδου thread pool σε άλλα σενάρια.
Ο περιορισμός ρεύματος είναι απλώς περιορισμός ρεύματος Εφόσον δεν γίνεται υπέρβαση του ορίου κυκλοφορίας, η υπηρεσία εξακολουθεί να είναι διαθέσιμη (διαφορετική από τον διακόπτη κυκλώματος) και δεν χρειάζεται να υποβαθμιστεί (μπορεί επίσης να τεθεί ένα όριο κίνησης που υπερβαίνει την εξαίρεση για να το χειριστεί ο καλών. μόνο του). Ας μιλήσουμε λοιπόν για τη διαφορά μεταξύ διακόπτη κυκλώματος και υποβάθμισης:
Ο διακόπτης κυκλώματος σημαίνει ότι η υπηρεσία στο σύνολό της δεν είναι διαθέσιμη (εστίαση στην αυτοπροστασία), η υποβάθμιση σημαίνει ότι η επόμενη καλύτερη επιλογή (εστίαση στην προστασία της κατώτατης γραμμής) και ο περιορισμός ρεύματος αναφέρεται στην ποσότητα της κίνησης που δεν μπορεί να ξεπεραστεί.
Από προεπιλογή, εάν το hystrix ανιχνεύσει ότι το ποσοστό αποτυχίας αιτήματος υπερβαίνει το 50% μέσα σε 10 δευτερόλεπτα, θα ενεργοποιήσει τον μηχανισμό του διακόπτη κυκλώματος. Μετά από αυτό, το αίτημα προς το microservice επαναλαμβάνεται κάθε 5 δευτερόλεπτα. Εάν η μικρουπηρεσία είναι προσβάσιμη, ο μηχανισμός του διακόπτη κυκλώματος απενεργοποιείται και οι κανονικές αιτήσεις αποκαθίστανται.
Από προεπιλογή, το hystrix θα ενεργοποιήσει τον μηχανισμό υποβάθμισης υπό τις ακόλουθες 4 συνθήκες:
Ο μηχανισμός υποβάθμισης μπορεί να καλείται κατά τη διάρκεια του διακόπτη κυκλώματος, αλλά ο μηχανισμός του διακόπτη κυκλώματος συνήθως δεν καλείται κατά την υποβάθμιση.Επειδή ο διακόπτης κυκλώματος ξεκινά από τη συνολική οπτική γωνία και απενεργοποιεί τις υπηρεσίες για να διασφαλίσει τη σταθερότητα του συστήματος, ενώ η υποβάθμιση είναι το επόμενο καλύτερο πράγμα και παρέχει μια εγγυημένη λύση, επομένως οι σχέσεις ιδιοκτησίας τους είναι διαφορετικές (διακοπτικός διακόπτης > υποβάθμιση).
Σύνοψη περιεχομένου συνδέσμου:
@FeignClient(name="eureka-HA",fallbackFactory=DeptClientServiceFallbackFactory.class)
αναφέρομαι σε:
Πρακτική εφαρμογή αρχιτεκτονικής έργου SpringBoot "Gateway zuul construction"-CSDN Blog
αναφέρομαι σε:
Εγγραφή υπηρεσίας: Όταν ξεκινήσει ο πάροχος υπηρεσιών, θα στείλει ένα αίτημα εγγραφής στον διακομιστή Eureka, συμπεριλαμβανομένης της διεύθυνσης IP της υπηρεσίας, του αριθμού θύρας, του ονόματος υπηρεσίας και άλλων πληροφοριών. Μετά τη λήψη του αιτήματος εγγραφής, ο διακομιστής Eureka θα αποθηκεύσει τις πληροφορίες υπηρεσίας στη μνήμη και θα παρέχει τη λειτουργία ερωτήματος πληροφοριών εγγραφής εξωτερικής υπηρεσίας.
Ανακάλυψη υπηρεσίας: Όταν ένας καταναλωτής υπηρεσίας χρειάζεται να καλέσει άλλες υπηρεσίες, θα στείλει ένα αίτημα ανακάλυψης υπηρεσίας στον διακομιστή Eureka για να λάβει μια λίστα με παρουσίες των απαιτούμενων υπηρεσιών. Μετά τη λήψη του αιτήματος, ο διακομιστής Eureka θα επιστρέψει μια λίστα με παρουσίες της αντίστοιχης υπηρεσίας, συμπεριλαμβανομένης της διεύθυνσης IP, του αριθμού θύρας και άλλων πληροφοριών της υπηρεσίας. Ο καταναλωτής υπηρεσίας επιλέγει μία από τις περιπτώσεις υπηρεσίας που θα καλέσει (εξισορρόπηση φορτίου) με βάση τη λίστα παρουσιών που επιστρέφεται.
Έλεγχος υγείας καρδιακών παλμών: Ο πάροχος υπηρεσιών θα στέλνει τακτικά πακέτα καρδιακών παλμών στον διακομιστή Eureka για να αποδείξει ότι η υπηρεσία του βρίσκεται σε κανονική λειτουργία. Εάν ο διακομιστής Eureka δεν λάβει ένα πακέτο καρδιακού παλμού από μια παρουσία υπηρεσίας μέσα σε ένα χρονικό διάστημα, θα θεωρήσει ότι η παρουσία υπηρεσίας είναι απενεργοποιημένη και θα την αφαιρέσει από τη λίστα υπηρεσιών.
Πρακτική λειτουργίας Seata TCC (Μέρος 2)-Alibaba Cloud Developer CommunityΠραγματική μάχη σε λειτουργία Seata TCC (Μέρος 2)https://developer.aliyun.com/article/1053737?spm=5176.26934562.main.1.799c6a03T45SJ9Η παραπάνω ανάρτηση ιστολογίου δεν λύνει το πρόβλημα της αναστολής, το οποίο μπορεί να κριθεί από διαφορετικούς δείκτες κατάστασης.
https://www.cnblogs.com/lilpig/p/16613226.htmlhttps://www.cnblogs.com/lilpig/p/16613226.html
TM: Διαχείριση συναλλαγών, που δημιουργήθηκε με τον σχολιασμό @GlobalTransaction.
TC: Συντονιστής
RM: Συμμετέχων
Η όλη διαδικασία είναι:
Το TM διαμεσολαβεί τις καθολικές συναλλαγές σας και καταχωρεί στο TC πριν από την έναρξη της εκτέλεσης
Η TM ξεκινά να εκτελεί κάθε συναλλαγή υποκαταστήματος στην καθολική συναλλαγή και η RM καταγράφει και αναφέρει τις συναλλαγές υποκαταστήματος και την κατάσταση εκτέλεσης στην TC
Μετά την ολοκλήρωση της εκτέλεσης της συναλλαγής υποκαταστήματος, η TM εκκινεί ένα αίτημα προς την TC για δέσμευση ή ανάκληση της συνολικής συναλλαγής.
Κράτηση σημαίνει κλείδωμα και ενημέρωση του πόρου της βάσης δεδομένων σε μια ενδιάμεση κατάσταση και, στη συνέχεια, αλλαγή του στην πραγματική κατάσταση όταν εκτελείται η δέσμευση δεύτερου σταδίου μετά την επιβεβαίωση.Έτσι, η φάση της κράτησης και η φάση επαναφοράς δεσμεύσεωνΌλα περιλαμβάνουν λειτουργικές βάσεις δεδομένων, επομένως ενδέχεται να υπάρχουν επίσης αποτυχίες επιβεβαίωσης και επαναφοράς που απαιτούν μη αυτόματη επεξεργασία, οι οποίες μπορούν να επιλυθούν με εγγραφή αρχείων καταγραφής, αντιστάθμιση επαναλήψεων κ.λπ.
Πλεονεκτήματα της λειτουργίας TCC:
Μειονεκτήματα της λειτουργίας TCC:
Confirm
καιCancel
Μπορεί επίσης να αποτύχει και πρέπει να αντιμετωπίσετε αυτή τη διαδικασίαΙσχυρή συνέπεια, με συντονισμό όταν δεσμεύονται και ανατρέπονται οι τοπικές συναλλαγές κάθε συμμετέχοντα.
Πλεονεκτήματα της λειτουργίας XA:
Μειονεκτήματα της λειτουργίας XA:
αδύναμη συνοχή