兔子MQ是一个开源消息队列服务器,可用于构建消息传递应用程序。简单来说,您可以将消息从一个应用程序放入队列,然后从同一应用程序或其他应用程序从队列中检索消息。您可以使用多种编程语言来连接RabbitMQ,创建和检索消息。
安装Erlang
为了使RabbitMQ正常工作,您需要在系统上安装Erlang。
当前的Erlang稳定版本是R16B,可以从以下位置下载 Erlang 网站。
cd /usr/save wget http://www.erlang.org/download/otp_src_R16B.tar.gz tar xvfz /usr/save/otp_src_R16B.tar.gz
下载Erlang后,如下所示从源代码安装Erlang R16B版本。
cd otp_src_R16B LANG=C; export LANG ./configure make make install
验证Erlang
现在,当您从命令行输入erl时,您将获得如下所示的Erlang Shell。这表明你’已成功安装Erlang。
# 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
下载RabbitMQ
兔子MQ服务器的当前稳定版本是3.0.4。当你去 兔子MQ 网站,你’会看到以下可供Linux平台下载的版本:1)Debian / Ubuntu 2)Fedora / RHEL 3)通用Unix 4)Solaris
在这个例子中,我’我们选择RabbitMQ作为 通用Unix.
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服务器
通过传递-detached选项来启动RabbitMQ服务器,如下所示。
# cd /usr/save/rabbitmq_server-3.0.4 # sbin/rabbitmq-server -detached Warning: PID file not written; -detached was passed.
如果在启动RabbitMQ服务器时收到can_not_start_tcp_listener错误消息,请参阅下面的疑难解答部分,以获取有关解决此问题的解决方案。
验证RabbitMQ状态
使用rabbitmqctl命令来验证RabbitMQ服务器的状态,并在需要时将其停止。
# sbin/rabbitmqctl status Status of node '[email protected]' ... [{pid,30069}, {running_applications,[{rabbit,"兔子MQ","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.
要停止RabbitMQ服务器,请使用rabbitmqctl命令,如下所示。
# sbin/rabbitmqctl stop
故障排除
问题: 在CentOS 6上,如果您’如果您正在使用yum来安装rabbitmq,或从上述来源安装rabbitmq“BOOT FAILED {might_not_start_tcp_listener,{“::”,5672}}”消息,您可能有端口冲突问题。
解: 默认情况下在CentOS 6上安装的Matahari软件包也运行在端口5672上。默认情况下启动此过程。尝试停止qpidd(Qpid AMQP守护程序),看看它是否解决了问题。如果你不这样做’如果不需要Matahari,也可以卸载matahari,matahari-broker,qpid-cpp-server-ssl和qpid-cpp-server软件包。
停止qpidd守护程序,并使用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
现在,如果您启动RabbitMQ服务器,它应该可以工作。
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
很棒的帖子!我最近刚在运行Puppet Master的debian服务器上安装了Rabbitmq和erlang。这非常有帮助!