同一队列多次创建:
//此处声明队列为了防止接收者先运行,队列还不存在时创建队列(同一队列只会创建一次)
channel.queueDeclare(queue, false, false, false, null);
package com.demo.mq.rabbitmq.example01;
import java.io.IOException;
import java.io.Serializable;
import org.apache.commons.lang3.SerializationUtils;
import com.demo.mq.rabbitmq.MqManager;
import com.demo.mq.rabbitmq.UserBean;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
/**
* 发送消息类
* @author sheungxin
*
*/
public class Send{
/**
* 单发送、单接收场景,无特别处理,用于接收消息
* @param queue 队列名称
* @param object 消息主体
* @throws IOException
*/
public static void sendAToB(String queue,Serializable object) throws Exception{
Connection conn=MqManager.newConnection();
Channel channel=conn.createChannel();
channel.queueDeclare(queue, false, false, false, null);
channel.basicPublish("", queue, null, SerializationUtils.serialize(object));
System.out.println("A Send :'"+object+"'");
channel.close();
conn.close();
}
public static void main(String[] args) throws Exception {
String channel="hello";
// sendAToB(channel, new String("Hello World!".getBytes(),"UTF-8"));
UserBean user=new UserBean();
user.setId("0001");
user.setName("测试001");
sendAToB(channel, user);
}
}
package com.demo.mq.rabbitmq.example01;
import java.io.IOException;
import org.apache.commons.lang3.SerializationUtils;
import com.demo.mq.rabbitmq.MqManager;
import com.demo.mq.rabbitmq.UserBean;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
/**
* 接收消息类
* @author sheungxin
*
*/
public class Recv {
/**
* 单发送、单接收场景,无特别处理,用于接收消息
* 注意:同时多个接收实体,依次接收消息,同一消息只有一个实体接收
* @param queue
* @throws Exception
*/
public static void recvAToB(String queue) throws Exception{
Connection conn=MqManager.newConnection();
Channel channel=conn.createChannel();
//此处声明队列为了防止接收者先运行,队列还不存在时创建队列(同一队列只会创建一次)
channel.queueDeclare(queue, false, false, false, null);
Consumer consumer=new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body) throws IOException{
// String mes=SerializationUtils.deserialize(body);
UserBean userBean=SerializationUtils.deserialize(body);
System.out.println("B Received :'"+userBean.getId()+","+userBean.getName()+"'");
}
};
channel.basicConsume(queue, true, consumer);
}
public static void main(String[] args) throws Exception {
recvAToB("hello");
}
}
分享到:
相关推荐
RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送...
RabbitMQ学习实践二:MQ的安装
RabbitMQ快速入门及API介绍(401M) QQ截图 20191220230107.png?x-oss-process=style/pnp8 (42.73KB, 下载次数:227) 下载附件 2019-12-2023 :01 上传【课程介绍】:第一章 : RabbitMQ介绍:消息中间件概念、RabbitMQ...
在提供的"0217-rob-demo"文件中,可能包含了一个关于RabbitMQ在抢购场景下的示例代码。这个示例通常会展示如何创建生产者来发送抢购请求,设置交换机和队列,以及创建消费者来处理这些请求。通过查看源代码,我们...
rabbitmq-server-3.9.11.exe
【RabbitMQ集群搭建指南...通过以上步骤,您将拥有一个具备负载均衡能力的RabbitMQ集群,提高了系统的可用性、并发处理能力和消息处理效率。记得定期检查和更新集群配置,以适应不断变化的业务需求和保障系统的稳定性。
本文档为 RabbitMq 使用手册,介绍了 RabbitMq 的应用场景和开发指导。RabbitMq 是一个由 Erlang 开发的 AMQP(Advanced Message Queue)流行的开源消息队列系统。RabbitMq 的结构图如下: RabbitMq 几个概念说明:...
rabbitmq-3.10.6:management
《RabbitMQ实战:高效部署分布式消息队列》是一本深度解析RabbitMQ技术的书籍,专注于帮助读者理解和掌握如何在实际项目中高效地部署和使用这个强大的消息中间件。RabbitMQ作为开源的消息代理和队列服务器,广泛应用...
初学者可以从以下几个方面入手学习RabbitMQ: 1. **安装与配置**:了解如何在本地或服务器上安装RabbitMQ,包括安装依赖、启动服务以及设置管理界面。 2. **基本API使用**:学习Java、Python、JavaScript等语言的...
总之,"【学习资源】rabbitmq实例代码"是一个很好的起点,可以帮助你从实践中理解RabbitMQ的工作原理和用法,提升你在分布式系统中的消息处理能力。无论是对RabbitMQ的API有初步认识,还是深入理解Spring Boot中的...
在这个“rabbitmq简单java实例”中,我们将探讨如何在Java环境中集成并使用RabbitMQ。 首先,我们需要了解RabbitMQ的基本概念。在RabbitMQ中,生产者是发送消息的应用,消费者则是接收消息的应用。消息被发送到...
1. 拉取 RabbitMQ 镜像:使用 Docker 的 pull 命令拉取 RabbitMQ 镜像,例如:`docker pull rabbitmq:3.9.8-management`。 2. 启动 RabbitMQ 容器:使用 Docker 的 run 命令启动 RabbitMQ 容器,例如:`docker run -...
C#操作RabbitMQ的完整实例是一个详细介绍了如何使用C#语言操作RabbitMQ的实例,涵盖了从安装RabbitMQ到使用C#语言连接RabbitMQ的所有步骤。通过这个实例,读者可以了解到如何下载和安装RabbitMQ、配置RabbitMQ、创建...
rabbitmq-3.7.28-management-alpine 离线镜像安装包
rabbitmq: host: your-rabbitmq-host port: your-rabbitmq-port username: your-username password: your-password ``` 然后,定义消息的交换机(Exchange)、队列(Queue)以及路由键(Routing Key)。这通常...
在这个“rabbitmq.net各种实例”的压缩包中,我们可能会看到一系列使用C#或.NET实现的RabbitMQ示例代码,涵盖了不同的消息模式,如分发、点对点、应答以及广播。 1. **分发(Fanout)模式**:在分发模式下,...
将RabbitMQ与Spring整合,可以方便地在Spring应用中使用消息队列。 在本实例中,我们将探讨如何将RabbitMQ与Spring进行整合。首先,我们需要在项目中引入RabbitMQ的相关依赖,这通常通过Maven来完成。在`pom.xml`...
RabbitMQ,作为一款开源的消息队列系统,...总的来说,这个源代码实例为学习和掌握RabbitMQ提供了一个很好的起点,不仅能够帮助你理解RabbitMQ的核心概念,还能让你在实践中运用这些知识,提高你的分布式系统设计能力。