Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 216172|Antwort: 69

[Konsolenprogramm] .NET/C# Beispiel für eine ActiveMQ-Operation [Quellcode]

  [Link kopieren]
Veröffentlicht am 27.07.2017 13:19:10 | | | |

Zusammenfassung der Informationen zu ActiveMQ und RabbitMQ
http://www.itsvse.com/thread-4659-1-1.html
(Quelle: Architect_Programmer)

Da das Projekt einige Daten benötigt, die gepusht und empfangen werden, und die Datenmenge relativ groß ist, etwa 3 Millionen Daten pro Tag

Anfangs habe ich HTTP Post verwendet, um Daten einzureichen, aber festgestellt, dass es zu langsam war und die Sendegeschwindigkeit viel geringer war als die Empfangsgeschwindigkeit.

Wenn du also eine lange Socket-Verbindung nutzen möchtest, um Daten zu pushen und zu empfangen, schreibe den Socket-Server und Client selbst – eine davon ist Zeitverschwendung, aber es kann nicht gut funktionieren

Schließlich wird activemq verwendet, um Daten zu übertragen und zu empfangen

Erstens ist der Produzentencode wie folgt:



Verbraucher gibt es zwei Modelle:

1: Gewöhnliches Abonnement, kein dauerhaftes "Abonnement" erforderlich, das heißt, beim Verbinden können Sie Nachrichten empfangen und vor der Verbindung keine Nachrichten erhalten, indem Sie "CreateConsumer" verwenden
2: Persistent Subscription, nach der Verbindung können Sie Daten erhalten, die zuvor nicht gepusht wurden, über "CreateDurableConsumer".


Links zur Einführung von CreateDurableConsumer:Der Hyperlink-Login ist sichtbar.

Erstelle ein nicht geteiltes persistentes Abonnement zum angegebenen Thema, falls es noch nicht existiert, und erstelle einen Konsumenten für dieses persistente Abonnement. Diese Methode erstellt ein persistentes Abonnement, ohne einen Nachrichtenselektor zu verwenden, und der noLocal-Wert ist falsch.
Die Anwendung verwendet ein persistentes Abonnement, und die Anwendung muss alle zum Thema veröffentlichten Nachrichten empfangen, einschließlich Nachrichten, die veröffentlicht werden, wenn keine aktiven Konsumenten damit verbunden sind. Der JMS-Anbieter führt ein Protokoll über dieses persistierende Abonnement und stellt sicher, dass alle Nachrichten des betreffenden Publishers aufbewahrt werden, bis sie an den Verbraucher zugestellt und von diesem persistenten Abonnement bestätigt werden, bis sie abgelaufen sind.

Persistente Abonnements sammeln weiterhin Nachrichten an, bis sie mit der Abmeldemethode gelöscht werden.

Diese Methode kann nur mit nicht geteilten persistenten Abonnements verwendet werden. Alle persistenten Abonnements, die mit dieser Methode erstellt werden, werden nicht mehr geteilt. Das bedeutet, dass jeweils nur ein aktiver (d. h. nicht geschlossener) Nutzer im Abonnement existieren kann. Der Begriff "Consumer" bezeichnet hier das TopicSubscriber-, MessageConsumer- oder JMSConsumer-Objekt in jedem Client.

Ein nicht geteiltes persistentes Abonnement wird durch einen vom Client angegebenen Namen und eine Client-Identifikation identifiziert, die gesetzt werden muss. Anwendungen, die dann Konsumenten auf einem nicht geteilten persistenten Abonnement erstellen wollen, müssen dieselbe Client-Kennung verwenden.

Wenn bereits ein ungeteiltes persistentes Abonnement mit demselben Namen und der Client-Kennung existiert, dasselbe Thema, der Nachrichtenselektor und der noLocal-Wert bereits angegeben sind und kein Consumer bereits aktiv (d. h. nicht geschlossen) auf dem persistenten Abonnement ist, erstellt diese Methode ein bestehendes dauerhaftes Abonnement auf dem MessageConsumer.

Wenn bereits ein nicht geteiltes persistentes Abonnement mit demselben Namen und der Client-Kennung existiert und ein Konsument auf dem persistenten Abonnement bereits aktiv ist (d. h. nicht geschlossen), wird ein JMSException geworfen.

Wenn bereits ein nicht geteiltes persistentes Abonnement mit demselben Namen und Client-Kennung, aber einem anderen Subjekt, ein Nachrichtenselektor oder noLocal-Wert angegeben wurde und kein Consumer bereits aktiv (d. h. nicht geschlossen) im persistenten Abonnement ist, entspricht dies dem Abmelden (Löschen) des alten Abonnements und dem Erstellen eines neuen.

