Comment utiliser rabbitmqctl pour se connecter au serveur RabbitMQ dans le conteneur docker?
j'ai utilisé docker pour lancer mon rabbitmqserver. Comment puis-je utiliser rabbitmqctl pour me connecter au serveur rabbitmqserver dans le conteneur docker?
Port 5672 a été exposé et la carte au port 5672 de mon hôte. Mais j'ai toujours l'erreur suivante:
Status of node rabbit@m2 ...
Error: unable to connect to node rabbit@m2: nodedown
5 réponses
rabbitmqctl
Erlang Protocole Distribué (EDP) pour communiquer avec RabbitMQ. Le Port 5672 fournit le protocole AMQP. Vous pouvez rechercher le port EDP que votre instance RabbitMQ utilise:
$ netstat -uptan | grep beam
tcp 0 0 0.0.0.0:55950 0.0.0.0:* LISTEN 31446/beam.smp
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 31446/beam.smp
tcp 0 0 0.0.0.0:55672 0.0.0.0:* LISTEN 31446/beam.smp
tcp 0 0 127.0.0.1:55096 127.0.0.1:4369 ESTABLISHED 31446/beam.smp
tcp6 0 0 :::5672 :::* LISTEN 31446/beam.smp
Cela signifie que RabbitMQ:
- connecté EPMD (Erlang Port Mapper Daemon) sur 127.0.0.1:4369 à faire des nœuds en mesure de voir les uns les autres
- en attente de l'arrivée EDP connexion sur le port 55950
- attend L'AMQP connexion sur le port 5672 et 55672
- en attente de l'arrivée gestion HTTP connexion sur le port 15672
faire rabbitmqctl
capable de se connecter à RabbitMQ vous devez également avancer le port 55950 et permettre à RabbitMQ instance de se connecter à 127.0.0.1:4369.
Il est possible que le port eDP de RabbitMQ soit dinamic, donc pour le rendre statique vous pouvez essayer d'utiliser ERL_EPMD_PORT
variable de variables D'environnement Erlang ou utiliser inet_dist_listen_min
et inet_dist_listen_max
Erlang Noyau les options de configuration et l'appliquer avec RabbitMQ variable d'environnement -export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf
my_rabbitmq.conf
[{kernel,[{inet_dist_listen_min, 55950},{inet_dist_listen_min, 55950}]}].
Ou vous pouvez utiliser RabbitMQ Plug-In De Gestion. Il est plus fonctionnel et simple à installer.
en supposant que votre conteneur s'appelle rabbitmq
et est en cours d'exécution:
docker exec rabbitmq rabbitmqctl start_app
Create a rabbitmq environment variables config file at /etc/rabbitmq/rabbitmq-env.conf
Add NODENAME=rabbit@localhost to it (note that just localhost didn't work)
sudo service rabbitmq-server start
ça marche pour moi!!
j'ai eu cette erreur en essayant de configurer RabbitMQ sur un cluster sur une machine ubuntu et fedora:
el@apollo:/etc/rabbitmq$ sudo rabbitmqctl join_cluster rabbit@192.168.1.8
Clustering node rabbit@apollo with 'rabbit@192.168.1.8' ...
Error: unable to connect to nodes ['rabbit@192.168.1.8']: nodedown
DIAGNOSTICS
===========
attempted to contact: ['rabbit@192.168.1.8']
rabbit@192.168.1.8:
* unable to connect to epmd (port 4369) on 192.168.1.8: address
(cannot connect to host/port)
current node details:
- node name: rabbitmqctl7233@apollo
- home dir: /var/lib/rabbitmq
- cookie hash: g0tS9zEdo7OEDSZaDTGirA==
j'ai pu éliminer cette erreur en ouvrant le port 4369 et 59984 sur la machine 192.168.1.8 qui est l'un des noeuds esclaves du cluster:
el@defiant ~ $ su -
Password:
[root@defiant ~]# iptables -I INPUT -p tcp --dport 4369 --syn -j ACCEPT
[root@defiant ~]# iptables -I INPUT -p tcp --dport 59984 --syn -j ACCEPT
le Port 4369 n'était pas activé sur le pare-feu. Lorsque j'ai changé le pare-feu 'off'. Tout a commencé à fonctionner.