docker 從阿里倉 拉取rabbitMq鏡像 及部署 使用(環境:win10-家庭版-Docker Toolbox)


主要參考此博文:https://blog.csdn.net/weixin_39617052/article/details/79723849

 

1、docker 及 虛擬機 啟動

 

 

 

 

 

 2、$ docker info  (查看 docker 信息)主要看下 鏡像倉庫是否是阿里的

 

 

 

3、$  docker search rabbitmq:management  ( 查詢 management 版本的 rabbitmq )  此版本有 管理界面

 

 

 

 4、 $ docker pull rabbitmq:management  ( 拉取 management 版本的 rabbitmq )拉取最好指定版本 不然會拉取 latest 版本

 

 

 

5、$ docker run -d --hostname my-rabbit --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   

    ( 啟動 同時 重置管理界面 賬號 密碼 ) 管理頁面 默認賬號:guest  默認密碼:guest 

 

 

 

-d: 后台運行容器,並返回容器ID

--hostname:指定容器主機名稱
--name:指定容器名稱
-p:將mq端口號映射到本地  格式為:主機(宿主)端口:容器端口

 

擴展:( 參考  https://blog.csdn.net/weixin_33889245/article/details/91907299 )

 

 

6、 http://192.168.99.100:15672/    登錄 管理頁面 

 

 

7、 消息 生產者 消費者 代碼

 

package com.ll.scdemo01.rabbit;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.util.concurrent.TimeoutException;

public class Sender {

private final static String QUEUE_NAME = "hello1";

public static void main(String[] argv) throws java.io.IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("admin");
factory.setPassword("admin");
factory.setHost("192.168.99.100");
factory.setPort(5672);
factory.setVirtualHost("/");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
}
}

 

 

 

package com.ll.scdemo01.rabbit;

import com.rabbitmq.client.*;

import java.io.IOException;

public class Consumer {

private final static String QUEUE_NAME = "hello";

public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("admin");
factory.setPassword("admin");
factory.setHost("192.168.99.100");
factory.setPort(5672);
factory.setVirtualHost("/");
factory.setConnectionTimeout(600000); // in milliseconds
factory.setRequestedHeartbeat(60); // in seconds
factory.setHandshakeTimeout(6000); // in milliseconds
factory.setRequestedChannelMax(5);
factory.setNetworkRecoveryInterval(500);

Connection connection = factory.newConnection();
Channel channel = connection.createChannel();

channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println("Waiting for messages. ");

com.rabbitmq.client.Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
throws IOException {
String message = new String(body, "UTF-8");
System.out.println(" [x] Received '" + message + "'");
}
};
channel.basicConsume(QUEUE_NAME, true, consumer);
}

}

 

<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.1.2</version>
</dependency>



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM