CentOS7.0安装RabbitMQ

  1. 安装前的准备

     yum install \
     m4 \
     vim \
     wget \
     gcc \
     gcc-c++ \
     make \
     cmake \
     automake \
     autoconf \
     readline \
     kernel-devel \
     ncurses-devel \
     openssl-devel \
     unixODBC-deve \
     readline-devel \
     librabbitmq-devel \
     -y \
    
  2. 源码安装erlang

    erlang下载

    erlang-20.0

     cd /root
     wget http://erlang.org/download/otp_src_20.0.tar.gz
     tar -zxvf otp_src_20.0.tar.gz
     cd otp_src_20.0
     ./configure \
     --prefix=/usr/local/erlang \
     --without-javac \
     make
     make install
    
  3. 加入环境变量

     vim /etc/profile
    
     export PATH=$PATH:/usr/local/erlang/bin
    
     ESC
     :wq
    
     source /etc/profile
    
  4. 测试启动erlang

     /usr/local/erlang/bin/erl
    
     # 显示Eshell V8.2  (abort with ^G)
     # 输入:
     1>9+7.
     16
     # 退出:
     2>halt().
    
  5. 安装RabbitMQ 下载地址

     进入下载地址,找到|Binary .tar.xz .zip|
    
     cd /root
     wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-generic-unix-3.6.10.tar.xz
     xz -d rabbitmq-server-generic-unix-3.6.10.tar.xz
     tar -xvf rabbitmq-server-generic-unix-3.6.10.tar
     cp -r /root/rabbitmq_server-3.6.10 /usr/local/rabbitmq
    
  6. 添加配置文件 配置参考

     vim /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config
    
     [{rabbit,[{tcp_listeners,[5672]}]}].
    
     ESC
     :wq
    
  7. 加入环境变量

     vim /etc/profile
    
     export RABBITMQ_HOME=/usr/local/rabbitmq
     export PATH=$PATH:/usr/local/rabbitmq/sbin
    
     ESC
     :wq
    
     source /etc/profile
    
  8. 启动RabbitMQ

     /usr/local/rabbitmq/sbin/rabbitmq-server -detached
    
  9. 开机启动RabbitMQ

     vim /etc/rc.local
    
     /usr/local/rabbitmq/sbin/rabbitmq-server -detached
    
     ESC
     :wq
    
  10. 安装php-amqp扩展前准备: 安装rabbitmq-c 参考链接

     cd /root
     wget https://github.com/alanxz/rabbitmq-c/archive/v0.8.0.tar.gz
     tar -zxvf v0.8.0.tar.gz
     cd rabbitmq-c-0.8.0
     cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.8.0
     make
     make install
    
  11. 安装php-amqp扩展

  12. 如果不安装amqp扩展

     composer install php-amqplib/php-amqplib
    
  13. 添加用户并授权

     # 创建用户
     rabbitmqctl add_user rabbitmq '12345678'
    
     # 添加用户[管理员]标签
     rabbitmqctl set_user_tags rabbitmq administrator
    
     # 创建virtual host
     rabbitmqctl add_vhost /vhost1
    
     # 为用户授权可以访问的[virtual host]和操作类型[配置、读、写]
     rabbitmqctl set_permissions -p /vhost1 rabbitmq '.*' '.*' '.*'
    
     # 启用rabbitmq_management
     rabbitmq-plugins enable rabbitmq_management
    

RabbitMQ权限

  1. RabbitMQ角色权限

     # 角色列表:
     none、management、policymaker、monitoring、administrator
    
     # 角色权限:
     【none】
     不能访问 management_plugin(图形管理界面)
    
     【management】(单一virtual hosts用户)
     用户可以通过AMQP做的任何事外加:
     列出自己可以通过AMQP登入的virtual hosts  
     查看自己的virtual hosts中的queues, exchanges 和 bindings
     查看和关闭自己的channels 和 connections
     查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动
    
     【policymaker】
     management可以做的任何事外加:
     查看、创建和删除自己的virtual hosts所属的policies和parameters
    
     【monitoring】(监控用户)
     management可以做的任何事外加:
     列出所有virtual hosts,包括他们不能登录的virtual hosts
     查看其他用户的connections和channels
     查看节点级别的数据如clustering和memory使用情况
     查看真正的关于所有virtual hosts的全局的统计信息
    
     【administrator】(全权用户)
     policymaker和monitoring可以做的任何事外加:
     创建和删除virtual hosts
     查看、创建和删除users
     查看创建和删除permissions
     关闭其他用户的connections
    

