≡菜单

如何在Linux上安装RabbitMQ Server和Erlang

兔子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服务器,它应该可以工作。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 4 评论… 加一 }

  • 注册 2013年4月20日,上午8:22

    很棒的帖子!我最近刚在运行Puppet Master的debian服务器上安装了Rabbitmq和erlang。这非常有帮助!

  • 约翰 2013年4月22日,上午12:27

    当我访问rabbitmq网站时,我在一侧看到了vmware徽标。

    我没有’意识到vmware / emc是Rabbitmq开源计划的幕后推手。

  • 2014年10月10日,上午5:13

    你好。我在使用您的手册​​启动Rabbitmq服务器时遇到问题。

    错误:主机red5的epmd错误:地址(无法连接到主机/端口)

    red5是我的服务器的名称

    你能帮助我吗?

  • 2014年10月10日,上午5:26

    我已经解决了。

发表评论