栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Docker下安装RabbitMQ

Docker下安装RabbitMQ

1 查看MQ是否存在

docker search rabbitmq:management

2 将镜像下载下来

docker pull rabbitmq:management

3 发布docker镜像

docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

说明

命令中的【RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin】是web管理平台的用户名和密码

【 -p 15672:15672】 是控制平台docker映射到系统的对应端口

【 -p 5672:5672】 是应用程序的访问端口

端口解释可以点击看这里

4 web端的管理界面:

http://106.12.214.8:15672

会提示输入用户名和密码

刚刚设置的是admin,没有设置密码,系统会默认一个guest

5 写一个测试例子:

import org.junit.jupiter.api.Test;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class TestMq {
@Test
public void testSendMess(){
String queueName=“TEST_Q”;
try {
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(“guest”);
factory.setPassword(“guest123”);
factory.setHost(“106.12.214.8”);
factory.setPort(5672);
factory.setVirtualHost("/");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(queueName, false, false, false, null);
String message = “Hello World!”;
channel.basicPublish("", queueName, null, message.getBytes());
System.out.println(" [x] Sent ‘" + message + "’");
channel.close();
connection.close();
}catch (Exception e){

    }
}

}

这个例子参考了 网站

引用包pom.xml文件里面是这样的:

org.springframework.boot spring-boot-starter-amqp 1.5.2.RELEASE

springboot中的例子 查看这个地址

上面的测试用例在执行的时候出行一个错误:

17:54:40.740 [AMQP Connection 106.12.214.8:5672] ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connection driver error occured
java.net.SocketException: Socket Closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288)
at com.rabbitmq.client.impl.frame.readFrom(frame.java:91)
at com.rabbitmq.client.impl.SocketframeHandler.readframe(SocketframeHandler.java:184)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:598)
at java.lang.Thread.run(Thread.java:744)

这是因为我创建的guest,没有给权限,如果改成刚刚的admin就没问题了,admin是administrator权限,改一下gust的权限就可以了。访问成功!

查看管理界面:

这个测试消息已经发到mq。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号