RabbitMQ管理参考链接

  1. rabbitmq-plugins命令详解

     # 格式:
     rabbitmq-plugins <command> [<command options>]
    
     # 显示所有的的插件 -v:显示插件版本 -m:显示插件名称 -E:显示明确已经开启的插件 -e:显示明确和后台开启的插件
     rabbitmq-plugins list [-v|-m] [-E|-e] [<pattern>]
    
     # 启用插件
     rabbitmq-plugins enable <plugin1> <plugin2> ... <plugin_n>
    
     # 禁用插件
     rabbitmq-plugins disable <plugin1> <plugin2> ... <plugin_n>
    
     # 启用所有插件
     rabbitmq-plugins enable \
     amqp_client \
     cowboy \
     cowlib \
     rabbitmq_amqp1_0 \
     rabbitmq_auth_backend_ldap \
     rabbitmq_auth_mechanism_ssl \
     rabbitmq_consistent_hash_exchange \
     rabbitmq_event_exchange \
     rabbitmq_federation \
     rabbitmq_federation_management \
     rabbitmq_jms_topic_exchange \
     rabbitmq_management \
     rabbitmq_management_agent \
     rabbitmq_management_visualiser \
     rabbitmq_mqtt \
     rabbitmq_recent_history_exchange \
     rabbitmq_sharding \
     rabbitmq_shovel \
     rabbitmq_shovel_management \
     rabbitmq_stomp \
     rabbitmq_top \
     rabbitmq_tracing \
     rabbitmq_trust_store \
     rabbitmq_web_dispatch \
     rabbitmq_web_stomp \
     rabbitmq_web_stomp_examples \
     sockjs \
    
  2. rabbitmqctl命令全解(CLI模式管理)

     # 格式:
     rabbitmqctl [-n <node>] [-q] <command> [<command options>]
    
     # 【基本命令】
    
     # 停止运行rabbitmq
     rabbitmqctl stop <pid_file>
    
     # 停止运行rabbitmq上的应用
     rabbitmqctl stop_app
    
     # 等待rabbitmq服务启动
     rabbitmqctl wait <pid_file>
    
     # 初始化node状态(要先执行rabbitmqctl stop_app)
     rabbitmqctl reset
    
     # 强制初始化node状态
     rabbitmqctl force_reset
    
     # 轮转日志文件
     rabbitmqctl rotate_logs <suffix>
    
     # 【cluster集群管理】
    
     # 默认node以disc node加入集群,--ram表示node以ram node加入集群中(要先执行rabbitmqctl stop_app)
     rabbitmqctl join_cluster <node name> --ram
    
     # 显示cluster中的所有node
     rabbitmqctl cluster_status
    
     # 改变一个cluster中node的模式,该节点在转换前必须先停止,不能把一个集群中唯一的disk node转化为ram node
     rabbitmqctl change_cluster_node_type disc | ram
    
     # 远程移除cluster中的一个node,前提是该node必须处于offline状态,如果是online状态,则需要加--offline参数。
     rabbitmqctl forget_cluster_node --offline
    
     # 远程更新cluster中的node
     rabbitmqctl update_cluster_nodes clusternode
    
     # 同步镜像队列
     rabbitmqctl sync_queue queue
    
     # 取消同步镜像队列
     rabbitmqctl cancel_sync_queue queue 
    
     # 【用户管理】
    
     # 添加rabbitmq用户
     rabbitmqctl add_user <username> <password>
    
     # 删除rabbitmq用户
     rabbitmqctl delete_user <username>
    
     # 改变rabbitmq用户密码
     rabbitmqctl change_password <username> <newpassword>
    
     # 清除用户密码,禁止用户登录
     rabbitmqctl clear_password <username>
    
     # 设置用户标签
     rabbitmqctl set_user_tags <username> <tag1> <tag2> ... <tag_n>
    
     # 列出用户
     rabbitmqctl list_users
    
     # 创建一个vhosts
     rabbitmqctl add_vhost <vhostpath>
    
     # 删除一个vhosts
     rabbitmqctl delete_vhost <vhostpath>
    
     # 列出vhosts
     rabbitmqctl list_vhosts <vhostinfoitem1> <vhostinfoitem2> ... <vhostinfoitem_n>
    
     # 针对一个vhosts 给用户赋予相关权限
     rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
    
     # 清除一个用户对vhosts的权限
     rabbitmqctl clear_permissions [-p <vhostpath>] <username>
    
     # 列出哪些用户可以访问该vhosts
     rabbitmqctl list_permissions [-p <vhostpath>]
    
     #列出该用户的访问权限
     rabbitmqctl list_user_permissions <username>
    
     # 修改vhost路径参数
     rabbitmqctl set_parameter [-p <vhostpath>] <component_name> <key> <value>
    
     # 清除vhost路径参数
     rabbitmqctl clear_parameter [-p <vhostpath>] <component_name> <key>
    
     # 列出vhost路径参数
     rabbitmqctl list_parameters [-p <vhostpath>]
    
     # 【策略policy管理】
    
     # name:策略名称 pattern:匹配资源正则表达式 apply-to:策略应用类型范围,有[all、queues、exchange] priority:整数优先级 definition:json格式设置的策略
     rabbitmqctl set_policy [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition(json)>
    
     #清除一个策略
     rabbitmqctl clear_policy [-p <vhostpath>] <name>
    
     # 列出已有的策略
     rabbitmqctl list_policies [-p <vhostpath>]
    
     # 【queues exchanges】
    
     # 返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。
     rabbitmqctl list_queues [-p <vhostpath>] [<queueinfoitem> ...]
    
     # 返回exchange的信息
     rabbitmqctl list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]
    
     # 返回绑定信息
     rabbitmqctl list_bindings [-p <vhostpath>] [<bindinginfoitem> ...]
    
     # 返回链接信息
     rabbitmqctl list_connections [<connectioninfoitem> ...]
    
     # 返回目前所有的channels
     rabbitmqctl list_channels [<channelinfoitem> ...]
    
     # 返回consumers
     rabbitmqctl list_consumers [-p <vhostpath>]
    
     # 显示broker的状态
     rabbitmqctl status
    
     # 显示环境参数的信息
     rabbitmqctl environment
    
     # 返回一个服务状态report
     rabbitmqctl report
    
     # 返回一个服务状态eval
     rabbitmqctl eval <expr>
    
  3. rabbitmqctl管理方式

     # 启用rabbitmq_management
     rabbitmq-plugins enable rabbitmq_management
     # (不成功则先执行:rabbitmqctl start_app)
    
     # web访问:
     http://[ip]:15672
    
     # api访问:
     http://[ip]:15672/api
    
     # cli访问:
     http://[ip]:15672/cli
    
@耿志环 2012-∞ 冀ICP备17033181号, powered by Gitbook修订: 2018-05-23 16:25:59

results matching ""

    No results matching ""