介绍
rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。
web页面包括
- Overview(概述)
- Connections(连接)
- Channels(通道)
- Exchanges(交换器)
- Queues(队列)
- Admin(用户管理)。
Overview
Totals
Queued messages(所有队列的消息情况)
- Ready:待消费的消息总数。
- Unacked:待应答的消息总数。
- Total:总数 Ready+Unacked。
Queued messages(所有队列的消费情况)
速率=(num1-num0)/(s1-s0) num1:s1时刻的个数。num0:s0时刻的个数。
- Publish:producter pub消息的速率。
- 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从磁盘写入消息的速率。
全局连接
- Connections:客户端连接总数。
- Channels:通道总数。
- Exchange:交换器总数。
- Queues:队列总数。
- Consumers:消费者总数。
Nodes
每一个 RabbitMQ 的实例(broker) 都是一个node节点
broker的属性
- Name:broker名称
- File descriptors:broker打开的文件描述符和限制。
- Socket descriptors:broker管理的网络套接字数量和限制。当限制被耗尽时,RabbitMQ将停止接受新的网络连接。
- Erlang processes:erlang启动的进程数。
- Memory:当前broker占用的内存。
- Disk space:当前broker占用的硬盘。
- Uptime:当前broker持续运行的时长。
- Info:
- Reset stats:
Ports and contexts
Export definitions
定义由用户,虚拟主机,权限,参数,交换,队列和绑定组成。 它们不包括队列的内容或集群名称。 独占队列不会被导出。
Import definitions
导入的定义将与当前定义合并。 如果在导入过程中发生错误,则所做的任何更改都不会回滚。
Connections
当前所有客户端活动的连接。包括生成者和消费者。
连接的属性
- Name:名称和地址。
- User name:使用的用户名。
- State:当前的状态,running:运行中;idle:空闲。
- SSL/TLS:是否使用ssl进行连接。
- Protocol:使用的协议。
- Channels:创建的channel的总数。
- From client:每秒发出的数据包。
- To client:每秒收到的数据包。
channels
当前连接所有创建的通道。
通道的属性
- channel:名称。
- Virtual host:所属的虚拟主机。
- User name:使用的用户名。
- Mode:渠道保证模式。 可以是以下之一,或者不是:C: confirm。T:transactional(事务)。
- State :当前的状态,running:运行中;idle:空闲。
- Unconfirmed:待confirm的消息总数。
- Prefetch:设置的prefetch的个数。
- Unacker:待ack的消息总数。
- publish:生产端 pub消息的速率。
- confirm:生产端确认消息的速率。
- deliver/get:消费端获取消息的速率。
- ack:消费端 ack消息的速率
Exchanges
Exchanges
交换机属性
- Name:名称。
- Type:exchange type,具体的type可以查看RabbitMq系列之一:基础概念。
- Features:持久化,D:持久化 T:内存。
- Message rate in:消息输入速率。
- Message rate out:消息输出速率
Add a new exchange
- Virtual host:属于哪个Virtual host,我这里只有一个所以不显示
- Name:名字,同一个Virtual host里面的Name不能重复。
- Durability: 是否持久化,Durable:持久化。Transient:不持久化。
- Auto delete:当最后一个绑定(队列或者exchange)被unbind之后,该exchange自动被删除。
- Internal: 是否是内部专用exchange,是的话,就意味着我们不能往该exchange里面发消息。
- Arguments: 参数,是AMQP协议留给AMQP实现做扩展使用的
Queues
Queues
- Virtual host:所属的虚拟主机。
- Name:队列名称。
- Features:持久化,D:持久化 T:内存。
- State:当前的状态,running:运行中;idle:空闲。
- Ready:待消费的消息
- Unacked:待应答的消息
- Total:总数, Ready+Unacked
Add a new queue
- Virtual host:属于哪个Virtual host,我这里只有一个所以不显示
- Name:名字,同一个Virtual host里面的Name不能重复。
- Durability: 是否持久化,Durable:持久化。Transient:不持久化。
- Auto delete:当最后一个绑定(队列或者exchange)被unbind之后,该 queue 自动被删除。
- Arguments: 参数,是AMQP协议留给AMQP实现做扩展使用的
admin
管理界面包含
- 用户管理
- 策略管理
- 连接数设置
- 虚拟主机管理
Users
Virtual Host
Policies
策略配置
策略分为“用户策略”和“系统策略”
策略使用的是正则表达匹配规则,按名称匹配一个或多个队列,并将其定义的一些规则(参数)到匹配队列中。换句话说,可以使用策略一次为多个队列配置参数。还记得上节我们讲的添加“分发器”和“队列”中的“Arguments”参数么?策略可以理解为给“队列”和“分发器”设置额外的“Arguments”参数。每个“分发器”和“队列”只能生效一个“策略”,并且是是立即生效的。
参数
- Apply to:指定策略是只匹配队列、还是只匹配交换,或两则两者都匹配。
- Priority:表示的是策略的优先级、值越大,优先级越高。
- Definition:才是真正的规则。有四大类,分别是HA(高可用性)、federation(联合)、Queues(队列)、Exchanges(备用分发器)
- HA(高可用性):表示将队列怎么镜像到节点的策略。
- ha-mode:选项有三个,分别是“all“(表示同步到所有节点),"exactly","nodes"。"exactly"和"nodes"需要结合ha-params才能决定同步策略
- ha-params:为数值、表示个数
- ha-sync-mode:(手动(manual)/自动(automatic)同步)
举个例子:ha-mode=exactly、ha-params=2、ha-sync-mode=automatic这个策略表示队列将镜像到群集中的任意两个节点,并自动同步。
- ha-promote-on-failure:策略默认是不允许将不同步(跟主镜像内容不相同)的镜像提升为主镜像
- ha-promote-on-shutdown:如果设置为“always”则表示所有情况都可以提升不同步的镜像为主镜像
- ha-promote-on-failurez:为when-synced、无论ha-promote-on-shutdown的值为什么、也不会提升不同步的镜像为主镜像
- Federation(联合):联合可以从一个或多个上游(其他代理上的远程分发器和队列)接收消息,并将其路由到本地队列。
- federation-upstream-set:与“联合”一起使用的一组“上游”的名称;或“all”参数,表示使用所有上游
- federation-upstream:用于联邦的特定上游集合, federation-upstream-set和federation-upstream不兼容(不可同时用)
- Queues:看名字就知道意思了、比如Message TTL(消息TTL),Auto expire(自来处理动失效)等等。就不讲了
- Exchanges(备用分发器):如果无法路由指定的分发器,则就会交由这个“备用分发器”。
我们添加一个“testUserPolicies”策略。添加完后点击策略名,可看到策略详情。在详情页可以删除此策略。