您的位置:首页 > 运维架构 > Linux

在CentOS 7系统上安装RabbitMQ

2017-08-10 00:41 288 查看
http://www.rabbitmq.com/download.html

[root@contoso ~]# rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
[root@contoso ~]# yum install -y erlang

[root@contoso ~]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
[root@contoso ~]# yum install -y https://bintray.com/rabbitmq/rabbitmq-server-rpm/download_file?file_path=rabbitmq-server-3.6.10-1.el7.noarch.rpm
[root@contoso ~]# systemctl enable rabbitmq-server

[root@contoso ~]# systemctl restart rabbitmq-server

[root@contoso ~]# systemctl status rabbitmq-server

[root@contoso ~]# rabbitmqctl status

Status of node rabbit@contoso

[{pid,6577},

 {running_applications,

     [{rabbit,"RabbitMQ","3.6.10"},

      {mnesia,"MNESIA  CXC 138 12","4.11"},

      {os_mon,"CPO  CXC 138 46","2.2.14"},

      {ranch,"Socket acceptor pool for TCP protocols.","1.3.0"},

      {ssl,"Erlang/OTP SSL application","5.3.3"},

      {public_key,"Public key infrastructure","0.21"},

      {crypto,"CRYPTO version 2","3.2"},

      {rabbit_common,

          "Modules shared by rabbitmq-server and rabbitmq-erlang-client",

          "3.6.10"},

      {compiler,"ERTS  CXC 138 10","4.9.4"},

      {xmerl,"XML parser","1.3.6"},

      {syntax_tools,"Syntax tools","1.6.13"},

      {asn1,"The Erlang ASN1 compiler version 2.0.4","2.0.4"},

      {sasl,"SASL  CXC 138 11","2.3.4"},

      {stdlib,"ERTS  CXC 138 10","1.19.4"},

      {kernel,"ERTS  CXC 138 10","2.16.4"}]},

 {os,{unix,linux}},

 {erlang_version,

     "Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:64] [hipe] [kernel-poll:true]\n"},

 {memory,

     [{total,54096928},

      {connection_readers,0},

      {connection_writers,0},

      {connection_channels,0},

      {connection_other,0},

      {queue_procs,2800},

      {queue_slave_procs,0},

      {plugins,0},

      {other_proc,22582320},

      {mnesia,60912},

      {metrics,132072},

      {mgmt_db,0},

      {msg_index,40536},

      {other_ets,2084968},

      {binary,740008},

      {code,22700940},

      {atom,842665},

      {other_system,5038979}]},

 {alarms,[]},

 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},

 {vm_memory_high_watermark,0.4},

 {vm_memory_limit,3274466918},

 {disk_free_limit,50000000},

 {disk_free,47952224256},

 {file_descriptors,

     [{total_limit,924},{total_used,2},{sockets_limit,829},{sockets_used,0}]},

 {processes,[{limit,1048576},{used,152}]},

 {run_queue,0},

 {uptime,155},

 {kernel,{net_ticktime,60}}]

[root@contoso ~]#

[root@contoso ~]# rabbitmq-plugins enable rabbitmq_management

The following plugins have been enabled:

  amqp_client

  cowlib

  cowboy

  rabbitmq_web_dispatch

  rabbitmq_management_agent

  rabbitmq_management

Applying plugin configuration to rabbit@contoso... started 6 plugins.
[root@contoso ~]#

http://127.0.0.1:15672



一个是环境变量的配置文件 rabbitmq-env.conf

一个是配置信息的配置文件 rabbitmq.config
注意,这两个文件默认是没有的,如果需要必须自己创建。

rabbitmq-env.conf


这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。

文件的内容包括了RabbitMQ的一些环境变量,常用的有:

#RABBITMQ_NODE_PORT=                                      //端口号

#HOSTNAME=

RABBITMQ_NODENAME=mq

RABBITMQ_CONFIG_FILE=                                       //配置文件的路径

RABBITMQ_MNESIA_BASE=/rabbitmq/data           //需要使用的MNESIA数据库的路径

RABBITMQ_LOG_BASE=/rabbitmq/log                    //log的路径

RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins     //插件的路径

rabbitmq 添加远程访问功能

[root@contoso ~]# cat > /etc/rabbitmq/rabbitmq.config

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

[root@contoso ~]# systemctl restart rabbitmq-server

[root@contoso ~]# systemctl status rabbitmq-server













http://127.0.0.1:15672/api/

RabbitMQ Management HTTP API

Introduction

Apart from this help page, all URIs will serve only resources of type application/json, and will require HTTP basic authentication (using the standard RabbitMQ user database). The default user is guest/guest.

Many URIs require the name of a virtual host as part of the path, since names only uniquely identify objects within a virtual host. As the default virtual host is called "/", this will need to be encoded as "%2f".

PUTing a resource creates it. The JSON object you upload must have certain mandatory keys (documented below) and may have optional keys. Other keys are ignored. Missing mandatory keys constitute an error.

Since bindings do not have names or IDs in AMQP we synthesise one based on all its properties. Since predicting this name is hard in the general case, you can also create bindings by POSTing to a factory URI. See the example below.

Many URIs return lists. Such URIs can have the query string parameters sort and sort_reverse added. sort allows you to select a primary field to sort by, and sort_reverse will reverse the sort order if set to true. The sort parameter can contain subfields separated
by dots. This allows you to sort by a nested component of the listed items; it does not allow you to sort by more than one field. See the example below.

You can also restrict what information is returned per item with the columns parameter. This is a comma-separated list of subfields separated by dots. See the example below.

Most of the GET queries return many fields per object. See the separate stats documentation.

Examples

