RabbitMQ整合Spring Booot【点对点模式】
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.toov5</groupId>
<artifactId>rabbitmq</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.5</version>
</dependency>
</dependencies> </project>
创建连接的工具类:
//没有做成单例的 VirtualHost 需要复用
public class MQConnectionUtils {
//创建新的连接
public static Connection newConnection() throws IOException, TimeoutException {
//创建连接工厂
ConnectionFactory factory= new ConnectionFactory();
//链接地址
factory.setHost("192.168.91.6");
//用户名称
factory.setUsername("admin");
//用户密码
factory.setPassword("admin");
//amqp端口号
factory.setPort(5672);
//连接virtualhost
factory.setVirtualHost("/admin_toov5");
Connection connection = factory.newConnection();
return connection;
}
}
Producer类:
public class Producer {
    //队列名称
    private static final String UEUE_NAME = "test_queue";
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建新的连接
    Connection connection = MQConnectionUtils.newConnection();
       //创建Channel
        Channel channel = connection.createChannel();
        //创建队列
        channel.queueDeclare(UEUE_NAME, false, false, false, null);
        //创建message
        String msg = "toov5_message";
        System.out.println("生产者投递消息"+msg);
        //生产者发送消息
        channel.basicPublish("",UEUE_NAME, null, msg.getBytes());
        //关闭通道和连接
         channel.close();
         connection.close();
    }
}
运行结果,看下这个队列:

模拟Get message:

Consumer跟 Producer基本类似:
public class Consumer {
        //队列名称
        private static final String QUEUE_NAME = "test_queue";
        public static void main(String[] args) throws IOException, TimeoutException {
            System.out.println("消费者启动..........");
            //创建新的连接
        Connection connection = MQConnectionUtils.newConnection();
           //创建Channel
            Channel channel = connection.createChannel();
            // 消费者关联队列
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
              DefaultConsumer defaultConsumerr = new DefaultConsumer(channel) {
                  //监听获取消息
                    @Override
                    public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties,
                            byte[] body) throws IOException {
                        String msg =new String(body,"UTF-8");
                        System.out.println("消费者获取生产者消息:"+msg);
                    }
              };
            //牵手模式设置  默认自动应答模式  true:自动应答模式
              channel.basicConsume(QUEUE_NAME, true, defaultConsumerr);              
//            //关闭通道和连接
//             channel.close();
//             connection.close();
        }
}
运行后的结果:

RabbitMQ整合Spring Booot【点对点模式】的更多相关文章
- RabbitMQ整合Spring Booot【消费者应答模式】
		生产者代码不变,消费者: package com.toov5.Consumer; import java.io.IOException; import java.util.concurrent.Tim ... 
- RabbitMQ整合Spring Booot【Exchange-Fanout模式】
		pom: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o ... 
- RabbitMQ整合Spring Booot【消费者补偿幂等问题】
		如果消费者 运行时候 报错了 package com.toov5.msg.SMS; import org.springframework.amqp.rabbit.annotation.RabbitHa ... 
- 消息中间件——RabbitMQ(九)RabbitMQ整合Spring AMQP实战!(全)
		前言 1. AMQP 核心组件 RabbitAdmin SpringAMQP声明 RabbitTemplate SimpleMessageListenerContainer MessageListen ... 
- SpringBoot2.0之整合ActiveMQ(点对点模式)
		<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ... 
- RabbitMQ学习笔记(5)----RabbitMQ整合Spring
		在Spring AMQP项目中Spring也提供了对RabbitMQ的支持,这里在之前学习SpringBoot的时候也整合过,但是今天这里使用的Spring的xml配置来整个rabbit. Sprin ... 
- Rabbitmq 整合Spring,SpringBoot与Docker
		SpringBootLearning是对Springboot与其他框架学习与研究项目,是根据实际项目的形式对进行配置与处理,欢迎star与fork. [oschina 地址] http://git.o ... 
- RabbitMQ整合spring
		<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ... 
- 消息中间件-activemq实战整合Spring之Topic模式(五)
		这一节我们看一下Topic模式下的消息发布是如何处理的. applicationContext-ActiveMQ.xml配置: <?xml version="1.0" enc ... 
随机推荐
- Pyspark中遇到的 java.io.IOException: Not a file 和 pyspark.sql.utils.AnalysisException: 'Table or view not found
			最近执行pyspark时,直接读取hive里面的数据,经常遇到几个问题: 1. java.io.IOException: Not a file —— 然而事实上文件是存在的,是 hdfs 的默认路径 ... 
- python编程之字符bytes转换str问题
			之前学习bytes转换str的时候,场景比较简单,这次是python中使用subprocess模块输出Linux下的执行命令的结果,默认是bytes类型,因此输出的结果并不是我们想要的,bytes的输 ... 
- 关闭firefox火狐浏览器下载完成时自动扫描(49.0.2以后版本)
			本人自己找到的方法,亲测有效,如下:1.在火狐浏览器地址里输入about:config回车,可能会提示“这可能使质量保证失效”,点击[我了解此风险!]2.在搜索框里输入browser.safebrow ... 
- Java输入流
			import java.util.*; //java为小写public class TEST{ public static void main(String args[]){ Scanner inp ... 
- (安全之路)从头开始学python编程之文件操作
			0x00 python学习路径 b站(哔哩哔哩)视频,w3cschool(详情百度),官方文档,各大群内获取资料等等方式 0x01 python的学习要点 open()函数:有两个参数,文件名跟模式, ... 
- 删除WordPress菜单wp-nav-menu中li的class或id样式
			我们都知道wordpress已经集成了一些通用的css样式,比如wp-nav-menu菜单会有很多的class,不想看到那么多的选择器,想要清净的世界要如何操作呢?随ytkah一起来看看 <li ... 
- python接口自动化—封装获取常量的类
			背景: 一.执行case的过程: 首先需要,我们能够通过excel获取单元格的内容.获取内容时,首先需要知道获取的数据是哪一行的,这行数据中需要拿那些参数,比如case 名称.请求url.请求方式.h ... 
- [后端]gitlab之gitlab-ci自动部署
			转发:https://www.jianshu.com/p/df433633816b 简介 gitlab-ci全称是gitlab continuous integration的意思,也就是持续集成.中心 ... 
- learning java 处理流的用法
			有点重定向使用的味道 import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.Pri ... 
- WinDbg常用命令系列---输入内存值的命令e*
			e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Enter Values) e*命令将您指定的值输入内存.不要将此命令与~e(Thread-Specific C ... 
