我的个人网站
CentOS7.0安装RabbitMQ
安装前的准备
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 \
源码安装erlang
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
加入环境变量
vim /etc/profile export PATH=$PATH:/usr/local/erlang/bin ESC :wq source /etc/profile
测试启动erlang
/usr/local/erlang/bin/erl # 显示Eshell V8.2 (abort with ^G) # 输入: 1>9+7. 16 # 退出: 2>halt().
安装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
添加配置文件
配置参考vim /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config [{rabbit,[{tcp_listeners,[5672]}]}]. ESC :wq
加入环境变量
vim /etc/profile export RABBITMQ_HOME=/usr/local/rabbitmq export PATH=$PATH:/usr/local/rabbitmq/sbin ESC :wq source /etc/profile
启动RabbitMQ
/usr/local/rabbitmq/sbin/rabbitmq-server -detached
开机启动RabbitMQ
vim /etc/rc.local /usr/local/rabbitmq/sbin/rabbitmq-server -detached ESC :wq
安装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
添加用户并授权
# 创建用户 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权限
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管理参考链接
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 \
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>
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
- 领支付宝红包支持作者