Maison  >  Article  >  Java  >  Transmission de messages JMS Active MQ (explication graphique et textuelle détaillée)

Transmission de messages JMS Active MQ (explication graphique et textuelle détaillée)

怪我咯
怪我咯original
2017-06-30 10:47:572230parcourir

L'éditeur suivant vous proposera un article sur la transmission de messages JMS Active MQ (explication détaillée). L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil

Cet article utilise Active MQ5.6

1. cassé : L'échangeur de messages est le conteneur qui gère les messages. ActiveMQ peut créer plusieurs courtiers. Lorsque le client interagit avec ActiveMQ, il interagit en fait avec le courtier dans ActiveMQ. Le courtier est configuré dans ${MQ_HOME}confactivemq.

xml.

2. Connecteurs

(1), transportConnectors connecteur transportConnectors : Il s'agit d'établir l'interaction. entre le courtier, le producteur de messages et le consommateur de messages.

Protocoles couramment utilisés pour les connecteurs de transport :

Protocoles de connexion couramment utilisés dans Active MQ : tcp, udp, nio, ssl, http, https ,vm. Si vous utilisez le protocole SSL, vous devez configurer un certificat. Si vous utilisez http ou https, vous devez utiliser httpclient pour envoyer recevoir des messages

.

(1) Protocole TCP par défaut

tcp://hostname:port?key

=value&key=value Le les paramètres suivants sont facultatifs

Les avantages de l'utilisation du protocole TCP

Efficace : Cette connexion de protocole utilise le protocole OpenWire, et en convertissant le message en flux d'octets, les performances sont très bonnes

Disponibilité : TCP est un protocole réseau très largement utilisé, essentiellement supporté par toutes les plateformes

Exemple de configuration TCP conf/activemq.xml :

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

a. Le protocole NIO est similaire au protocole TCP, mais NIO se concentre davantage sur les opérations d'accès sous-jacentes. Cela permet aux développeurs d'avoir plus d'appels clients et plus de charge sur le serveur pour la même ressource.

b. Scénarios adaptés à l'utilisation du protocole NIO :

Il peut y avoir un grand nombre de Clients se connectant au Broker. En général, le nombre de Clients se connectant au Broker est limité par le. nombre de threads dans le système d'exploitation. Par conséquent, l'implémentation de NIO nécessite moins de threads à exécuter que TCP, il est donc recommandé d'utiliser le protocole NIO

Peut avoir une transmission réseau très lente pour le courtier NIO offre de meilleures performances que TCP

c. Forme URI de la connexion NIO : nio://hostname:port?key=value Les paramètres suivants sont facultatifs

d. Exemple de configuration NIO conf/activemq.xml :

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

a. La différence entre UDP et TCP

TCP est un protocole de livraison de flux brut, ce qui signifie que les données Le paquet est garanti, en d’autres termes, les paquets ne seront ni copiés ni perdus. UDP, en revanche, ne garantit pas la livraison des paquets de données

TCP est également un protocole de livraison de paquets de données stable et fiable, ce qui signifie que les données ne seront pas perdues pendant le processus de livraison. Cela garantit une communication fiable entre l’expéditeur et le destinataire. Au contraire, UDP n'est qu'un protocole de liaison, il n'a donc aucune fiabilité

TCP est utilisé dans des scénarios stables et fiables ; UDP est généralement utilisé dans des scénarios où les données sont transférées rapidement et où les données ne craignent pas la perte. De plus, lorsque ActiveMQ traverse le pare-feu, vous ne pouvez utiliser que la forme URI de connexion UDP

c : udp://hostname:port?key=value

c. /activemq.xml

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

(4), SSLLa couche inférieure est le protocole TCP, mais les données de transmission sont cryptées

a. Scénarios applicables : MQ est exposé au réseau externe et nécessite une communication entre le client et le courtier

b. b-1. Créer le protocole SSL :

b-2. Configurer le protocole SSL du courtier conf/activemq.xml :

b-3. Configurer le protocole SSL du client :

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

c. Forme URI de connexion SSL : ssl://hostname:port?key=value

d. Instance de configuration conf/activemq.xml

(5) HTTP, HTTPS

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

a. Recevoir des messages mq du protocole http via le conteneur jetée b. permettre aux services HTTP de base de passer l'environnement réseau

c. Pour envoyer/recevoir des messages via httpclient, vous devez ajouter des packages Java supplémentaires Httpclient, Xstream, activemq-optional

d. //hostname:port? key=value

e, configurez l'instance conf/activemq.xml :

Pour configurer HTTPS, vous devez configurer le certificat HTTPS correspondant dans jetty.xml = HTTP+SSL
<transportConnectors>
  <transportConnector name="http" uri="http://localhost:8080"/>
</transportConnectors>


(2.) Connecteurs réseau (NetWorkConnectors)

NetWorkConnectors : utilisé pour interaction entre Broke et Broke, principalement lors du déploiement du cluster ActiveMq.

L'article ci-dessus sur la transmission des messages JMS Active MQ (explication détaillée) est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous soutiendrez Script Home.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn