一、pom引入包

com.rabbitmq

amqp-client

3.6.5

二、创建消息发送者

import java.io.IOException;

import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

/**

* 消息生成者

*/

public class Producer {

public final static String QUEUE_NAME = "rabbitMQ.test";

public static void main(String[] args) throws IOException, TimeoutException {

// 创建连接工厂

ConnectionFactory factory = new ConnectionFactory();

// 设置RabbitMQ相关信息

factory.setHost("localhost");

// factory.setUsername("guest");

// factory.setPassword("guest");

// factory.setPort(5672);

// 创建一个新的连接

Connection connection = factory.newConnection();

// 创建一个通道

Channel channel = connection.createChannel();

// 声明一个队列

// 1.String queue表示队列名称

// 2.boolean durable是否持久化

// 3.exclusive是否是独占队列(创建者可以使用的私有队列,断开后自动删除)

// 4.boolean autoDelete当所有消费者客户端连接断开时是否自动删除队列

// 5.Map arguments队列的其他参数

channel.queueDeclare(QUEUE_NAME, false, false, false, null);

String message = "Hello RabbitMQ";

// 发送消息到队列中

// 1.String exchange交换机名称

// 2.String routingKey队列映射的路由key

// 3.BasicProperties props消息的其他属性

// 4.byte[] body发送信息的主体

channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));

System.out.println("Producer Send +'" + message + "'");

// 关闭通道和连接

channel.close();

connection.close();

}

}

三、创建消息接收者

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;

/**

* 消息接收者

*/

public class Customer {

private final static String QUEUE_NAME = "rabbitMQ.test";

public static void main(String[] args) throws IOException, TimeoutException {

// 创建连接工厂

ConnectionFactory factory = new ConnectionFactory();

// 设置RabbitMQ地址

factory.setHost("localhost");

// 创建一个新的连接

Connection connection = factory.newConnection();

// 创建一个通道

Channel channel = connection.createChannel();

// 声明要关注的队列

// channel.queueDeclare(QUEUE_NAME, false, false, true, null);

System.out.println("Customer Waiting Received messages");

// DefaultConsumer类实现了Consumer接口,通过传入一个频道,

// 告诉服务器我们需要那个频道的消息,如果频道中有消息,就会执行回调函数handleDelivery

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 + "'");

}

};

// 自动回复队列应答 -- RabbitMQ中的消息确认机制

channel.basicConsume(QUEUE_NAME, true, consumer);

}

}

四、测试

1.运行Customer消息接收者开启服务

2.运行Producer消息发送者

3.可以看到Customer打印出Customer Received 'Hello RabbitMQ'

java实现rabbitmq_RabbitMQ搭建(2)-Java简单实现相关推荐

  1. flex java 开发环境搭建_Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)

    Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立) 2019年12月07日 阅读数:7 这篇文章主要向大家介绍Flex+JAVA+BlazeDS开发环境配置(Java工程 ...

  2. java开发环境安装原理,java开发环境搭建 java开发环境的完整搭建过程

    想了解java开发环境的完整搭建过程的相关内容吗,Rosalh在本文为您仔细讲解java开发环境搭建的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java开发环境搭建步骤,java开发环 ...

  3. 前几天在头条上收到一条私信,内容大致是这样的:“我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?”

    前几天在头条上收到一条私信,内容大致是这样的:"我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?" 不知道有没有人有类似的问题, ...

  4. wim10系统怎么装java_w10系统怎么安装java开发环境|w10安装java开发环境的方法

    w10系统怎么安装java开发环境?java开发环境搭建 for java新学者不清楚的话,可以看看以下的教程. 具体方法如下: 1.下载开发工具包(JDK).对于不同的操作系统,可下载的文件格式不同 ...

  5. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  6. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

  7. 几步教你轻松搭建一个Java Web项目

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:张丰哲 www.jianshu.com/p/ab6a9eaa ...

  8. Linux Java Web 服务器搭建之tomcat安装

    Linux Java Web 服务器搭建之tomcat安装 一 Tomcat 简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是 ...

  9. Java内存缓存-通过Map定制简单缓存

    缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快.通过缓存,可以高效地重用之前检索或计算的数据. 为什么要用缓 ...

最新文章

  1. 为什么有些老板要注册很多家公司
  2. iOS之CAGradientLayer属性简介和使用
  3. 无论你在学什么语言,都能有小姐姐来陪着你一起学习!
  4. video 满屏显示_HTML5 video进入全屏和退出全屏的实现方法
  5. 迁移 Express 到函数计算
  6. 使用代码创建SAP CRM服务请求文档的subject测试数据
  7. bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...
  8. MyBatis学习--高级映射
  9. 有道词典java下载电脑版下载手机版下载安装_【有道词典官方下载】有道词典PC版下载_多特软件站...
  10. [读书笔记]小决心还是大决心
  11. CAD如何使用全屏显示
  12. PyQt5-Label背景颜色和文本颜色的设置
  13. SqlMap免Python环境绿色版下载
  14. 关于勾股数的规律及证明
  15. ftp打开方式更改为资源管理器方法
  16. 手机如何压缩照片?压缩方法分享
  17. mfc7420调整复印浓度_理光AFICIO复印机如何调节复印浓度
  18. storm the 少儿英语_幼儿英语热身小游戏
  19. 分布式数据访问层(DAL)
  20. 打印机 HP LaserJet 1018安装教程

热门文章

  1. 常用的文件后缀都有哪些?
  2. css大图切割,利用CSS切割图片技术来动态显示图片
  3. 商战传奇:周鸿祎死磕雷军的背后的三重玄机
  4. 常用10个Excel快捷键,提高工作效率
  5. EXCEL解析:使用poi解析xlsx和xls后缀的excel文件
  6. Android通知栏—Notification(一)
  7. 2020哈工大深圳学硕上岸,控制原理133,英一84.
  8. ORACLE中的KEEP()使用方法
  9. 七日之都账号服务器,永远的7日之都服务器数据互通吗_永远的7日之都iOS和安卓能一起玩吗_玩游戏网...
  10. Data too long for column ‘xxxx‘ at row 1 解决办法