`

Rabbit MQ demo

 
阅读更多

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();
	}

}

 

 

分享到:
评论

相关推荐

    rabbit mq demo spring java

    docker 安裝 rabbit mq 並測試 http://knight-black-bob.iteye.com/blog/2395713

    spring boot 集成rabbit mq 成功demo

    spring boot 集成rabbit mq 成功demo,spring boot 集成rabbit mq 成功demo

    rabbit_mq的demo

    标题中的"rabbit_mq的demo"指的是一个关于如何使用RabbitMQ的示例项目,这个项目旨在展示如何连接到RabbitMQ服务器,发送消息以及接收消息的基本流程。下面我们将深入探讨RabbitMQ的核心概念和操作步骤。 1. **...

    rabbit mq的demo更新

    在这个“rabbit mq的demo更新”中,我们将探讨如何通过编程实现与RabbitMQ的连接,发送和接收消息,以及如何配置消息的持久化和客户端订阅。 首先,连接RabbitMQ通常需要一个客户端库,如Java的`rabbitmq-amqp-...

    Rabbit MQ整体搭建以及demo.rar

    [ rabbit ] loopback_users = [] [ management ] listener.port = 15672 [ users ] default_user = guest2 default_pass = guest2_password ``` 别忘了重启RabbitMQ服务以应用配置更改: ```bash sudo systemctl...

    Spring RabbitMQ demo

    在 Spring RabbitMQ demo 中,通常会有以下部分代码: ```java @Configuration public class RabbitConfig { @Value("${rabbitmq.host}") private String rabbitmqHost; @Value("${rabbitmq.port}") private ...

    auto-rabbit-mq-notify:火警MQ监控规则时发送微信消息

    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

    RabbitMQ工具类封装实现

    在IT行业中,消息队列(Message Queue,MQ)是一种常用于分布式系统中解耦组件、提高系统可扩展性和容错性的技术。RabbitMQ作为一款开源的消息中间件,被广泛应用于各种项目中。本篇文章将重点讲解如何进行RabbitMQ...

    MQ学习文档 方便回顾!

    - `mq-demo`:父工程,管理依赖。 - `publisher`:消息发送者。 - `consumer`:消息消费者。 **2.4 入门案例** - **模型**:简单队列模式。 - **角色**: - Publisher:消息发布者。 - Queue:消息队列。 - ...

    docker-rabbitmq-demo:使用 docker、fig 和 rabbitmq

    Docker Rabbit MQ 演示 这个项目是一个在 docker 上运行的微服务的简单示例,用于从队列中生产和消费作业。 先决条件 docker 主机(osx 上的 boot2docker 效果很好) 无花果(酿造安装无花果) 运行演示 fig up ...

    基于springboot+maven的rabbitmq项目demo

    **基于SpringBoot+Maven的RabbitMQ项目Demo详解** 在现代软件开发中,消息队列(Message Queue)已经成为分布式系统中的重要组件,用于解耦服务、提高系统可扩展性和可靠性。RabbitMQ作为一款开源的消息中间件,因...

    springboot-scaffolding:具有不同组件的不同springboot脚手架的合集

    [Spring Boot:使用Rabbit MQ消息队列] [Spring Boot:整合JdbcTemplate] [Spring Boot:整合Spring Data JPA] [Spring Boot:整合MyBatis框架] [Spring Boot:实现MyBatis分页] [Spring Boot:集成Druid数据源] ...

    详解Spring Boot 配置多个RabbitMQ

    import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit....

    RabbitMQ 必知必会

    activeMQ 的一些简单的 Demo 有机会的话可以分享出来~ Rabbit 使用 Erlang 来编写的AMQP 服务器。 AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的...

    rabbitMQ简单应用pattern1 Work queues 工作队列模式

    在`rabbit-mq-demo-master`项目中,你可能找到了实现这种模式的示例代码。通常,项目会包含生产者和消费者两个部分,生产者负责发送任务消息,而消费者则负责接收并处理这些消息。你可以查看项目中的`producer.py`和...

    ca源码java-case:Java大合集,包含多种框架的运用,微服务,压测,性能分析,文档,源码分析

    ca 源码 java Case 案例合集 此项目定位是一个开箱即用的百宝箱项目 , 现阶段正在完善完善文档结构 , 项目中的 demo 多来源于热门项目或者生产中常用的技术 ...整个项目的版本多数是基于SpringBootV2 ...Rabbit , Active

    RabbitMQ:安装、配置与使用初探

    如果启动时出现 `epmd error for host “demo”: timeout` 错误,需要编辑 `/etc/hosts` 文件,添加主机名记录: ```bash echo "127.0.0.1 demo" &gt;&gt; /etc/hosts ``` #### 二、配置 ##### 2.1 创建用户 默认情况...

    OpenStack-mitaka部署(手把手一步一步教你搭建)

    - **IP地址**:mq1 (192.168.166.21/22, vip: 192.168.166.29) - **应用**:rabbitMQ、HAproxy、Keepalived - **资源**:4GB内存、4个CPU核心、100GB硬盘空间 - **操作系统**:CentOS 7.4 - **用途**:实现RabbitMQ...

Global site tag (gtag.js) - Google Analytics