Επειδή το έργο χρειάζεται κάποια δεδομένα για να προωθηθεί και να ληφθεί, επειδή ο όγκος των δεδομένων είναι σχετικά μεγάλος, περίπου 3 εκατομμύρια δεδομένα την ημέρα
Στην αρχή, χρησιμοποίησα το http post για να υποβάλω δεδομένα, αλλά διαπίστωσα ότι ήταν πολύ αργό και η ταχύτητα αποστολής ήταν πολύ μικρότερη από την ταχύτητα λήψης.
Επομένως, εάν θέλετε να χρησιμοποιήσετε μια σύνδεση μεγάλης υποδοχής για να προωθήσετε και να λάβετε δεδομένα, γράψτε μόνοι σας τον διακομιστή υποδοχής και τον πελάτη, είναι χάσιμο χρόνου, αλλά μπορεί να μην γίνει καλά
Τέλος, το activemq χρησιμοποιείται για την προώθηση και λήψη δεδομένων
Πρώτον, ο κωδικός παραγωγού έχει ως εξής:
Καταναλωτής, υπάρχουν δύο μοντέλα:
1: Συνηθισμένη συνδρομή, δεν χρειάζεται μόνιμη "συνδρομή", δηλαδή, κατά τη σύνδεση, μπορείτε να λαμβάνετε μηνύματα και δεν μπορείτε να λαμβάνετε μηνύματα πριν συνδεθείτε, χρησιμοποιώντας το "CreateConsumer" 2: Μόνιμη συνδρομή, μετά τη σύνδεση, μπορείτε να λαμβάνετε δεδομένα που δεν έχουν προωθηθεί στο παρελθόν, χρησιμοποιώντας το "CreateDurableConsumer"
Σύνδεσμοι για την εισαγωγή του CreateDurableConsumer:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Δημιουργήστε μια μη κοινόχρηστη μόνιμη συνδρομή για το καθορισμένο θέμα, εάν δεν υπάρχει ήδη, και δημιουργήστε έναν καταναλωτή σε αυτήν τη μόνιμη συνδρομή. Αυτή η μέθοδος δημιουργεί μια μόνιμη συνδρομή χωρίς τη χρήση επιλογέα μηνυμάτων και η τιμή noLocal είναι ψευδής. Η εφαρμογή χρησιμοποιεί μια μόνιμη συνδρομή και η εφαρμογή πρέπει να λαμβάνει όλα τα μηνύματα που δημοσιεύονται σχετικά με το θέμα, συμπεριλαμβανομένων των μηνυμάτων που δημοσιεύονται όταν δεν υπάρχουν ενεργοί καταναλωτές που να σχετίζονται με αυτήν. Ο πάροχος JMS διατηρεί αρχείο αυτής της μόνιμης συνδρομής και διασφαλίζει ότι όλα τα μηνύματα από τον εκδότη του θέματος θα διατηρηθούν μέχρι να παραδοθούν στον καταναλωτή και να επιβεβαιωθούν από αυτήν τη μόνιμη συνδρομή μέχρι να λήξουν.
Οι μόνιμες συνδρομές συνεχίζουν να συγκεντρώνουν μηνύματα μέχρι να διαγραφούν χρησιμοποιώντας τη μέθοδο κατάργησης εγγραφής.
Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί μόνο με μη κοινόχρηστες μόνιμες συνδρομές. Τυχόν μόνιμες συνδρομές που δημιουργούνται με αυτήν τη μέθοδο θα καταργηθούν. Αυτό σημαίνει ότι μόνο ένας ενεργός (δηλαδή, όχι κλειστός) καταναλωτής μπορεί να υπάρχει στη συνδρομή κάθε φορά. Ο όρος "καταναλωτής" εδώ υποδηλώνει το αντικείμενο TopicSubscriber, MessageConsumer ή JMSConsumer σε οποιοδήποτε πρόγραμμα-πελάτη.
Μια μη κοινόχρηστη μόνιμη συνδρομή προσδιορίζεται από ένα όνομα που καθορίζεται από τον υπολογιστή-πελάτη και ένα αναγνωριστικό προγράμματος-πελάτη που πρέπει να οριστεί. Οι εφαρμογές που θέλουν στη συνέχεια να δημιουργήσουν καταναλωτές σε μια μη κοινόχρηστη μόνιμη συνδρομή πρέπει να χρησιμοποιούν το ίδιο αναγνωριστικό προγράμματος-πελάτη.
Εάν υπάρχει ήδη μια μη κοινόχρηστη μόνιμη συνδρομή με το ίδιο όνομα και αναγνωριστικό προγράμματος-πελάτη και το ίδιο θέμα, ο επιλογέας μηνύματος και η τιμή noLocal έχουν ήδη καθοριστεί και κανένας καταναλωτής δεν είναι ήδη ενεργός (δηλαδή, δεν έχει κλείσει) στη μόνιμη συνδρομή, αυτή η μέθοδος δημιουργεί μια υπάρχουσα σταθερή συνδρομή στο MessageConsumer.
Εάν υπάρχει ήδη μια μη κοινόχρηστη μόνιμη συνδρομή με το ίδιο όνομα και αναγνωριστικό πελάτη και υπάρχει ένας καταναλωτής στη μόνιμη συνδρομή που είναι ήδη ενεργός (δηλαδή, δεν είναι κλειστός), θα απορριφθεί μια JMSException.
Εάν υπάρχει ήδη μια μη κοινόχρηστη μόνιμη συνδρομή με το ίδιο όνομα και αναγνωριστικό πελάτη αλλά διαφορετικό θέμα, έχει καθοριστεί ένας επιλογέας μηνυμάτων ή μια τιμή noLocal και κανένας καταναλωτής δεν είναι ήδη ενεργός (δηλαδή δεν έχει κλείσει) στη μόνιμη συνδρομή, τότε αυτό ισοδυναμεί με την κατάργηση της εγγραφής (διαγραφή) της παλιάς και τη δημιουργία μιας νέας.
Οι κοινόχρηστες και οι μη κοινόχρηστες μόνιμες συνδρομές ενδέχεται να μην έχουν το ίδιο όνομα και την ίδια ταυτότητα πελάτη. Εάν υπάρχει ήδη μια κοινόχρηστη μόνιμη συνδρομή με το ίδιο όνομα και αναγνωριστικό πελάτη, απορρίπτεται ένα JMSException.
Δεν υπάρχει όριο στις μόνιμες συνδρομές και στις κοινόχρηστες μη μόνιμες συνδρομές με το ίδιο όνομα και clientId. Μια τέτοια συνδρομή θα είναι εντελώς ξεχωριστή.
Αυτή η μέθοδος είναι η ίδια με την αντίστοιχη μέθοδο createDurableSubscriber, με τη διαφορά ότι επιστρέφει ένα MessageConsumer αντί για ένα TopicSubscriber για να αντιπροσωπεύει τον καταναλωτή.
Παράμετρος: Θέματα - Μη προσωρινές συνδρομές θεμάτων name - Το όνομα που χρησιμοποιείται για την αναγνώριση αυτής της συνδρομής Ρίψη: InvalidDestinationException - Εάν έχει καθοριστεί ένα μη έγκυρο θέμα. IllegalStateException - Εάν δεν έχει οριστεί το αναγνωριστικό επισκέπτη JMSException - Εάν η περίοδος λειτουργίας αποτύχει να δημιουργήσει μια μη κοινόχρηστη μόνιμη συνδρομή και το MessageConsumer λόγω κάποιου εσωτερικού σφάλματος Εάν υπάρχει ήδη μια μη κοινόχρηστη μόνιμη συνδρομή με το ίδιο όνομα και αναγνωριστικό προγράμματος-πελάτη και ο καταναλωτής είναι ήδη ενεργός Εάν υπάρχει ήδη μια κοινόχρηστη μόνιμη συνδρομή με το ίδιο όνομα και αναγνωριστικό προγράμματος-πελάτη Από: JMS 2.0 IMessageConsumer CreateDurableConsumer(Προορισμός ITopic, όνομα συμβολοσειράς, επιλογέας συμβολοσειράς, bool noLocal);
όπου messageSelector είναι ο επιλογέας μηνύματος. Η σημαία noLocal είναι ψευδής από προεπιλογή και όταν οριστεί σε true, περιορίζει τους καταναλωτές από το να λαμβάνουν μόνο μηνύματα που δημοσιεύονται από την ίδια σύνδεση με τους ίδιους, κάτι που ισχύει μόνο για θέματα και όχι για ουρές. name είναι η μοναδική ταυτότητα του θέματος της συνδρομής και αυτή η παράμετρος πρέπει να οριστεί όταν εγγράφεστε σε μια μόνιμη συνδρομή.
Το Activemq .net πρέπει να αναφέρει τη λήψη πακέτου:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Πλήρης λήψη πηγαίου κώδικα:
Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώ Απάντηση
|