RabbitMQ 2 RabbitMQ安装,配置 Java中使用

使用
新增用户
- ```bash
rabbitmqctl add_user admin admin1
2
3
4
5
- 设置用户分配操作权限
- ```bash
rabbitmqctl set_user_tags admin administrator
- ```bash
为用户添加资源权限
- ```bash
rabbitmqctl set_permissions -p / admin “.“ “.“ “.*”1
2
3
4
5
6
7
8
9
10
11
# 命令
```bash
rabbitmqctl add_user USERNAME PASSWORD #账号密码
rabbitmqctl set_user_tags USERNAME administrator #赋予角色
rabbitmqctl change_password USERNAME NEWPASSWORD # 修改密码
rabbitmqctl list_users # 查看用户清单
rabbitmqctl [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p / USERNAME ".*" ".*" ".*" #设置所有权限
- ```bash
其他
1 | rabbitmq-plugins enable rabbitmq_management # 添加管理插件 |
RabbitMQ默认用户名和密码:guest
用户级别
- administrator,可以登录控制台,查看所有信息,可以对rabbitmq进行管理;
- 最高权限
- 可以创建和删除virtual hosts
- 可以查看,创建和删除users
- 查看创建permissions
- 关闭所有用户的connections
- monitoring监控者,登录控制台,查看所有信息
- 包含management所有权限
- 罗列出所有的virtual hosts,包括不能登录的virtual ohsts
- 查看其他用户的connections和channels信息
- 查看节点级别的数据如clustering和memory使用情况
- 查看所有的virtual hosts的全局统计信息。
- policymaker策略制定者,登录控制台,制定策略
- 包含management所有权限
- 查看、创建额删除自己的virtual hosts所属的policies和parameters信息。
- managment普通管理员,登录控制台
- 列出自己可以通过AMQP登入的虚拟机
- 查看自己的虚拟机节点virtual hosts的queues,exchanges和bindings信息
- 查看和关闭自己的channels和connections
- 查看有关自己的虚拟机节点virtual hosts的统计信息,包括其他用户在这个节点的virtual hosts的活动信息。
- none,不能访问management plugin。
在Java中使用/RabbitMQ简单模式实现
依赖
1 | <dependency> |
使用
- 创建连接工厂,创建连接Connection
- 通过连接获取通道Channel
- 通过通道创建交换机,声明队列,绑定关系,路由key,发送消息,接收消息
- 声明队列
- 准备消息内容
- 发送消息给队列
- 关闭连接
1 | public class Producer { |
AMQP流程
AMQP,Advanced Message Queuing Protocol(高级消息队列协议),是应用层协议的一个开发标准,为面向消息的中间件设计。
生产者流程
- 建立连接
- 开启通道
- 发送消息
- 释放资源(关闭通道)
- 关闭连接
1 | Producer发送 Broker服务器回应 |
消费者流程
- 建立连接
- 开启通道
- 准备接收消息
- Broken推送消息
- 推送消息
- 发送确认
- 向Broker发送确认收到消费消息
- Broker收到消息后,会将消息从队列中删除;
- 若Broker没有收到Ack,则一直发送消息,直到收到Ack为止。
- 释放资源
- 关闭连接
1 | Consumer发送 Broker节点回应 |
RabbitMQ组件与架构
整体架构
运行流程
评论