Maison >Java >javaDidacticiel >Transmission de messages JMS ActiveMQ

Transmission de messages JMS ActiveMQ

巴扎黑
巴扎黑original
2017-06-26 11:38:451569parcourir

Cet article utilise Active MQ5.6

1. Message Broker (Message Broker)

cassé : L'échangeur de messages est le conteneur qui gère les messages. ActiveMQ peut créer plusieurs courtiers. Le client interagit avec ActiveMQ et interagit réellement avec le courtier dans ActiveMQ. Le courtier est configuré dans ${MQ_HOME}confactivemq.xml.

2. Connecteurs

( 1) Connecteurs de transport

transportConnectors Connecteurs : Il s'agit d'établir l'interaction entre le courtier, le producteur de message et le consommateur de message.

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 et recevoir des messages.

(1) Protocole TCP par défaut

tcp://hostname:port?key=value&key=value Le les paramètres suivants sont facultatifs
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 pris en charge 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. Généralement, 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 car le courtier NIO offre de meilleures performances que TCP
URI de NIO. Format de connexion : nio://hostname:port?key=value Les paramètres suivants sont facultatifs

d, instance 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 une livraison de flux brut. protocole , signifie que le paquet de données est garanti, en d'autres termes, le paquet de données ne sera pas copié ni perdu. 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. 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 un transfert de données rapide et fiable dans le scénario ; de perte de données, lorsque ActiveMQ passe à travers le pare-feu, uniquement UDP

b. Forme URI de connexion UDP : udp://hostname:port?key=value

c. Instance de configuration conf/activemq.xml

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

(4), SSL

La couche inférieure est le protocole TCP, mais les données transmises 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. 1. Créez le protocole SSL :
b-2. Configurez le protocole SSL du courtier conf/activemq.xml :

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

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

d. Exemple de configuration conf/activemq.xml

        <transportConnectors><transportConnector name="ssl" uri="ssl://localhost:61619"/></transportConnectors>
(5) HTTP, HTTPS

a. Recevoir des messages mq du protocole http via le conteneur Jetty

Utilisé pour autoriser uniquement les services HTTP de base à passer par 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, URI : http://hostname:port?key=value

e. Configurer l'instance conf/activemq.xml :

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

(2) Connecteurs réseau (NetWorkConnectors)

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

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