Maison >Java >javaDidacticiel >Transmission de messages JMS ActiveMQ
Cet article utilise Active MQ5.6
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.
transportConnectors Connecteurs : Il s'agit d'établir l'interaction entre le courtier, le producteur de message et le consommateur de message.
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>
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!