RabbitMQ 安装
安装 Erlang
因为RabbitMQ是由Erlang语言编写的,所以,需要安装Erlang,Erlang安装方式有很多种,此处仅介绍使用源码包安装的方式。
首先前往Erlang官网http://www.erlang.org/downloads/,选择OTP 21.0 Source File
进行下载。
将安装文件拷贝至linux系统中,当然你也可以在linux系统中直接使用wget
命令下载软件包,接着执行以下命令即可:
[root@localhost home]# wget http://erlang.org/download/otp_src_21.0.tar.gz
[root@localhost home]# tar -zxvf otp_src_21.0.tar.gz
[root@localhost home]# cd otp_src_21.0
[root@localhost otp_src_21.0]# ./configure --prefix=/opt/erlang
因为erlang要依赖ncurses
,所以此时可能会报如下错误:
No curses library functions found
这是安装一下ncurses
即可:
[root@localhost otp_src_21.0]# yum install ncurses-devel
[root@localhost otp_src_21.0]# make
[root@localhost otp_src_21.0]# make install
当然安装过程中,可能还会出现其他包找不到的情况,此时只要根据提示安装相应的包即可。
注:
如果你是Windows
,请选择对于的软件包进行下载,然后执行exe文件即可。
安装RabbitMQ
RabbitMQ安装方式较为简单,本文主要介绍源码安装方式
首先访问官网下载源码包:http://www.rabbitmq.com/releases/rabbitmq-server/
[root@localhost home]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz
[root@localhost home]# xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz
[root@localhost home]# tar -xvf rabbitmq-server-generic-unix-3.6.15.tar
配置环境变量
[root@localhost home]# vim /etc/profile
export RABBITMQ_HOME=/usr/local/rabbitmq_server-3.6.15
export PATH=$PATH:$RABBITMQ_HOME/sbin
[root@localhost home]# source /etc/profile
启动RabbitMQ:
rabbitmq-server -detached
-detached 的主要作用是为了能够让RabbitMQ服务以守护进程的方式在后台运行。
使用rabbitmqctl status,如果看见一下内容,则说明启动成功:
[root@rabbitmq ~]# rabbitmqctl status
Status of node rabbit@rabbitmq
[{pid,3556},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.6.15"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.15"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.15"},
{rabbit,"RabbitMQ","3.6.15"},
{os_mon,"CPO CXC 138 46","2.4.1"},
{cowboy,"Small, fast, modular HTTP server.","1.0.4"},
{ranch,"Socket acceptor pool for TCP protocols.","1.3.2"},
{ssl,"Erlang/OTP SSL application","8.0.1"},
{public_key,"Public key infrastructure","1.2"},
{inets,"INETS CXC 138 49","6.3.2"},
{amqp_client,"RabbitMQ AMQP Client","3.6.15"},
{rabbit_common,
"Modules shared by rabbitmq-server and rabbitmq-erlang-client",
"3.6.15"},
{compiler,"ERTS CXC 138 10","7.0.1"},
{syntax_tools,"Syntax tools","2.0"},
{mnesia,"MNESIA CXC 138 12","4.14"},
{recon,"Diagnostic tools for production use","2.3.2"},
{cowlib,"Support library for manipulating Web protocols.","1.0.2"},
{crypto,"CRYPTO","3.7"},
{xmerl,"XML parser","1.3.11"},
{asn1,"The Erlang ASN1 compiler version 4.0.3","4.0.3"},
{sasl,"SASL CXC 138 11","3.0"},
{stdlib,"ERTS CXC 138 10","3.0.1"},
{kernel,"ERTS CXC 138 10","5.0.1"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang/OTP 19 [erts-8.0.3] [source] [64-bit] [async-threads:64] [hipe] [kernel-poll:true]\n"},
{memory,
[{connection_readers,0},
{connection_writers,0},
{connection_channels,0},
{connection_other,2688},
{queue_procs,43368},
{queue_slave_procs,0},
{plugins,456416},
{other_proc,20298280},
{metrics,56472},
{mgmt_db,141368},
{mnesia,64080},
{other_ets,2311528},
{binary,129888},
{msg_index,41608},
{code,24741115},
{atom,1033401},
{other_system,7545300},
{allocated_unused,9071896},
{reserved_unallocated,6750208},
{total,72687616}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{http,15672,"::"}]},
{vm_memory_calculation_strategy,rss},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,410894336},
{disk_free_limit,50000000},
{disk_free,17550581760},
{file_descriptors,
[{total_limit,924},{total_used,3},{sockets_limit,829},{sockets_used,0}]},
{processes,[{limit,1048576},{used,324}]},
{run_queue,0},
{uptime,12},
{kernel,{net_ticktime,60}}]
RabbitMQ 启动问题
第一次安装RabbitMQ后,不论是用rabbitmqctl status命令,还是使用rabbitmqctl add 命令都会出现如下错误:
rabbitmq Error: unable to connect to node XXX@XXX: nodedown
针对这个问题。网上有很多解决办法。但是基本都说是Erlang的cookie,但是这是windows下的问题。其解决办法为:
检查C:\Windows.erlang.cookie 及 C:\用户\你的用户名.erlang.cookie。检查两个文件内容是否一致,不一致用其中一个替换另一个即可。
最后在网上找到一篇关于linux的解决办法。其源地址为:[https://blog.youkuaiyun.com/luckytanggu/article/details/78542700(https://blog.youkuaiyun.com/luckytanggu/article/details/78542700)
内容如下:
#先把rabbitmq进程杀掉
[root@localhost home] ps -ef | grep rabbitmq | grep -v grep | awk '{print $2}' | xargs kill -9
#设置hostname(假设主机ip为:192.168.1.1,主机名设为:mq)
[root@localhost home] echo 192.168.1.1 mq > /etc/hosts
[root@localhost home] echo rabbitmq > /etc/hostname
[root@localhost home] export HOSTNAME=mq
重启电脑后,RabbitMQ访问正常
添加管理员
默认情况下,访问RabbitMQ服务的用户名和密码都是guest,但是这个账户只能通过本地网络(localhost)进行访问,远程访问受限,所以需要添加为其添加一个用户。
首先启动RabbitMQ,然后添加用户
[root@localhost home]# rabbitmqctl add user root root
Creating user "root"...
#为root 用户设置所有权限:
[root@localhost home]# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "/"...
#设置rott为管理员
[root@localhost home] rabbitmqctl set user_tags root administrator
Setting tags for user "root" to [administrator] ...
开放网页控制台
执行rabbitmq-plugins enable rabbitmq_management
开启web管理界面