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

Άποψη: 8397|Απάντηση: 0

Εισαγωγή στους τρεις τρόπους ανταλλαγής (fanout, direct και topic) του RabbitMQ

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 29/3/2018 2:30:45 μ.μ. | | | |
Εισαγωγή:
Στο RabbitMQ, όλα τα μηνύματα που υποβάλλονται από τους παραγωγούς γίνονται δεκτά από το Exchange, το οποίο στη συνέχεια τα προωθεί στην ουρά για αποθήκευση σύμφωνα με μια συγκεκριμένη πολιτική
Το RabbitMQ παρέχει τέσσερις τύπους ανταλλαγών: fanout, direct, topic και header
Η λειτουργία κεφαλίδας χρησιμοποιείται λιγότερο στην πράξη και αυτό το άρθρο συγκρίνει μόνο τις τρεις πρώτες λειτουργίες.

1. Άμεση ανταλλαγή


Τυχόν μηνύματα που αποστέλλονται στο Direct Exchange προωθούνται στην ουρά που καθορίζεται στο RouteKey.

1. Γενικά, μπορείτε να χρησιμοποιήσετε το Exchange που συνοδεύει το rabbitMQ:" (το όνομα του Exchange είναι μια κενή συμβολοσειρά, εφεξής θα αναφέρεται ως το προεπιλεγμένο Exchange).

2. Σε αυτήν τη λειτουργία, δεν χρειάζεται να εκτελέσετε δεσμευτικές λειτουργίες στο Exchange

3. Απαιτείται ένα "RouteKey" για την ανταλλαγή μηνυμάτων, το οποίο μπορεί απλά να γίνει κατανοητό ως το όνομα της ουράς στην οποία θα σταλεί.

4. Εάν το όνομα ουράς που καθορίζεται στο RouteKey δεν υπάρχει στο vhost, το μήνυμα απορρίπτεται.

2. Ανταλλαγή Fanout


Τυχόν μηνύματα που αποστέλλονται στο Ανταλλακτήριο Fanout προωθούνται σε όλες τις ουρές που είναι συνδεδεμένες σε αυτό το ανταλλακτήριο.

1. Μπορεί να γίνει κατανοητό ως ένα μοτίβο του πίνακα δρομολόγησης

2. Αυτή η λειτουργία δεν απαιτεί RouteKey

3. Αυτή η λειτουργία απαιτεί τη σύνδεση του Exchange στην ουρά εκ των προτέρων, ένα Exchange μπορεί να δεσμεύσει πολλές ουρές και μια ουρά μπορεί να συνδεθεί σε πολλά Exchange.

4. Εάν το Exchange που έλαβε το μήνυμα δεν είναι συνδεδεμένο σε καμία ουρά, το μήνυμα απορρίπτεται.

3. Ανταλλαγή θεμάτων


Τυχόν μηνύματα που αποστέλλονται στο Topic Exchange προωθούνται σε όλες τις ουρές που ενδιαφέρονται για τα θέματα που καθορίζονται στο RouteKey

1. Αυτό το μοτίβο είναι πιο περίπλοκο, με απλά λόγια, κάθε ουρά έχει το δικό της θέμα ανησυχίας, όλα τα μηνύματα έχουν έναν "τίτλο" (RouteKey) και το Exchange θα προωθήσει το μήνυμα σε όλες τις ουρές που μπορούν να ταιριάζουν με το RouteKey του θέματος που σας απασχολεί.

2. Αυτή η λειτουργία απαιτεί ένα RouteKey, ίσως δεσμευτικό Exchange και Queue εκ των προτέρων.

3. Κατά τη δέσμευση, δώστε ένα θέμα που ενδιαφέρει την ουρά, όπως "#.log.#" για να υποδείξετε ότι η ουρά ενδιαφέρεται για όλα τα μηνύματα που σχετίζονται με αρχεία καταγραφής (ένα μήνυμα με κλειδί διαδρομής "MQ.log.error" θα προωθηθεί στην ουρά).

4. Το "#" σημαίνει 0 ή περισσότερες λέξεις-κλειδιά και το "" σημαίνει μία λέξη-κλειδί. Για παράδειγμα, "log". Μπορεί να ταιριάζει με το "log.warn", αλλά δεν μπορεί να ταιριάζει με το "log.warn.timeout". Αλλά το "log.#" ταιριάζει με τα παραπάνω.

5. Ομοίως, εάν το Exchange δεν βρει μια ουρά που να ταιριάζει με το RouteKey, θα απορρίψει αυτό το μήνυμα.




Προηγούμενος:Χρησιμοποιήστε το XPosed για να παρακάμψετε την ισχυρή επικύρωση των πιστοποιητικών SSL Android
Επόμενος:.net/c# Αποσύνδεση σύνδεσης RabbitMQ - αποσύνδεση και επανασύνδεση
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com