RabbitMQ的安裝
RabbitMQ是由LShift提供的一個(gè)Advanced Message Queuing Protocol(AMQP)的開源實(shí)現(xiàn)前塔,由以高性能,健壯以及可伸縮性出名的Erlang寫成承冰,因此也繼承了這些優(yōu)點(diǎn)华弓。
二進(jìn)制的安裝方式,
我本地選擇131這臺(tái)服務(wù)器進(jìn)行安裝困乒,修改hostname
[root@localhost ~]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:50:56:2F:74:85
inet addr:192.168.1.131 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe2f:7485/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22129 errors:0 dropped:0 overruns:0 frame:0
TX packets:8960 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29664818 (28.2 MiB) TX bytes:581671 (568.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)
修改hostname
[root@localhost ~]# cd /etc/sysconfig/
[root@localhost sysconfig]# vim network
配置如下:
NETWORKING=yes
HOSTNAME=mqserver
修改hosts
[root@localhost sysconfig]# vim /etc/hosts
配置如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.131 mqserver
關(guān)閉防火墻:
[root@localhost sysconfig]# chkconfig iptables off
重啟一下機(jī)器:
[root@localhost sysconfig]# reboot
將下載好的rabbitmq-server-3.6.10-1.el6.noarch.rpm
放到指定的目錄下/usr/local/software
安裝rabbitmq-server
[root@mqserver software]# rpm -ivh rabbitmq-server-3.6.10-1.el6.noarch.rpm
warning: rabbitmq-server-3.6.10-1.el6.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
erlang >= R16B-03 is needed by rabbitmq-server-3.6.10-1.el6.noarch
socat is needed by rabbitmq-server-3.6.10-1.el6.noarch
缺少erlang-18.3-1.el6.x86_64.rpm
的依賴寂屏,到RabbitMQ的指定目錄下去下載將erlang-18.3-1.el6.x86_64.rpm
也上傳至指定目錄,
erlang-18.2-1.el6.x86_64.rpm
針對(duì)centos6.*
版本的娜搂,erlang-18.2-1.el7.centos.x86_64.rpm
針對(duì)的centos7.*
版本
安裝erlang
[root@mqserver software]# rpm -ivh erlang-18.3-1.el6.x86_64.rpm
注意安裝erlang的時(shí)候有時(shí)候會(huì)報(bào)缺少包之類的錯(cuò)誤迁霎,可以先執(zhí)行下面的命令先下載好整個(gè)linux系統(tǒng)的一些依賴:
[root@mqserver software]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
驗(yàn)證Erlang是否安裝成功
[root@mqserver software]# erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.3 (abort with ^G)
1>
再次去安裝RabbitMQ服務(wù)
[root@mqserver software]# rpm -ivh rabbitmq-server-3.6.10-1.el6.noarch.rpm
warning: rabbitmq-server-3.6.10-1.el6.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
socat is needed by rabbitmq-server-3.6.10-1.el6.noarch
再次提醒我們有一些依賴沒有安裝,將socat-1.7.3.2-1.el6.lux.x86_64.rpm
上傳至當(dāng)前目錄
安裝socat
[root@mqserver software]# rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm
再去安裝rabbitmq
[root@mqserver software]# rpm -ivh rabbitmq-server-3.6.10-1.el6.noarch.rpm
啟動(dòng)rabbitmq服務(wù):
[root@mqserver software]# cd /etc/init.d
[root@mqserver init.d]# ./rabbitmq-server restart
Restarting rabbitmq-server: RabbitMQ is not running
SUCCESS
rabbitmq-server.
查看默認(rèn)端口5672(默認(rèn)端口)是否啟動(dòng)百宇,
[root@mqserver init.d]# lsof -i:5672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 2793 rabbitmq 49u IPv6 35431 0t0 TCP *:amqp (LISTEN)
二進(jìn)制方式安裝方式總結(jié):
- 安裝erlang
- 安裝socat
- 安裝rabbitmq
使用tar包安裝
本地使用133服務(wù)器進(jìn)行安裝
查看網(wǎng)卡
[root@mqserver software]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:50:56:2F:EC:B5
inet addr:192.168.1.133 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe2f:ecb5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:72432 errors:0 dropped:0 overruns:0 frame:0
TX packets:38885 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:95728391 (91.2 MiB) TX bytes:2941953 (2.8 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:744 (744.0 b) TX bytes:744 (744.0 b)
修改hostname
[root@localhost ~]# cd /etc/sysconfig/
[root@localhost sysconfig]# vim network
配置如下:
NETWORKING=yes
HOSTNAME=mqserver
修改hosts
[root@localhost sysconfig]# vim /etc/hosts
配置如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.133 mqserver
關(guān)閉防火墻:
[root@localhost sysconfig]# chkconfig iptables off
重啟一下機(jī)器:
[root@localhost sysconfig]# reboot
將rabbitmq-server-generic-unix-3.6.10.tar.xz
和erlang-18.3-1.el6.x86_64.rpm
文件上傳到指定目錄下(/usr/local/software)
安裝erlang考廉,跟上面一樣先安裝一些依賴
[root@mqserver software]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
再去安裝erlang
[root@mqserver software]# rpm -ivh erlang-18.3-1.el6.x86_64.rpm
解壓tar包(關(guān)于tar的下載地址也在博客最上面的鏈接上)
[root@mqserver software]# tar -xvf rabbitmq-server-generic-unix-3.6.10.tar.xz
進(jìn)入解壓后的sbin目錄下:
[root@mqserver software]# cd rabbitmq_server-3.6.10/sbin
[root@mqserver sbin]# ll
total 44
-rwxr-xr-x. 1 1023 1023 1480 May 25 06:55 rabbitmqctl
-rwxr-xr-x. 1 1023 1023 1885 May 25 06:55 rabbitmq-defaults
-rwxr-xr-x. 1 1023 1023 12095 May 25 06:55 rabbitmq-env
-rwxr-xr-x. 1 1023 1023 1362 May 25 06:55 rabbitmq-plugins
-rwxr-xr-x. 1 1023 1023 10971 May 25 06:55 rabbitmq-server
[root@mqserver sbin]# ./rabbitmq-server &
[1] 2127
[root@mqserver sbin]#
RabbitMQ 3.6.10. Copyright (C) 2007-2017 Pivotal Software, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: /usr/local/software/rabbitmq_server-3.6.10/var/log/rabbitmq/rabbit@mqserver.log
###### ## /usr/local/software/rabbitmq_server-3.6.10/var/log/rabbitmq/rabbit@mqserver-sasl.log
##########
Starting broker...
completed with 0 plugins.
檢查rabbitmq是否啟動(dòng)
[root@mqserver sbin]# lsof -i:5672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 2216 root 48u IPv6 17882 0t0 TCP *:amqp (LISTEN)
停止服務(wù):
[root@mqserver sbin]# ./rabbitmqctl stop
使用./rabbitmq-server -detached 也是后臺(tái)啟動(dòng)
[root@mqserver sbin]# ./rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
[root@mqserver sbin]# lsof -i:5672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 2601 root 48u IPv6 19438 0t0 TCP *:amqp (LISTEN)
編寫二個(gè)腳本:start.sh
,stop.sh
[root@mqserver sbin]# vim start.sh
內(nèi)容是
./rabbitmq-server -detached
[root@mqserver sbin]# vim stop.sh
內(nèi)容是
./rabbitmqctl stop
授權(quán),可以使用這二個(gè)腳本進(jìn)行mq的啟動(dòng)和停止
[root@mqserver sbin]# chmod 777 start.sh stop.sh
[root@mqserver sbin]# ./stop.sh
Stopping and halting node rabbit@mqserver
[root@mqserver sbin]# lsof -i:5672
[root@mqserver sbin]# ./start.sh
Warning: PID file not written; -detached was passed.
[root@mqserver sbin]# lsof -i:5672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 3017 root 48u IPv6 20001 0t0 TCP *:amqp (LISTEN)
RabbitMQ命令的基本操作
查看rabbitmq-server的所在位置携御,以下三個(gè)命令僅在二進(jìn)制安裝方式下有效
[root@mqserver ~]# type rabbitmq-server
rabbitmq-server is /usr/sbin/rabbitmq-server
管理插件的命令:
[root@mqserver sbin]# type rabbitmq-plugins
rabbitmq-plugins is hashed (/usr/sbin/rabbitmq-plugins)
rabbitmqctl指令的位置昌粤,rabbitmqctl指令很強(qiáng)大,下面我們會(huì)講到
[root@mqserver ~]# type rabbitmqctl
rabbitmqctl is /usr/sbin/rabbitmqctl
了解一下強(qiáng)大的命令:rabbitmqctl
rabbitmqctl status:查看rabbitmq的運(yùn)行狀態(tài)啄刹。
[root@iZbp1jcwx7sfb1nwzrehy6Z sbin]# rabbitmqctl status
查看rabbitmqctl所有的命令
[root@mqserver ~]# rabbitmqctl
比如下面這些涮坐,查看當(dāng)前mq的隊(duì)列,exchanges誓军,connections袱讹,channels,consumers等等
list_queues [-p <vhost>] [--offline|--online|--local] [<queueinfoitem> ...]
list_exchanges [-p <vhost>] [<exchangeinfoitem> ...]
list_bindings [-p <vhost>] [<bindinginfoitem> ...]
list_connections [<connectioninfoitem> ...]
list_channels [<channelinfoitem> ...]
list_consumers [-p <vhost>]
status
查看queues谭企,剛開始安裝rabbitmq的時(shí)候沒有隊(duì)列:
[root@mqserver init.d]# rabbitmqctl list_queues
Listing queues
查看exchanges
[root@mqserver init.d]# rabbitmqctl list_exchanges
Listing exchanges
amq.direct direct
direct
amq.match headers
amq.rabbitmq.log topic
amq.topic topic
amq.headers headers
amq.rabbitmq.trace topic
amq.fanout fanout
查看bingding廓译,剛安裝服務(wù)的時(shí)候也沒有binding
[root@mqserver init.d]# rabbitmqctl list_bindings
Listing bindings
查看一些用戶:
[root@mqserver init.d]# rabbitmqctl list_users
Listing users
guest [administrator]
查看vhosts
[root@mqserver init.d]# rabbitmqctl list_vhosts
Listing vhosts
/
添加一個(gè)用戶:
[root@mqserver init.d]# rabbitmqctl add_user zhihao.miao 123456
Creating user "zhihao.miao"
[root@mqserver init.d]# rabbitmqctl list_users
Listing users
zhihao.miao []
guest [administrator]
此時(shí)發(fā)現(xiàn)zhihao.miao這個(gè)用戶還沒有權(quán)限。
設(shè)置權(quán)限,設(shè)置完成之后發(fā)現(xiàn)設(shè)置成功:
[root@mqserver init.d]# rabbitmqctl set_user_tags zhihao.miao administrator
Setting tags for user "zhihao.miao" to [administrator]
[root@mqserver init.d]# rabbitmqctl list_users
Listing users
zhihao.miao [administrator]
guest [administrator]
刪除用戶:
[root@iZbp1jcwx7sfb1nwzrehy6Z sbin]# rabbitmqctl delete_user zhihao.miao
Deleting user "admin"
[root@iZbp1jcwx7sfb1nwzrehy6Z sbin]# rabbitmqctl list_users
Listing users
guest [administrator]
停止rabbitmq
./rabbitmqctl stop
rabbitmq的參數(shù)設(shè)置
RabbitMQ配有默認(rèn)內(nèi)置設(shè)置债查。 在某些環(huán)境(例如開發(fā)和質(zhì)量保證)中,這些可以是完全足夠的瓜挽。 如果運(yùn)行正常盹廷,則可能根本不需要任何配置。 但是在一些情況下久橙,我們需要配置一些參數(shù)區(qū)分于默認(rèn)的配置俄占。
比如rabbitmq的默認(rèn)端口是5672,如何去改變它呢淆衷?
三種配置參數(shù)的方法
- 環(huán)境變量 Environment Variables
- 配置文件 Configuration File的方式(最常用的方式)
- 運(yùn)行期更改參數(shù)和策略 Runtime Parameters and Policies
比如我想想rabbitmq默認(rèn)的使用端口5672改為5673缸榄,那么怎么操作,使用配置文件 Configuration File的方式祝拯。
RabbitMQ核心應(yīng)用, Erlang 服務(wù)and RabbitMQ 插件都會(huì)使用rabbitmq.config
進(jìn)行相關(guān)參數(shù)配置甚带。
如果是Generic UNIX
安裝方式在$RABBITMQ_HOME/etc/rabbitmq/
的目錄下放置rabbitmq.config
RPM的安裝方式那么就在/etc/rabbitmq/
目錄下放置rabbitmq.config
我的192.168.1.131
服務(wù)器上就是使用的RPM的安裝方式她肯,
vim rabbitmq.config
配置方式:
[
{rabbit, [{tcp_listeners, [5673]}]}
].
官網(wǎng)提供了一份rabbitmq.config示列,此示例文件包含您可能想要設(shè)置的大多數(shù)配置項(xiàng)(省略一些非常模糊的配置)以及這些設(shè)置的文檔的示例鹰贵。 所有配置項(xiàng)都在示例中注釋掉晴氨,因此您可以取消注冊(cè)所需的內(nèi)容。請(qǐng)注意碉输,不要將其當(dāng)作一般的推薦配置籽前。
其他的配置:
插件的安裝
查看當(dāng)前可以安裝的插件(使用tar安裝的進(jìn)入相關(guān)的解壓包下的sbin目錄):
[root@mqserver sbin]# cd /usr/sbin/
[root@mqserver sbin]# ./rabbitmq-plugins list
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@mqserver
|/
[ ] amqp_client 3.6.10
[ ] cowboy 1.0.4
[ ] cowlib 1.0.2
[ ] rabbitmq_amqp1_0 3.6.10
[ ] rabbitmq_auth_backend_ldap 3.6.10
[ ] rabbitmq_auth_mechanism_ssl 3.6.10
[ ] rabbitmq_consistent_hash_exchange 3.6.10
[ ] rabbitmq_event_exchange 3.6.10
[ ] rabbitmq_federation 3.6.10
[ ] rabbitmq_federation_management 3.6.10
[ ] rabbitmq_jms_topic_exchange 3.6.10
[ ] rabbitmq_management 3.6.10
[ ] rabbitmq_management_agent 3.6.10
[ ] rabbitmq_management_visualiser 3.6.10
[ ] rabbitmq_mqtt 3.6.10
[ ] rabbitmq_recent_history_exchange 3.6.10
[ ] rabbitmq_sharding 3.6.10
[ ] rabbitmq_shovel 3.6.10
[ ] rabbitmq_shovel_management 3.6.10
[ ] rabbitmq_stomp 3.6.10
[ ] rabbitmq_top 3.6.10
[ ] rabbitmq_tracing 3.6.10
[ ] rabbitmq_trust_store 3.6.10
[ ] rabbitmq_web_dispatch 3.6.10
[ ] rabbitmq_web_mqtt 3.6.10
[ ] rabbitmq_web_mqtt_examples 3.6.10
[ ] rabbitmq_web_stomp 3.6.10
[ ] rabbitmq_web_stomp_examples 3.6.10
[ ] sockjs 0.3.4```
安裝管控頁面:
[root@mqserver sbin]# ./rabbitmq-plugins enable rabbitmq_management
卸載插件:
[root@mqserver sbin]# ./rabbitmq-plugins enable rabbitmq_management
安裝管控臺(tái)之后,rabbitmq的web管控臺(tái)默認(rèn)占用的端口是15672
[root@mqserver sbin]# lsof -i:15672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 3432 rabbitmq 50r IPv4 25122 0t0 TCP *:15672 (LISTEN)
默認(rèn)的用戶名密碼是guest敷钾,guest枝哄,但是只能在localhost:15672或者127.0.0.1:15672上登錄。
如何讓guest來進(jìn)行ip登錄呢?
loopback用戶阻荒,只能用localhost,127.0.0.1地址登錄膘格。如果將自己設(shè)置的用戶加入到loopback_users,那么此時(shí)該用戶也只能通過localhost,127.0.0.1地址進(jìn)行登錄了财松。
[root@mqserver sbin]# cd /etc/rabbitmq/
[root@mqserver rabbitmq]# vim rabbitmq.config
rabbitmq.config的內(nèi)容如下瘪贱,
[
{rabbit, [{tcp_listeners, [5672]},{loopback_users,[]}]}
].
重啟rabbitmq服務(wù),
[root@mqserver software]# cd /etc/init.d
[root@mqserver init.d]# ./rabbitmq-server restart
配置之后就可以使用guest用戶訪問http://192.168.1.131:15672/#
就可以了辆毡。