RabbitMQ笔记二:RabbitMQ安装及其基本命令

RabbitMQ的安装

RabbitMQ下载地址

RabbitMQ是由LShift提供的一个Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能,健壮以及可伸缩性出名的Erlang写成,因此也继承了这些优点。

二进制的安装方式,

我本地选择131这台服务器进行安装,修改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

关闭防火墙:

[root@localhost sysconfig]# chkconfig iptables off

重启一下机器:

[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针对centos6.*版本的,erlang-18.2-1.el7.centos.x86_64.rpm针对的centos7.*版本

安装erlang

[root@mqserver software]# rpm -ivh erlang-18.3-1.el6.x86_64.rpm

注意安装erlang的时候有时候会报缺少包之类的错误,可以先执行下面的命令先下载好整个linux系统的一些依赖:

[root@mqserver software]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

验证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服务

[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上传至当前目录
安装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

启动rabbitmq服务:

[root@mqserver software]# cd /etc/init.d 
[root@mqserver init.d]# ./rabbitmq-server restart
Restarting rabbitmq-server: RabbitMQ is not running
SUCCESS
rabbitmq-server.

查看默认端口5672(默认端口)是否启动,

[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)

二进制方式安装方式总结

  1. 安装erlang
  2. 安装socat
  3. 安装rabbitmq

使用tar包安装

本地使用133服务器进行安装

查看网卡

[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

关闭防火墙:

[root@localhost sysconfig]# chkconfig iptables off

重启一下机器:

[root@localhost sysconfig]# reboot

rabbitmq-server-generic-unix-3.6.10.tar.xzerlang-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包(关于tar的下载地址也在博客最上面的链接上)

[root@mqserver software]# tar -xvf rabbitmq-server-generic-unix-3.6.10.tar.xz

进入解压后的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是否启动

[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)

停止服务:

[root@mqserver sbin]# ./rabbitmqctl stop

使用./rabbitmq-server -detached 也是后台启动

[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)

编写二个脚本:start.sh,stop.sh

[root@mqserver sbin]# vim start.sh

内容是

./rabbitmq-server -detached
[root@mqserver sbin]# vim stop.sh

内容是

./rabbitmqctl stop

授权,可以使用这二个脚本进行mq的启动和停止

[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的所在位置,以下三个命令仅在二进制安装方式下有效

[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指令很强大,下面我们会讲到

[root@mqserver ~]# type rabbitmqctl
rabbitmqctl is /usr/sbin/rabbitmqctl

了解一下强大的命令:rabbitmqctl

rabbitmqctl status:查看rabbitmq的运行状态。

[root@iZbp1jcwx7sfb1nwzrehy6Z sbin]# rabbitmqctl status

查看rabbitmqctl所有的命令

[root@mqserver ~]# rabbitmqctl

比如下面这些,查看当前mq的队列,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的时候没有队列:

[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,刚安装服务的时候也没有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
/

添加一个用户:

[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]

此时发现zhihao.miao这个用户还没有权限。

设置权限,设置完成之后发现设置成功:

[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的参数设置

RabbitMQ配有默认内置设置。 在某些环境(例如开发和质量保证)中,这些可以是完全足够的。 如果运行正常,则可能根本不需要任何配置。 但是在一些情况下,我们需要配置一些参数区分于默认的配置。
比如rabbitmq的默认端口是5672,如何去改变它呢?

三种配置参数的方法

比如我想想rabbitmq默认的使用端口5672改为5673,那么怎么操作,使用配置文件 Configuration File的方式。
RabbitMQ核心应用, Erlang 服务and RabbitMQ 插件都会使用rabbitmq.config进行相关参数配置。

如果是Generic UNIX安装方式在$RABBITMQ_HOME/etc/rabbitmq/的目录下放置rabbitmq.config
RPM的安装方式那么就在/etc/rabbitmq/目录下放置rabbitmq.config
我的192.168.1.131服务器上就是使用的RPM的安装方式,

vim rabbitmq.config

配置方式:

[
    {rabbit, [{tcp_listeners, [5673]}]}
].

官网提供了一份rabbitmq.config示列,此示例文件包含您可能想要设置的大多数配置项(省略一些非常模糊的配置)以及这些设置的文档的示例。 所有配置项都在示例中注释掉,因此您可以取消注册所需的内容。请注意,不要将其当作一般的推荐配置。

其他的配置:

其他配置项

插件的安装

查看当前可以安装的插件(使用tar安装的进入相关的解压包下的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

安装管控台之后,rabbitmq的web管控台默认占用的端口是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)

默认的用户名密码是guest,guest,但是只能在localhost:15672或者127.0.0.1:15672上登录。

如何让guest来进行ip登录呢?

loopback用户,只能用localhost,127.0.0.1地址登录。如果将自己设置的用户加入到loopback_users,那么此时该用户也只能通过localhost,127.0.0.1地址进行登录了。

[root@mqserver sbin]# cd /etc/rabbitmq/
[root@mqserver rabbitmq]# vim rabbitmq.config 

rabbitmq.config的内容如下,

[
    {rabbit, [{tcp_listeners, [5672]},{loopback_users,[]}]}
].

重启rabbitmq服务,

[root@mqserver software]# cd /etc/init.d 
[root@mqserver init.d]# ./rabbitmq-server restart

配置之后就可以使用guest用户访问http://192.168.1.131:15672/#就可以了。

参考资料
RabbitMQ DOC
RabbitMQ Configuration

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容