A few quick examples for Windows and Unix, using the command line tool curl:

    Get a list of vhosts:

    :: Windows

    C:\> curl -i -u guest:guest http://localhost:15672/api/vhosts
    # Unix

    $ curl -i -u guest:guest http://localhost:15672/api/vhosts
    HTTP/1.1 200 OK

    Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)

    Date: Mon, 16 Sep 2013 12:00:02 GMT

    Content-Type: application/json

    Content-Length: 30

    [{"name":"/","tracing":false}]

    Get a list of channels, fast publishers first, restricting the info items we get back:

    :: Windows

    C:\> curl -i -u guest:guest "http://localhost:15672/api/channels?sort=message_stats.publish_details.rate&sort_reverse=true&columns=name,message_stats.publish_details.rate,message_stats.deliver_get_details.rate"


    # Unix

    $ curl -i -u guest:guest 'http://localhost:15672/api/channels?sort=message_stats.publish_details.rate&sort_reverse=true&columns=name,message_stats.publish_details.rate,message_stats.deliver_get_details.rate'


    HTTP/1.1 200 OK

    Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)

    Date: Mon, 16 Sep 2013 12:01:17 GMT

    Content-Type: application/json

    Content-Length: 219

    Cache-Control: no-cache

    [{"message_stats":{"publish_details":{"rate" ... (remainder elided)

    Create a new vhost:

    :: Windows

    C:\> curl -i -u guest:guest -H "content-type:application/json" ^

          -XPUT http://localhost:15672/api/vhosts/foo

    # Unix

    $ curl -i -u guest:guest -H "content-type:application/json" \

       -XPUT http://localhost:15672/api/vhosts/foo

    HTTP/1.1 204 No Content

    Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)

    Date: Mon, 16 Sep 2013 12:03:00 GMT

    Content-Type: application/json

    Content-Length: 0

    Note: you must specify application/json as the mime type.

    Note: the name of the object is not needed in the JSON object uploaded, since it is in the URI. As a virtual host has no properties apart from its name, this means you do not need to specify a body at all!

    Create a new exchange in the default virtual host:

    :: Windows

    C:\> curl -i -u guest:guest -H "content-type:application/json" ^

           -XPUT -d"{""type"":""direct"",""durable"":true}" ^

           http://localhost:15672/api/exchanges/%2f/my-new-exchange

    # Unix

    $ curl -i -u guest:guest -H "content-type:application/json" \

        -XPUT -d'{"type":"direct","durable":true}' \

        http://localhost:15672/api/exchanges/%2f/my-new-exchange

    HTTP/1.1 204 No Content

    Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)

    Date: Mon, 16 Sep 2013 12:04:00 GMT

    Content-Type: application/json

    Content-Length: 0

    Note: we never return a body in response to a PUT or DELETE, unless it fails.

    And delete it again:

    :: Windows

    C:\> curl -i -u guest:guest -H "content-type:application/json" ^

           -XDELETE http://localhost:15672/api/exchanges/%2f/my-new-exchange

    # Unix

    $ curl -i -u guest:guest -H "content-type:application/json" \

        -XDELETE http://localhost:15672/api/exchanges/%2f/my-new-exchange

    HTTP/1.1 204 No Content

    Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)

    Date: Mon, 16 Sep 2013 12:05:30 GMT

    Content-Type: application/json

    Content-Length: 0

Reference



[root@contoso ~]# python -V

Python 2.7.5

[root@contoso ~]#



[root@contoso ~]# wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-management/rabbitmq_v3_6_10/bin/rabbitmqadmin
[root@contoso ~]# mv rabbitmqadmin /usr/local/bin/

[root@contoso ~]# chmod 755 /usr/local/bin/rabbitmqadmin

[root@contoso ~]# rabbitmqadmin --help

Usage

=====

  rabbitmqadmin [options] subcommand

Options

=======

--help, -h              show this help message and exit

--config=CONFIG, -c CONFIG

                        configuration file [default: ~/.rabbitmqadmin.conf]

--node=NODE, -N NODE    node described in the configuration file [default:

                        'default' only if configuration file is specified]

--host=HOST, -H HOST    connect to host HOST [default: localhost]

--port=PORT, -P PORT    connect to port PORT [default: 15672]

--path-prefix=PATH_PREFIX

                        use specific URI path prefix for the RabbitMQ HTTP API

                        (default: blank string) [default: ]

--vhost=VHOST, -V VHOST

                        connect to vhost VHOST [default: all vhosts for list,

                        '/' for declare]

--username=USERNAME, -u USERNAME

                        connect using username USERNAME [default: guest]

--password=PASSWORD, -p PASSWORD

                        connect using password PASSWORD [default: guest]

--quiet, -q             suppress status messages [default: True]

--ssl, -s               connect with ssl [default: False]

--ssl-key-file=SSL_KEY_FILE

                        PEM format key file for SSL

--ssl-cert-file=SSL_CERT_FILE

                        PEM format certificate file for SSL

--ssl-ca-cert-file=SSL_CA_CERT_FILE

                        PEM format CA certificate file for SSL

--ssl-disable-hostname-verification

                        Disables peer hostname verification

--format=FORMAT, -f FORMAT

                        format for listing commands - one of [raw_json, long,

                        pretty_json, kvp, tsv, table, bash] [default: table]

--sort=SORT, -S SORT    sort key for listing queries

--sort-reverse, -R      reverse the sort order

--depth=DEPTH, -d DEPTH

                        maximum depth to recurse for listing tables [default:

                        1]

--bash-completion       Print bash completion script [default: False]

--version               Display version and exit

More Help

=========

For more help use the help subcommand:

  rabbitmqadmin help subcommands  # For a list of available subcommands

  rabbitmqadmin help config       # For help with the configuration file

[root@contoso ~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: