美文网首页RabbitMQ学习RabbitMQRabbitMQ
RabbitMQ笔记二:RabbitMQ安装及其基本命令

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

作者: 二月_春风 | 来源:发表于2017-09-19 21:52 被阅读483次

    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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/etncjxtx.html