RabbitMQ ist ein Open-Source-Server für Nachrichtenwarteschlangen, mit dem Sie Ihre Messaging-Anwendungen erstellen können. Einfach ausgedrückt können Sie eine Nachricht von einer Anwendung in die Warteschlange stellen und die Nachricht von derselben Anwendung oder von einer anderen Anwendung aus der Warteschlange abrufen. Sie können eine Vielzahl von Programmiersprachen verwenden, um sich mit RabbitMQ zu verbinden, Nachrichten zu erstellen und abzurufen.
Erlang installieren
Damit RabbitMQ funktioniert, muss Erlang auf Ihrem System installiert sein.
Die aktuelle stabile Version von Erlang ist R16B, die von der Erlang-Website heruntergeladen werden kann.
cd /usr/save wget http://www.erlang.org/download/otp_src_R16B.tar.gz tar xvfz /usr/save/otp_src_R16B.tar.gz
Installieren Sie nach dem Herunterladen von Erlang die Erlang R16B-Version von der Quelle, wie unten gezeigt.
cd otp_src_R16B LANG=C; export LANG ./configure make make install
Erlang bestätigen
Wenn Sie nun erl über die Befehlszeile eingeben, sollten Sie die Erlang-Shell erhalten, wie unten gezeigt. Dies zeigt an, dass Sie Erlang erfolgreich installiert haben.
# erl Erlang R16B (erts-5.10.1) [source] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] Eshell V5.10.1 (abort with ^G) 1> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution a
KaninchenMQ herunterladen
Die aktuelle stabile Version des RabbitMQ-Servers ist 3.0.4. Wenn Sie auf die RabbitMQ-Website gehen, sehen Sie, dass die folgenden Versionen für die Linux-Plattform zum Download verfügbar sind:1) Debian / Ubuntu 2) Fedora / RHEL 3) Generic Unix 4) Solaris
In diesem Beispiel habe ich RabbitMQ für Generic Unix ausgewählt.
cd /usr/save wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-generic-unix-3.0.4.tar.gz tar xvfz rabbitmq-server-generic-unix-3.0.4.tar.gz cd rabbitmq_server-3.0.4
RabbitMQ-Server starten
Starten Sie den RabbitMQ-Server, indem Sie die Option -detached wie unten gezeigt übergeben.
# cd /usr/save/rabbitmq_server-3.0.4 # sbin/rabbitmq-server -detached Warning: PID file not written; -detached was passed.
Wenn Sie beim Starten des RabbitMQ-Servers die Fehlermeldung could_not_start_tcp_listener erhalten, finden Sie im Abschnitt Fehlerbehebung unten eine Lösung zur Behebung dieses Problems.
KaninchenMQ-Status überprüfen
Verwenden Sie den Befehl rabbitmqctl, um den Status des RabbitMQ-Servers zu überprüfen und ihn bei Bedarf zu stoppen.
# sbin/rabbitmqctl status Status of node 'rabbit@db-dev' ... [{pid,30069}, {running_applications,[{rabbit,"RabbitMQ","3.0.4"}, {mnesia,"MNESIA CXC 138 12","4.8"}, {os_mon,"CPO CXC 138 46","2.2.11"}, {sasl,"SASL CXC 138 11","2.3.1"}, {stdlib,"ERTS CXC 138 10","1.19.1"}, {kernel,"ERTS CXC 138 10","2.16.1"}]}, {os,{unix,linux}}, {erlang_version,"Erlang R16B (erts-5.10.1) [source] [smp:4:4] [async-threads:30] [hipe] [kernel-poll:true]\n"}, {memory,[{total,15087368}, {connection_procs,1432}, {queue_procs,2864}, {plugins,0}, {other_proc,4748681}, {mnesia,30672}, {mgmt_db,0}, {msg_index,8652}, {other_ets,369668}, {binary,5976}, {code,6973062}, {atom,387397}, {other_system,2558964}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,1699810508}, {disk_free_limit,1000000000}, {disk_free,913096704}, {file_descriptors,[{total_limit,924}, {total_used,3}, {sockets_limit,829}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,124}]}, {run_queue,0}, {uptime,6}] ...done.
Verwenden Sie zum Stoppen eines RabbitMQ-Servers den Befehl rabbitmqctl wie unten gezeigt.
# sbin/rabbitmqctl stop
Fehlerbehebung
Problem: Wenn Sie unter CentOS 6 yum verwendet haben, um rabbitmq zu installieren, oder wie oben beschrieben von der Quelle, und wenn Sie „BOOT FAILED {could_not_start_tcp_listener“ erhalten ,{“::”,5672}}” angezeigt, liegt möglicherweise ein Portkonflikt vor.
Lösung: Matahari-Paket, das standardmäßig auf CentOS 6 installiert wird, wird auch auf Port 5672 ausgeführt. Dieser Prozess wird standardmäßig gestartet. Versuchen Sie, qpidd (Qpid AMQP-Daemon) zu stoppen, und prüfen Sie, ob das Problem dadurch behoben wird. Wenn Sie Matahari nicht benötigen, können Sie auch die Pakete matahari, matahari-broker, qpid-cpp-server-ssl und qpid-cpp-server deinstallieren.
Stoppen Sie den qpidd-Daemon und deaktivieren Sie ihn beim Systemstart mit dem Befehl chkconfig.
# chkconfig --list | grep -i qpid qpidd 0:off 1:off 2:on 3:on 4:on 5:on 6:off # service qpidd stop Stopping Qpid AMQP daemon: [ OK ] # chkconfig qpidd off # chkconfig --list | grep -i qpid qpidd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Wenn Sie jetzt den RabbitMQ-Server starten, sollte es funktionieren.