Heim  >  Artikel  >  Java  >  JMS Active MQ-Nachrichtenübertragung (detaillierte Grafik- und Texterklärung)

JMS Active MQ-Nachrichtenübertragung (detaillierte Grafik- und Texterklärung)

怪我咯
怪我咯Original
2017-06-30 10:47:572176Durchsuche

Der folgende Herausgeber bringt Ihnen einen Artikel zur JMS Active MQ-Nachrichtenübertragung (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Herausgeber und werfen wir einen Blick darauf

Dieser Artikel verwendet Active MQ5.6

1 kaputt: Der Nachrichtenaustauscher ist der Container, der Nachrichten verwaltet. ActiveMQ kann mehrere Broker erstellen. Wenn der Client mit ActiveMQ interagiert, interagiert er tatsächlich mit dem Broker in ActiveMQ. Der Broker ist in ${MQ_HOME}confactivemq.

xml konfiguriert.

2. Anschlüsse

(1), transportConnectors transportConnectors-Anschluss: Es dient zur Herstellung der Interaktion zwischen dem Broker, dem Nachrichtenproduzenten und dem Nachrichtenkonsumenten.

Häufig verwendete Protokolle für Transportanschlüsse:

Häufig verwendete Verbindungsprotokolle in Active MQ: TCP, UDP, Nio, SSL, http, https ,vm. Wenn Sie das SSL-Protokoll verwenden, müssen Sie ein Zertifikat konfigurieren. Wenn Sie http oder https verwenden, müssen Sie httpclient verwenden, um Nachrichten zu empfangen

.

(1)TCP-Standardprotokoll

tcp://hostname:port?key

=value&key=value Das Die folgenden Parameter sind optional

Die Vorteile der Verwendung des TCP-Protokolls

Effizient: Diese Protokollverbindung verwendet das OpenWire-Protokoll und durch die Konvertierung der Nachricht in einen Byte-Stream ist die Leistung sehr gut

Verfügbarkeit: TCP ist ein sehr weit verbreitetes Netzwerkprotokoll, das grundsätzlich von allen Plattformen unterstützt wird

TCP-Konfigurationsbeispiel conf/activemq.xml:

    <transportConnectors>
      <!--activemq 的默认连接 tcp-->
      <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
    </transportConnectors>
(2), NIO

a Das NIO-Protokoll ähnelt dem TCP-Protokoll, NIO konzentriert sich jedoch mehr auf die zugrunde liegenden Zugriffsvorgänge. Dadurch können Entwickler für dieselbe Ressource mehr Clientaufrufe und eine höhere Auslastung des Servers durchführen.

b. Geeignete Szenarien für die Verwendung des NIO-Protokolls:

Es kann eine große Anzahl von Clients geben, die eine Verbindung zum Broker herstellen. Im Allgemeinen ist die Anzahl der Clients, die eine Verbindung zum Broker herstellen, begrenzt Anzahl der Threads im Betriebssystem. Daher erfordert die NIO-Implementierung weniger Threads zur Ausführung als TCP, daher wird die Verwendung des NIO-Protokolls empfohlen

Möglicherweise ist die Netzwerkübertragung für den Broker sehr langsam. NIO bietet eine bessere Leistung als TCP

c. URI-Form der NIO-Verbindung: nio://hostname:port?key=value Die folgenden Parameter sind optional

d NIO-Konfigurationsbeispiel conf/activemq.xml:

<transportConnectors>
      <!-- 设置一个NIO的连接-->
      <transportConnector name="nio" uri="nio://0.0.0.0:61617"/>
    </transportConnectors>
(3), UDP

a. Der Unterschied zwischen UDP und TCP

TCP ist ein Raw-Stream-Lieferprotokoll, was bedeutet, dass die Daten Paket ist garantiert, das heißt, Pakete werden nicht kopiert und gehen nicht verloren. UDP hingegen garantiert nicht die Zustellung von Datenpaketen

TCP ist ebenfalls ein stabiles und zuverlässiges Protokoll zur Zustellung von Datenpaketen, was bedeutet, dass während des Zustellungsprozesses keine Daten verloren gehen. Dadurch ist eine zuverlässige Kommunikation zwischen Sender und Empfänger gewährleistet. Im Gegenteil, UDP ist nur ein Verbindungsprotokoll und weist daher keine Zuverlässigkeit auf.

TCP wird in stabilen und zuverlässigen Szenarien verwendet. UDP wird normalerweise in Szenarien verwendet, in denen Daten schnell übertragen werden und keine Angst vor Verlust besteht. Wenn ActiveMQ die Firewall passiert, können Sie außerdem nur UDP

b URI-Form der UDP-Verbindung verwenden: udp://hostname:port?key=value

c /activemq. xml

<transportConnectors>
  <transportConnector name="udp" uri="udp://localhost:61618"/>
</transportConnectors>

(4), SSLDie unterste Ebene ist das TCP-Protokoll, aber die Übertragungsdaten sind verschlüsselt

a. Anwendbare Szenarien: MQ ist dem externen Netzwerk ausgesetzt und erfordert die Kommunikation zwischen dem Client und dem Broker

b b-1. SSL-Protokoll erstellen:

b-2. Konfigurieren Sie das Broker-SSL-Protokoll conf/activemq.xml:

b-3. Konfigurieren Sie das Client-SSL-Protokoll:

 <sslContext>
  <sslContext keyStore="F:/beifeng/apache-activemq-5.6.0/conf/mybroker.ks"
   keyStorePassword="test123" />
</sslContext>

c. URI-Form der SSL-Verbindung: ssl://hostname:port?key=value

d. Konfigurationsinstanz conf/activemq.xml

(5) HTTP, HTTPS

<transportConnectors>
   <transportConnector name="ssl" uri="ssl://localhost:61619"/>
 </transportConnectors>

a. Empfangen von MQ-Nachrichten des HTTP-Protokolls über den Jetty-Container b Erlauben Sie grundlegende HTTP-Dienste, die Netzwerkumgebung zu passieren

c Um Nachrichten über httpclient zu senden/empfangen, müssen Sie zusätzliche Java-Pakete hinzufügen: Httpclient, //Hostname:Port? Schlüssel=Wert

e, Instanz conf/activemq.xml konfigurieren:

Um HTTPS zu konfigurieren, müssen Sie Folgendes tun Konfigurieren Sie das entsprechende Zertifikat HTTPS in jetty.xml = HTTP+SSL

<transportConnectors>
  <transportConnector name="http" uri="http://localhost:8080"/>
</transportConnectors>

(2) Netzwerkanschlüsse (NetWorkConnectors)

NetWorkConnectors: werden für die Interaktion verwendet zwischen Pleite und Pleite, hauptsächlich bei der Bereitstellung eines ActiveMq-Clusters.

Der obige Artikel über die JMS Active MQ-Nachrichtenübertragung (ausführliche Erklärung) ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, er kann Ihnen eine Referenz geben und hoffe, dass Sie Script Home unterstützen.

Das obige ist der detaillierte Inhalt vonJMS Active MQ-Nachrichtenübertragung (detaillierte Grafik- und Texterklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn