一、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端口

      RabbitMQ--部署与控制台

   在控制台中:

    绿色部分可以设置控制台刷新频率、选择虚拟主机、集群、用户等信息

      红色部分是用来查看统计信息的

      蓝色部分是详细的相关组件的介绍

(一)Overview

  1、totals统计

      RabbitMQ--部署与控制台

      (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节点

      RabbitMQ--部署与控制台

    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 流失统计

      RabbitMQ--部署与控制台

       Connection operations 连接操作的创建和关闭速率

    Channel operations 通道操作的创建和关闭速率

    Queue operations 队列操作的声明、创建、关闭速率

    (Created 创建、Closed 关闭、Declared 声明)

  4、Ports and contexts 端口和Web容器定义

      RabbitMQ--部署与控制台

     用来记录开放的端口以及协议。

  5、Export definitions导出定义

    定义由用户,虚拟主机,权限,参数,交换,队列和绑定组成。 它们不包括队列的内容或集群名称。 独占队列不会被导出。

  6、Import definitions导入定义

    导入的定义将与当前定义合并。 如果在导入过程中发生错误,则所做的任何更改都不会回滚。

(二)Connections连接属性

      RabbitMQ--部署与控制台

  Name:名称。

  User name:使用的用户名。

  State:当前的状态,running:运行中;idle:空闲。

  SSL/TLS:是否使用ssl进行连接。

  Protocol:使用的协议。

  Channels:创建的channel的总数。

  From client:每秒发出的数据包。

  To client:每秒收到的数据包。

(三)Channels通道

      RabbitMQ--部署与控制台

   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、交换机属性

      RabbitMQ--部署与控制台

    Virtual host:所属的虚拟主机。

    Name:名称。

    Type:exchange type,

    Features:功能。 可以是以下之一,或者不是:D: 持久化。T:Internal,存在改功能表示这个exchange不可以被client用来推送消息,仅用来进行exchange和exchange之间的绑定,否则可以推送消息也可以绑定。

    Message rate in:消息进入的速率。

    Message rate out:消息出去的速率。

  2、手动添加Exchange

      RabbitMQ--部署与控制台

 (五)Queues队列

  1、队列属性

      RabbitMQ--部署与控制台

    Name:名称。

    Features:功能。 可以是以下之一,或者不是:D: 持久化。

    State:当前的状态,running:运行中;idle:空闲。

    Ready:待消费的消息总数。

    Unacked:待应答的消息总数。

    Total:总数 Ready+Unacked。

    incoming:消息进入的速率。

    deliver/get:消息获取的速率。

      ack:消息应答的速率。

  2、手动添加队列

      RabbitMQ--部署与控制台

 (六)Admin

  可以对用户、虚拟主机、策略、限制、集群进行管理

      RabbitMQ--部署与控制台

  1、用户管理

    可以查询用户信息和新增用户

      RabbitMQ--部署与控制台

   2、虚拟主机管理

    可以查询和新增虚拟主机,显示项和前面基本一致。

      RabbitMQ--部署与控制台

   3、策略

  可以查询用户策略、添加更新一个策略等

      RabbitMQ--部署与控制台

   4、限制

    可以为虚拟机增加一些限制条件,最大连接数及最大队列数,但是默认虚拟机无法添加

      RabbitMQ--部署与控制台

   5、集群

    集群的节点管理

      RabbitMQ--部署与控制台

 

相关文章:

  • 2022-12-23
  • 2022-01-17
  • 2021-11-20
  • 2021-11-30
  • 2022-01-03
  • 2022-12-23
猜你喜欢
  • 2021-11-20
  • 2021-08-23
  • 2021-05-15
  • 2021-07-04
  • 2021-08-29
  • 2021-12-18
相关资源
相似解决方案