pom.xml:
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.6.5</version> </dependency>
生产者:
package com.test; import java.io.IOException; import java.util.concurrent.TimeoutException; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; /** * MQ生产者 * * @author guweiqiang * 2018年6月13日 */ public class Sender { // 队列名称 private static final String QUEUE_NAME = "rabbitMQ.test"; // rabbit MQ server host private static final String HOST = "localhost"; public static void main(String[] args) throws IOException, TimeoutException { // 1.创建连接工厂,并设置工厂相关属性 ConnectionFactory factory = new ConnectionFactory(); factory.setHost(HOST); // MQ server // 2.创建一个连接 Connection connection = factory.newConnection(); // 3.创建一个通道 Channel channel = connection.createChannel(); // 4.声明一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); // 第一个参数表示队列名称 // 第二个参数为是否持久化(true表示是,队列将在服务器重启时生存) // 第三个参数为是否是独占队列(创建者可以使用的私有队列,断开后自动删除) // 第四个参数为当所有消费者客户端连接断开时是否自动删除队列 // 第五个参数为队列的其他参数 // 5.往队列里发送消息 String message = "hello world16"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); // 第一个参数为交换机名称 // 第二个参数为队列映射的路由key // 第三个参数为消息的其他属性 // 第四个参数为发送信息的主体 System.out.println("send message:" + message); // 6.关闭连接 channel.close(); connection.close(); } }
消费者:
package com.test; import java.io.IOException; import java.util.concurrent.TimeoutException; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Consumer; import com.rabbitmq.client.DefaultConsumer; import com.rabbitmq.client.Envelope; /** * MQ消费者 * * @author guweiqiang * 2018年6月13日 */ public class Receiver { // 队列名称 private static final String QUEUE_NAME = "rabbitMQ.test"; // rabbit MQ server host private static final String HOST = "localhost"; public static void main(String[] args) throws IOException, TimeoutException { // 1.创建连接工厂,并设置工厂相关属性 ConnectionFactory factory = new ConnectionFactory(); factory.setHost(HOST); // MQ server // 2.创建一个连接 Connection connection = factory.newConnection(); // 3.创建一个通道 Channel channel = connection.createChannel(); // 4.声明一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); // 第一个参数表示队列名称 // 第二个参数为是否持久化(true表示是,队列将在服务器重启时生存) // 第三个参数为是否是独占队列(创建者可以使用的私有队列,断开后自动删除) // 第四个参数为当所有消费者客户端连接断开时是否自动删除队列 // 第五个参数为队列的其他参数 // 5.从队列里接收消息 System.out.println("Consumer Waiting Received messages:"); // 告诉服务器我们需要哪个channel里的消息,如果该channel里有消息,就会执行回调函数 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("Customer Received message: " + message); } }; // 6.回复确认 channel.basicConsume(QUEUE_NAME, true, consumer); // 第一个参数表示队列名称 // 第二个参数为是否自动回复(true表示是) // 第三个参数为消费者 // channel.close(); // connection.close(); } }
相关推荐
docker 安裝 rabbit mq 並測試 http://knight-black-bob.iteye.com/blog/2395713
spring boot 集成rabbit mq 成功demo,spring boot 集成rabbit mq 成功demo
标题中的"rabbit_mq的demo"指的是一个关于如何使用RabbitMQ的示例项目,这个项目旨在展示如何连接到RabbitMQ服务器,发送消息以及接收消息的基本流程。下面我们将深入探讨RabbitMQ的核心概念和操作步骤。 1. **...
在这个“rabbit mq的demo更新”中,我们将探讨如何通过编程实现与RabbitMQ的连接,发送和接收消息,以及如何配置消息的持久化和客户端订阅。 首先,连接RabbitMQ通常需要一个客户端库,如Java的`rabbitmq-amqp-...
[ rabbit ] loopback_users = [] [ management ] listener.port = 15672 [ users ] default_user = guest2 default_pass = guest2_password ``` 别忘了重启RabbitMQ服务以应用配置更改: ```bash sudo systemctl...
在 Spring RabbitMQ demo 中,通常会有以下部分代码: ```java @Configuration public class RabbitConfig { @Value("${rabbitmq.host}") private String rabbitmqHost; @Value("${rabbitmq.port}") private ...
MQ自动报警助手 不同点 现有的MQ管理工具都可以提供... name: 'demo mq', host: "10.1.1.1", port: 15672, user: "admin", password: "admin", maxConnection: 100, maxChannels:100, } nvm use npm run main.js
在IT行业中,消息队列(Message Queue,MQ)是一种常用于分布式系统中解耦组件、提高系统可扩展性和容错性的技术。RabbitMQ作为一款开源的消息中间件,被广泛应用于各种项目中。本篇文章将重点讲解如何进行RabbitMQ...
- `mq-demo`:父工程,管理依赖。 - `publisher`:消息发送者。 - `consumer`:消息消费者。 **2.4 入门案例** - **模型**:简单队列模式。 - **角色**: - Publisher:消息发布者。 - Queue:消息队列。 - ...
Docker Rabbit MQ 演示 这个项目是一个在 docker 上运行的微服务的简单示例,用于从队列中生产和消费作业。 先决条件 docker 主机(osx 上的 boot2docker 效果很好) 无花果(酿造安装无花果) 运行演示 fig up ...
**基于SpringBoot+Maven的RabbitMQ项目Demo详解** 在现代软件开发中,消息队列(Message Queue)已经成为分布式系统中的重要组件,用于解耦服务、提高系统可扩展性和可靠性。RabbitMQ作为一款开源的消息中间件,因...
[Spring Boot:使用Rabbit MQ消息队列] [Spring Boot:整合JdbcTemplate] [Spring Boot:整合Spring Data JPA] [Spring Boot:整合MyBatis框架] [Spring Boot:实现MyBatis分页] [Spring Boot:集成Druid数据源] ...
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit....
activeMQ 的一些简单的 Demo 有机会的话可以分享出来~ Rabbit 使用 Erlang 来编写的AMQP 服务器。 AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的...
在`rabbit-mq-demo-master`项目中,你可能找到了实现这种模式的示例代码。通常,项目会包含生产者和消费者两个部分,生产者负责发送任务消息,而消费者则负责接收并处理这些消息。你可以查看项目中的`producer.py`和...
ca 源码 java Case 案例合集 此项目定位是一个开箱即用的百宝箱项目 , 现阶段正在完善完善文档结构 , 项目中的 demo 多来源于热门项目或者生产中常用的技术 ...整个项目的版本多数是基于SpringBootV2 ...Rabbit , Active
如果启动时出现 `epmd error for host “demo”: timeout` 错误,需要编辑 `/etc/hosts` 文件,添加主机名记录: ```bash echo "127.0.0.1 demo" >> /etc/hosts ``` #### 二、配置 ##### 2.1 创建用户 默认情况...
- **IP地址**:mq1 (192.168.166.21/22, vip: 192.168.166.29) - **应用**:rabbitMQ、HAproxy、Keepalived - **资源**:4GB内存、4个CPU核心、100GB硬盘空间 - **操作系统**:CentOS 7.4 - **用途**:实现RabbitMQ...