Geteilte und nicht geteilte persistente Abonnements haben möglicherweise nicht denselben Namen und dieselbe Client-Identität. Wenn bereits ein gemeinsames, persistentes Abonnement mit demselben Namen und der Client-Kennung existiert, wird ein JMSException geworfen.

Es gibt keine Begrenzung für persistente Abonnements und geteilte, nicht persistente Abonnements mit demselben Namen und demselben clientId. Ein solches Abonnement wird völlig getrennt sein.

Diese Methode ist dieselbe wie die entsprechende createDurableSubscriber-Methode, mit der Ausnahme, dass sie einen MessageConsumer statt eines TopicSubscriber zurückgibt, um den Verbraucher darzustellen.

Parameter:
Themen – Nicht-temporäre Themenabonnements
Name – Der Name, der zur Kennzeichnung dieses Abonnements verwendet wird
Werfen:
InvalidDestinationException – Wenn ein ungültiges Thema angegeben ist.
IllegalStateException – Wenn die Gastkennung nicht gesetzt ist
JMSException -
Wenn die Sitzung scheitert, ein nicht geteiltes, persistentes Abonnement und MessageConsumer aufgrund eines internen Fehlers zu erstellen
Wenn bereits ein nicht gemeinsames, persistentes Abonnement mit demselben Namen und der Client-Kennung existiert und der Konsument bereits aktiv ist
Wenn bereits ein gemeinsames, persistierendes Abonnement mit demselben Namen und der Client-Kennung existiert
Seit:
JMS 2.0

IMessageConsumer CreateDurableConsumer(ITopic destination, Stringname, String-Selektor, bool noLocal);

wobei messageSelector der Nachrichtenselektor ist; Die noLocal-Flagge ist standardmäßig falsch, und wenn sie auf true gesetzt ist, schränkt sie die Konsumenten daran, nur Nachrichten zu erhalten, die von derselben Verbindung wie sie selbst veröffentlicht werden, was nur für Themen gilt, nicht für Warteschlangen. Name ist die eindeutige Identität des Abonnementthems, und dieser Parameter muss gesetzt werden, wenn Sie ein dauerhaftes Abonnement abschließen.

Activemq .net muss auf Paket-Download referenzieren:Der Hyperlink-Login ist sichtbar.

Vollständiger Quellcode-Download:

Touristen, wenn ihr den versteckten Inhalt dieses Beitrags sehen wollt, bitteAntwort




Punktzahl

Anzahl der Teilnehmer1MB+1 Zusammenbruch Grund
lxc11118 + 1 Sehr mächtig!

Alle Bewertungen sehen





Vorhergehend:Activemq-Benutzerberechtigungskonfiguration
Nächster:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
Veröffentlicht am 16.01.2018 09:11:47 |
a5192142 Veröffentlicht am 20.10.2017, 11:46 Uhr
RE: .net/c# activemq操作示例[源码] [修改]
Fortgeschrittener Modus

Wie man den Quellcode liest
Veröffentlicht am 11.12.2019 11:49:26 |
Die Verschreibungsmethode ist problematisch,
Veröffentlicht am 20.10.2017 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
Fortgeschrittener Modus
Veröffentlicht am 16.08.2017 23:54:36 |
Bei Verwendung von M2MQTT wird das Zertifikat als Fehler gemeldet
Veröffentlicht am 17.08.2017 04:14:37 |
Fang jetzt an, herauszubasteln, wie man MQTT für Push verwendet
Veröffentlicht am 17.08.2017 15:45:19 |
Ich finde, es sollte gut sein
Veröffentlicht am 29.08.2017 10:40:38 |
Ich hoffe, das hilft
Veröffentlicht am 29.08.2017 13:38:07 |
Ich hoffe, es funktioniert
Veröffentlicht am 14.09.2017 15:15:04 |
Als ich jung war, las ich Gedichte und Bücher und ging überall hin
Veröffentlicht am 25.09.2017 09:35:22 |
Ich suche schon lange danach, ich hoffe, es hilft diesmal, danke!
Veröffentlicht am 25.09.2017 09:45:59 |
@小渣渣
     Wie man Accessoires kauft!
Veröffentlicht am 29.09.2017 16:35:28 |
Denn schließlich bin ich interessiert und suche nach Materialien zum Lernen und Lernen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com