1、安装erlang 语言环境html
安装依赖文件node
#yum -y installncurses-devel python
yum -y install gcc gcc-c++linux
yum -y install zlib zlib-devel xmltoc++
安装python ,能够执行python –V查询是否安装,通常系统自带已安装。git
进入http://www.erlang.org/download.html选择源文件下载web
wgethttp://www.erlang.org/download/ otp_src_17.1.tar.gzspring
tar zxvf otp_src_17.1.tar.gzshell
cd otp_src_17.1vim
阅读HOTO/INSTALL.md文件
#./configure
#make && make install
安装完成之后,执行erl看是否能打开eshell,用’halt().’退出,注意后面的点号,那是erlang的结束符。
[root@localhostsrc]# erl
Erlang/OTP 17 [erts-6.1] [source] [64-bit] [async-threads:10] [hipe][kernel-poll:false]
EshellV6.1 (abort with ^G)
2> 9+3.
12
3> halt().
2、安装RabbitMQ
进入http://www.rabbitmq.com/download.html选择最新的源码包
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabbitmq-server-3.3.4.tar.gz
#tar zxvfrabbitmq-server-3.3.4.tar.gz
mkdir /usr/rabbitmq
#cdrabbitmq-server-3.3.4
#makeTARGET_DIR=/usr/rabbitmq SBIN_DIR=/usr/rabbitmq/sbin MAN_DIR=/usr/rabbitmq/man DOC_INSTALL_DIR=/usr/rabbitmq/doc
#makeTARGET_DIR=/usr/rabbitmq SBIN_DIR=/usr/rabbitmq/sbin MAN_DIR=/usr/rabbitmq/manDOC_INSTALL_DIR=/usr/rabbitmq/doc install
3、启动rabbitmq-server
运行rabbitmq:
#/usr/rabbitmq/sbin/rabbitmq-server start&
(或者#/usr/rabbitmq/sbin/rabbitmq-server -detached)
须要在/etc/hosts 中添加
127.0.0.1 localhost主机名
四、安装web插件管理界面—必须安装web插件,不然没法启用15672端口和进行web页面登陆
#cd /usr/rabbitmq/sbin
#mkdir /etc/rabbitmq/ --默认插件是安装到此目录,因此必须建立
#./rabbitmq-plugins enablerabbitmq_management
五、好了,到这里rabbitmq已经配置好了,能够启动了:
#./rabbitmq-server start&
我运行的时候报错了,ERROR: epmd errorfor host "springzoo": timeout (timed out)
更改下/etc/hosts:
127.0.0.1 localhost springzoo
::1 localhost springzoo
# ps aux | grep rabbitmq //查看端口,默认就是5672
netstat -tnlp | grep 5672
tcp 0 00.0.0.0:15672 0.0.0.0:* LISTEN 30435/beam.smp
tcp 0 00.0.0.0:55672 0.0.0.0:* LISTEN 30435/beam.smp
tcp 0 0:::5672 :::* LISTEN 30435/beam.smp
若是看到下面的信息就代表已经启动成功了:
运行以下的命令,增长用户admin,密码admin
[root@localhost sbin]# ./rabbitmqctl add_user admin admin
Creating user "admin" ...
...done.
[root@localhost sbin]# ./rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
...done.
[root@localhost sbin]# ./rabbitmqctl list_users
Listing users ...
admin [administrator]
guest [administrator]
...done.
最后关闭防火墙咱们就能够在浏览器上输入http://127.0.0.1:15672/登陆管理界面了(因为端口号过大,若是没法经过防火墙,那必须关闭防火墙)
使用登陆的名户名和密码默认都算admin,登陆后的页面以下:
查看rabbitmq状态:
#/usr/rabbitmq/sbin/rabbitmqctl status
关闭rabbitmq:
#/usr/rabbitmq/sbin/rabbitmqctl stop
6、查看RabbitMQ服务启动的状态,并开启RabbitMQ的相应管理插件
[root@localhostsbin]# ./rabbitmqctl status
Status of node rabbit@localhost ...
[{pid,35112},
{running_applications,[{rabbit,"RabbitMQ","3.3.4"},
{os_mon,"CPO CXC 138 46","2.2.15"},
{xmerl,"XML parser","1.3.7"},
{mnesia,"MNESIA CXC 138 12","4.12.1"},
{sasl,"SASL CXC 138 11","2.4"},
{stdlib,"ERTS CXC 138 10","2.1"},
{kernel,"ERTS CXC 138 10","3.0.1"}]},
{os,{unix,linux}},
{erlang_version,"Erlang/OTP 17 [erts-6.1] [source] [64-bit][async-threads:30] [hipe] [kernel-poll:true]\n"},
{memory,[{total,35218336},
{connection_procs,2728},
{queue_procs,5456},
{plugins,0},
{other_proc,13339072},
{mnesia,57552},
{mgmt_db,0},
{msg_index,33968},
{other_ets,708832},
{binary,30112},
{code,16881166},
{atom,654217},
{other_system,3505233}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,769332019},
{disk_free_limit,50000000},
{disk_free,45550653440},
{file_descriptors,[{total_limit,924},
{total_used,3},
{sockets_limit,829},
{sockets_used,1}]},
{processes,[{limit,1048576},{used,124}]},
{run_queue,0},
{uptime,2182}]
...done.
[root@localhost sbin]# ./rabbitmq-plugins list
[ ]amqp_client 3.3.4
[ ]cowboy 0.5.0-rmq3.3.4-git4b93c2d
[ ]eldap 3.3.4-gite309de4
[ ]mochiweb 2.7.0-rmq3.3.4-git680dba8
[ ]rabbitmq_amqp1_0 3.3.4
[ ] rabbitmq_auth_backend_ldap 3.3.4
[ ] rabbitmq_auth_mechanism_ssl 3.3.4
[ ] rabbitmq_consistent_hash_exchange 3.3.4
[ ]rabbitmq_federation 3.3.4
[ ] rabbitmq_federation_management 3.3.4
[ ]rabbitmq_management 3.3.4
[ ] rabbitmq_management_agent 3.3.4
[ ] rabbitmq_management_visualiser 3.3.4
[ ]rabbitmq_mqtt 3.3.4
[ ]rabbitmq_shovel 3.3.4
[ ] rabbitmq_shovel_management 3.3.4
[ ] rabbitmq_stomp 3.3.4
[ ]rabbitmq_test 3.3.4
[ ]rabbitmq_tracing 3.3.4
[ ]rabbitmq_web_dispatch 3.3.4
[ ]rabbitmq_web_stomp 3.3.4
[ ] rabbitmq_web_stomp_examples 3.3.4
[ ] sockjs 0.3.4-rmq3.3.4-git3132eb9
[ ]webmachine 1.10.3-rmq3.3.4-gite9359c7
[root@localhost sbin]#
配置开机启动
vi /etc/rc.d/rc.local
添加
/usr/rabbitmq/sbin/rabbitmq-server start &
在另外一台服务器上安装rabbit时,遇到问题
/bin/sh: nc: 未找到命令
/bin/sh: zip: 未找到命令
这会致使有部分文件没法编译生成,因此必须先安装这两个命令
yum -y install zip nc unzip
遇到的问题
1.解压rabbit安装包后,须要新建一个目录,与make命令中制定的文件目录一致,可是不要直接指定为rabbit解压目录,不然会出现$home$/sbin目录为空的状况。
2.服务器重启后启动common等须要链接到rabbitmq的服务,发现启动报错,没法启动,
3.执行还原命令rabbitmqctlreset时报错:
Error:mnesia_unexpectedly_running
须要执行的是:
[root@HK-210209127027 ~]# rabbitmqctlstop_app
[root@HK-210209127027 ~]# rabbitmqctlreset
[root@HK-210209127027 ~]# rabbitmqctlcluster root@HK-210209127027
经常使用命令:
查看全部队列信息
# rabbitmqctllist_queues
关闭应用
# rabbitmqctlstop_app
启动应用,和上述关闭命令配合使用,达到清空队列的目的
# rabbitmqctlstart_app
清除全部队列
# rabbitmqctl reset
更多用法及参数,能够执行以下命令查看
# rabbitmqctl
(1)首先关闭rabbitmq: rabbitmqctl stop_app
(2)还原: rabbitmqctl reset
(3)启动: rabbitmqctl start_app
(4)添加用户: rabbitmqctl add_user root root
(5)设置权限:rabbitmqctl set_permissions -p / root".*" ".*" ".*"
(6)查看用户: rabbitmqctl list_users
在单机上实现rabbitmq多实例操做:
须要修改的配置文件为:
#vim /etc/rabbitmq/rabbitmq.config
[
{rabbit,
[
{tcp_listeners, [5672]},
{tcp_listeners,[{"127.0.0.1", 5673},{"::1", 5673}]}
]
},
{rabbitmq_management,
[
{listener, [{port, 15673},
{ip, "0.0.0.0"},
{ssl, false}
]}
]}
].
修改完成后,,若是要开启多个实例,参照如下修改配置文件的端口,而后用下面的命令执行便可(注意应同时修改RABBITMQ_NODE_PORT的端口号):
RABBITMQ_NODE_PORT=5673RABBITMQ_NODENAME=rab /usr/rabbitmq/sbin/rabbitmq-server –detached &
以上步骤是开启了5673端口的一个rabbitmq实例,若是再开启一个实例,那么再修改配置文件:
#vim /etc/rabbitmq/rabbitmq.config
[
{rabbit,
[
{tcp_listeners, [5672]}
%%{tcp_listeners, [5672]},
%%{tcp_listeners,[{"127.0.0.1", 5672},{"::1", 5672}]}
%%{tcp_listeners,[{"127.0.0.1", 5672},{"::1", 5672}]}
]
}
%%{rabbitmq_management,
%%[
%%{listener, [{port, 15673},
%% {ip, "0.0.0.0"},
%% {ssl, false}
%%]}
%%]}
].
保存退出,
执行命令:/usr/rabbitmq/sbin/rabbitmq-serverstart &便可启动默认端口为5672的服务。
若是须要恢复默认的启动方式:
# /usr/rabbitmq/sbin/rabbitmq-server start &
则对应的配置文件为:
#vim /etc/rabbitmq/rabbitmq.config
[
{rabbit,
[
{tcp_listeners, [5672]},
{tcp_listeners,[{"127.0.0.1", 5672},{"::1", 5672}]}
]
}
%%{rabbitmq_management,
%%[
%%{listener, [{port, 15673},
%% {ip, "0.0.0.0"},
%% {ssl, false}
%%]}
%%]}
].