1.docker search rabbitmq //搜索镜像
2.docker pull rabbitmq
//默认安装最新的版本 如果不安装最新版加上版本号即可
3.docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
映射端口 名字自己随意取
4.docker ps
5.进入容器
docker exec -it 镜像ID /bin/bash
6.进入镜像后 开启 web 管理插件
rabbitmq-plugins enable rabbitmq_management
7.ctrl+p+q退出当前容器 让容器后台运行
8.浏览器进入 IP替换成自己服务器或者linux的 账号和密码默认都是guest
http://IP:15672/
9.如果登录进不去可能是防火墙拦截了,需要开放15672端口,自己的虚拟机可以直接关闭防火墙
2.创建新用户1.进入容器
docker exec -it 镜像ID /bin/bash
2.添加账号 admin和123456对应账号密码 随意设置
创建账号
rabbitmqctl add_user admin123456
3.给admin设置管理员角色
rabbitmqctl set_user_tags admin administrator
4.给admin设置权限
语法 :set_permissions [-p ]
命令:rabbitmqctl set_permissions -p “/” admin “." ".” “.*” //给admin用户设置所有权限
//用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
设置完可以去浏览器登录
当然也可以在web界面直接设置
5.查看当前用户和角色
docker exec -it 镜像ID /bin/bash
rabbitmqctl list_users
- 重置命令
1.关闭应用的命令为
rabbitmqctl stop_app
2.清除的命令为
rabbitmqctl reset
3.重新启动命令为
3.RabbitMQ的HelloWordrabbitmqctl start_app
1.导入依赖
org.apache.maven.plugins
maven-compiler-plugin
8
8
com.rabbitmq
amqp-client
5.8.0
commons-io
commons-io
2.6
org.slf4j
slf4j-simple
1.7.25
compile
2.编写入门程序(如果是云服务器,记得开启5672端口,不然连接不上)
1.生产者
public class Producer {
//队列名称
public static final String QUEUE_NAME ="hello";
//发消息、
public static void main(String[] args) {
//创建一个链接工厂
ConnectionFactory factory = new ConnectionFactory();
//工厂IP 链接RabbitMQ的队列
factory.setHost("自己的服务器IP");
//用户名
factory.setUsername("admin");
//密码
factory.setPassword("123");
factory.setPort(5672); //默认端口
try {
//创建链接
Connection connection = factory.newConnection();
//获取信道 交换机可以省略 采用默认的交换机
//channel 实现了自动 close 接口 自动关闭 不需要显示关闭
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME,true,false,false,null);
//发消息
String message = "Hello RabbitMQ2";
channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
System.out.println("消息发送完成");
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
}
}
2.消费者
public class Consumer {
//队列名称
public static final String QUEUE_NAME ="hello";
//接受消息
public static void main(String[] args) throws IOException, TimeoutException {
//创建一个链接工厂
ConnectionFactory factory = new ConnectionFactory();
//工厂IP 链接RabbitMQ的队列
factory.setHost("自己的服务器IP");
//用户名
factory.setUsername("admin");
//密码
factory.setPassword("123");
factory.setPort(5672); //默认端口
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
//声明 写死右箭头 落地大可好
DeliverCallback deliverCallback = (consumerTag,message) -> {
System.out.println(new String(message.getBody()));
};
//取消消息的回调
CancelCallback cancelCallback = consumerTag ->{
System.out.println("消息被中断" );
};
channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
}
}
3.发送消息后即可在web上看到消息



