RabbitMQ--部署与控制台
一、RabbitMQ安装
(一)安装erlang
# 安装依赖 yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel # 下载erlang wget http://erlang.org/download/otp_src_22.0.tar.gz # 解压 tar -zxvf otp_src_22.0.tar.gz # 移动 mv otp_src_22.0 /usr/local/ # 切换目录 cd /usr/local/otp_src_22.0/ #创建即将安装的目录 mkdir ../erlang # 配置安装路径 ./configure --prefix=/usr/local/erlang # 安装 make install # 查看一下是否安装成功 ll /usr/local/erlang/bin # 添加环境变量 echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile # 刷新环境变量 source /etc/profile # 执行erlang命令 erl # 退出 halt().
(二)安装RabbitMQ
# 切换到/usr/local目录 cd /usr/local/ # 下载 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz # 由于是tar.xz格式的所以需要用到xz,没有的话就先安装 yum install -y xz # 第一次解压 /bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz # 第二次解压 tar -xvf rabbitmq-server-generic-unix-3.7.15.tar # 改名 mv rabbitmq_server-3.7.15 rabbitmq # 配置环境变量 echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile # 刷新环境变量 source /etc/profile # 创建配置目录(这里并未使用单独的配置文件,因此本步骤纯属多余,感谢朋友特意指正。) mkdir /etc/rabbitmq
(三)启动RabbitMQ
# 启动: rabbitmq-server -detached # 停止: rabbitmqctl stop # 状态: rabbitmqctl status # 防火墙之类的请自行处理(5672和15672端口)
(四)web访问
需要开启web插件
rabbitmq-plugins enable rabbitmq_management
访问:http://ip:15672/,默认账号密码:guest guest(这个账号只允许本机访问)
(五)用户管理及命令
# 查看所有用户 rabbitmqctl list_users # 添加一个用户 rabbitmqctl add_user lcl 123456 # 配置权限 rabbitmqctl set_permissions -p "/" lcl ".*" ".*" ".*" # 查看用户权限 rabbitmqctl list_user_permissions lcl # 设置tag rabbitmqctl set_user_tags lcl administrator # 删除用户(安全起见,删除默认用户) rabbitmqctl delete_user guest
其他的命令行操作
# 移除用户权限 rabbitmqctl clear_permissions -p vhostpath username # 查看用户权限 rabbitmqctl list_user_permissions username # 重置密码 rabbitmqctl change_password username newpassword # 创建虚拟主机 rabbitmqctl add_vhost vhostpath # 查看所有虚拟主机 rabbitmqctl list_vhosts # 列出虚拟主机上所有权限 rabbitmqctl list_permissions -p vhostpath # 删除虚拟主机 rabbitmqctl delete_vhost vhostpath # 查看所有队列 rabbitmqctl list_queues # 清除队列里的消息 rabbitmqctl -p vhostpath purge_queue blue # 移除所有数据,要在 rabbitmqctl stop_app 之后使用 rabbitmqctl reset # 组成集群命令 rabbitmqctl join_cluster <clusternode> [--ram] # 查看集群状态 rabbitmqctl cluster_status # 修改集群节点的存储形式 rabbitmqctl change_cluster_node_type disc | ram # 忘记(摘除)节点 rabbitmqctl forget_cluster_node [--offline] # 修改节点名称 rabbitmqctl rename_cluster_node oldnode1 newnode1 [oldnode2] [newnode2...]
二、控制台
直接访问服务器的15672端口
在控制台中:
绿色部分可以设置控制台刷新频率、选择虚拟主机、集群、用户等信息
红色部分是用来查看统计信息的
蓝色部分是详细的相关组件的介绍
(一)Overview
1、totals统计
(1)Queued message:
Ready:待消费的消息总数
Unacked:待应答的消息总数
Total:总数 Ready+Unacked
Publish:producter pub消息的速率。
(2)Message rates:
Publisher confirm:broker确认pub消息的速率。
Deliver(manual ack):customer手动确认的速率。
Deliver( auto ack):customer自动确认的速率。
Consumer ack:customer正在确认的速率。
Redelivered:正在传递'redelivered'标志集的消息的速率。
Get (manual ack):响应basic.get而要求确认的消息的传输速率。
Get (auto ack):响应于basic.get而发送不需要确认的消息的速率。
Return:将basic.return发送给producter的速率。
Disk read:queue从磁盘读取消息的速率。
Disk write:queue从磁盘写入消息的速率。
(3)Global counts:整体角色的个数
Connections:client的tcp连接的总数。
Channels:通道的总数。
Exchange:交换器的总数。
Queues:队列的总数。
Consumers:消费者的总数。
2、nodes节点
Name:broker名称
File descriptors:broker打开的文件描述符和限制。
Socket descriptors:broker管理的网络套接字数量和限制。当限制被耗尽时,RabbitMQ将停止接受新的网络连接。
Erlang processes:erlang启动的进程数。
Memory:当前broker占用的内存。
Disk space:当前broker占用的硬盘。
Uptime:当前broker持续运行的时长。
Info:集群的信息。
Reset stats:重启单节点或整个集群。
3、Churn statistics 流失统计
Connection operations 连接操作的创建和关闭速率
Channel operations 通道操作的创建和关闭速率
Queue operations 队列操作的声明、创建、关闭速率
(Created 创建、Closed 关闭、Declared 声明)
4、Ports and contexts 端口和Web容器定义
用来记录开放的端口以及协议。
5、Export definitions导出定义
定义由用户,虚拟主机,权限,参数,交换,队列和绑定组成。 它们不包括队列的内容或集群名称。 独占队列不会被导出。
6、Import definitions导入定义
导入的定义将与当前定义合并。 如果在导入过程中发生错误,则所做的任何更改都不会回滚。
(二)Connections连接属性
Name:名称。
User name:使用的用户名。
State:当前的状态,running:运行中;idle:空闲。
SSL/TLS:是否使用ssl进行连接。
Protocol:使用的协议。
Channels:创建的channel的总数。
From client:每秒发出的数据包。
To client:每秒收到的数据包。
(三)Channels通道
channel:名称。
User name:使用的用户名。
Mode:渠道保证模式。 可以是以下之一,或者不是:C: confirm。T:transactional(事务)。
State :当前的状态,running:运行中;idle:空闲。
Unconfirmed:待confirm的消息总数。
Prefetch:设置的prefetch的个数。
Unacker:待ack的消息总数。
publish:producter pub消息的速率。
confirm:producter confirm消息的速率。
deliver/get:consumer 获取消息的速率。
ack:consumer ack消息的速率。
(四)Exchange交换机
1、交换机属性
Virtual host:所属的虚拟主机。
Name:名称。
Type:exchange type,
Features:功能。 可以是以下之一,或者不是:D: 持久化。T:Internal,存在改功能表示这个exchange不可以被client用来推送消息,仅用来进行exchange和exchange之间的绑定,否则可以推送消息也可以绑定。
Message rate in:消息进入的速率。
Message rate out:消息出去的速率。
2、手动添加Exchange
(五)Queues队列
1、队列属性
Name:名称。
Features:功能。 可以是以下之一,或者不是:D: 持久化。
State:当前的状态,running:运行中;idle:空闲。
Ready:待消费的消息总数。
Unacked:待应答的消息总数。
Total:总数 Ready+Unacked。
incoming:消息进入的速率。
deliver/get:消息获取的速率。
ack:消息应答的速率。
2、手动添加队列
(六)Admin
可以对用户、虚拟主机、策略、限制、集群进行管理
1、用户管理
可以查询用户信息和新增用户
2、虚拟主机管理
可以查询和新增虚拟主机,显示项和前面基本一致。
3、策略
可以查询用户策略、添加更新一个策略等
4、限制
可以为虚拟机增加一些限制条件,最大连接数及最大队列数,但是默认虚拟机无法添加
5、集群
集群的节点管理
-----------------------------------------------------------
---------------------------------------------
朦胧的夜 留笔~~