实现RabbitMQ的远程通信和复制,可以在广域网上使用
1.用Docker启动两个RabbitMQ节点
docker run -d --name=rabbitmqa -p 5772:5672 -p 15772:15672 -e RABBITMQ_NODENAME=rabbitmqa -h rabbitmqa rabbitmq:3.6.9-management
docker run -d --name=rabbitmqb -p 5773:5672 -p 15773:15672 -e RABBITMQ_NODENAME=rabbitmqb -h rabbitmqb rabbitmq:3.6.9-management
2.开启shovel插件
docker exec rabbitmqa bash -c "rabbitmq-plugins enable rabbitmq_shovel"
docker exec rabbitmqa bash -c "rabbitmq-plugins enable rabbitmq_shovel_management"
docker exec rabbitmqb bash -c "rabbitmq-plugins enable rabbitmq_shovel"
docker exec rabbitmqb bash -c "rabbitmq-plugins enable rabbitmq_shovel_management"
3.获得两个RabbitMQ节点的IP
docker inspect --format='{{ .NetworkSettings.IPAddress }}' rabbitmqa
docker inspect --format='{{ .NetworkSettings.IPAddress }}' rabbitmqb
4.编辑rabbitmq.config文件,在附件中
5.替换Docker容器中的rabbitmq.config文件
只需替换source节点的配置文件
docker cp /home/robbie/Downloads/rabbitmq.config 017bf80d9b22:/etc/rabbitmq/rabbitmq.config
6.重启docker容器
docker restart rabbitmqa
docker restart rabbitmqb
在RabbitMQ的管理页面上可以看见两个节点上已经自动创建了对应的queue和exchange
7.在destinations RabbitMQ节点(rabbitmqb)上创建消费者
public class Consumer { public static void main(String[] args) throws IOException, TimeoutException { ConnectionFactory connectionFactory = new ConnectionFactory(); connectionFactory.setHost("localhost"); connectionFactory.setPort(5773); connectionFactory.setUsername("guest"); connectionFactory.setPassword("guest"); Connection connection = connectionFactory.newConnection(); Channel channel = connection.createChannel(); channel.basicConsume("warehouse_carpinteria",true,"order_processor",new DefaultConsumer(channel){ @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { System.out.println("Message is: " + new String(body)); // channel.basicAck(envelope.getDeliveryTag(),false); } }); } }
8.在source RabbitMQ节点(rabbitmqa)上创建生产者
@Test public void producer() throws IOException, TimeoutException { ConnectionFactory connectionFactory = new ConnectionFactory(); connectionFactory.setHost("localhost"); connectionFactory.setPort(5772); connectionFactory.setUsername("guest"); connectionFactory.setPassword("guest"); Connection connection = connectionFactory.newConnection(); Channel channel = connection.createChannel(); channel.exchangeDeclare("incoming_orders","direct",true); channel.basicPublish("incoming_orders", "warehouse", null, "RabbitMQ shovel test...".getBytes()); channel.close(); connection.close(); }
先运行消费者,然后再执行生产者,可以参考RabbitMQ in action这本书。
相关推荐
docker安装rabbitmq3.8集群-3台-详细笔记文档-带安装包
2. 启动 RabbitMQ 容器:使用 Docker 的 run 命令启动 RabbitMQ 容器,例如:`docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq docker.io/rabbitmq:3.9.8-management`。 - `-p 5672:5672` 标识 Linux...
本文将详细介绍如何使用 Docker 安装 RabbitMQ 及安装延迟插件。RabbitMQ 是一种基于 AMQP 协议的消息队列系统,通常用于实现分布式系统之间的消息传递和解耦。 什么是 MQ MQ(Message Queue)是一种消息队列系统...
docker-rabbitmq-cluster集群搭建docker-rabbitmq-cluster集群搭建
ARM版本的 rabbitmq 镜像资源 版本 3.8.9 使用拷贝到主机 执行:docker load < rabbitmq_arm3.8.9.tar 生成docker镜像
2020谷粒商城课件手敲版,视频官网已经放出来了,但是里面讲课的课件没有,找了好久也没找到,于是乎就有了手敲版的docker部署rabbitmq,仅是docker部署rabbitmq部分。
本指南从基础到实践,全面覆盖了Docker及RabbitMQ的基础知识,包括Docker的安装与配置、Docker镜像的获取与构建、Docker容器的启动与管理。特别针对RabbitMQ的部署,文档详细讲解了如何在Docker环境下快速搭建...
1.Docker搭建RabbitMQ集群
CentOS7 安装 Docker 并配置国内镜像并构建 RabbitMQ 镜像 本文将指导读者在 CentOS7 环境中安装 Docker,并配置国内镜像,最后构建 RabbitMQ 镜像。整个过程中,我们将使用阿里云的 Docker 镜像加速器,以加快镜像...
黑马商城docker镜像rabbitmq资源
docker,rabbitmq,安装配置与启动,默认用户与密码
本篇文章主要介绍了docker搭建rabbitmq集群环境的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
使用STOMP插件运行RabbitMQ的基本映像 感谢tumtumcloud! 这些内容基于出色的https://github.com/tutumcloud/rabbitmq图像。 建立它 docker build -t yourid/rabbitmq:latest . 运行 docker run --name=...
rabbitmq docker镜像压缩包
RabbitMQ服务器使用Erlang编程语言编写,并基于Open Telecom Platform框架构建,用于集群和故障转移。 与代理接口的客户端库适用于所有主要编程语言。 TL; DR $ docker run --name rabbitmq bitnami/rabbitmq:...
docker-rabbitmq-mqtt 启用了 mqtt 的 rabbtimq 的 Docker 镜像
完成在docker中安装rabbitmq,简单易上手,命令行解释,每个命令的含义等详解。 解决了docker内部安装完成,外部浏览器无法访问的问题。
docker安装rabbitmq3.8-单点-详细笔记文档-带安装包
Docker 部署RabbitMQ