rabbitmq-web界面:
- Admin- 
- Users- 
- 增
- 删
- 改
- 设置角色
- virtual hosts权限- 
- 说明:- 
- virtual host相当于一个单独的rabbitmq服务器,每个virtual是独立的,不可互通的,相当于mysql中的数据库,都是独立的,可以单独设置权限,Virtual Name一般以/开头
 
- 添加chost及授权:- 
- sudo rabbitmqctl add_vhost myvhost
- sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"
 
 
 
- Virtual Hosts- 
- 增
- 删
- 改
- 添加用户的virtual hosts权限- 
- sudo rabbitmqctl add_vhost /testvhost
- sudo rabbitmqctl set_permissions -p /testvhost admin ".*" ".*" ".*"
- broker的配置:- broker='amqp://admin:admin@localhost:5672//testvhost'
 
 -  
- Policies:策略(高级)- 
- 为什么要使用policy- 
- 一个策略按名称匹配一个或多个队列(使用正则表达式模式),可以使用策略一次为多个队列配置x参数,并通过更新策略定义一次全部更新它们。
 
- 定义 Policies 的方法,目前有三种途径:- 
- 通过 rabbitmqctl 命令创建
- 通过 RabbitMQ REST API
- 通过管理插件(web)
 
- Policy 各属性解释:- 
- name:名字,可以使用任意字符,建议不要使用空格
- pattern:用于匹配队列/交换机的正则表达式
- apply-to:该 Policy 是针对队列,还是交换机,还是同时针对两者
- priority:优先级。一个队列/交换机只会有一个生效的 Policy,如果匹配多个 Policy,则优先级数值最大的 Policy 生效
- definition:JSON格式的一组键值对,表示设置的属性,会被注入匹配队列/交换机
- 官方文档:
 
- 查
- 增
- 删
 
 
- Queue:队列- 
- 队列的增加
- 详情- 
- Overview
- Consumers
- Bindings
- Publish message
- Get messages
- Move messages
- Delete / purge:删除队列:Delete / 清空队列:Purge
 
 
- Exchange:交换机- 
- 增加交换器
- 详情- 
- Overview
- Bindings
- Publish message
- Delete this exchange
 
 
- Channels:频道、信道- 
- channel是建立在真实的连接内的虚拟连接
- 每条channel都会被指派一个唯一ID
- 一个TCP连接,对应多个channel,理论上无限制,减少TCP创建和销毁的开销,实现共用TCP的效果
- 与RabbitMQ打交道的最重要的一个接口
- 注:一个生产者或一个消费者与MQ服务器之间只有一条TCP连接
 
- Connections
- Connections和Channel的区别- 
- Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等。
- 如果每一次访问RabbitMQ都建立一个Connection,在消息量大的时候建立TCP Connection的开销将是巨大的,效率也较低。Channel是在connection内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的channel进行通讯,channel之间是完全隔离的
- Channel作为轻量级的Connection极大减少了操作系统建立TCP connection的开销
 
- Overview- 
- ready- 
- 如果队列中ready状态的消息数比较多,可以认为是消费者的处理能力不足,可以通过增加消费者来解决
 
- unacked- 
- 消费者取走消息后没有及时做消息确认,对于开启手动确认机制的,不进行ack则消息会一直以unacked状态留在队列中。默认是自动应答
- 消费者处理能力不足。生产者投放消息的速度较快,当消费者按照设置的值(prefetch_count)取走相应数量的消息时,这些消息都会暂时处于unacked状态。
- 消费者挂掉后,unacked的消息会变成ready状态的消息重新放在队列中,待下次消费者启动后可以直接读取