SpringBoot集成RabbitMQ(生产者)

这篇具有很好参考价值的文章主要介绍了SpringBoot集成RabbitMQ(生产者)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

默认读者已经对SpringBoot和RabbitMQ比较熟悉

SpringBoot集成RabbitMQ(生产者)的步骤如下:

  1. 创建SpringBoot工程
  2. Maven添加 spring-boot-starter-amqp
  3. 编写application.properties配置RabbitMQ的信息
  4. 编写交换机、队列、绑定配置类
  5. 在业务逻辑代码中注入RabbitTemplate
  6. 调用RabbitTemplate的方法,完成消息推送

1. 添加依赖


在pom.xml添加依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2. 编写application.properties

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5276
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/

3. 编写交换机、队列、绑定配置类

2.1 方法一:直接new

Bean配置:

package com.lqk.producer;

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author lqk
 * @Date 2021/6/14
 * @Description
 */
@Configuration
public class ProducerConfig {

    public static final String EXCHANGE_NAME = "exchange_name";
    public static final String QUEUE_NAME = "topic_queue_name";

    @Bean
    public Queue myQueue(){
        Queue queue = new Queue(QUEUE_NAME, true, false, false);
        return queue;
    }

    @Bean
    public Exchange myExchange(){
        FanoutExchange fanoutExchange = new FanoutExchange(EXCHANGE_NAME, true, false);
        return fanoutExchange;
    }
    
    @Bean
    public Binding myBinding(@Qualifier("myQueue") Queue queue, @Qualifier("myExchange") Exchange exchange){
        Binding binding = BindingBuilder.bind(queue).to(exchange).with("test.*").noargs();
        return binding;
    }
}

2.2 方法二:建造者模式

package com.lqk.producer;

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author 刘乾坤
 * @Date 2021/6/14
 * @Description
 */
@Configuration
public class ProducerConfig {

    public static final String EXCHANGE_NAME = "exchange_name";
    public static final String QUEUE_NAME = "topic_queue_name";

    @Bean
    public Queue myQueue(){
        // 持久化构造。  非持久化的构造使用nonDurable,想要定义其它的属性,在build之前继续调用对应的方法设置
        Queue queue = QueueBuilder.durable(QUEUE_NAME).build();
        return queue;
    }

    @Bean
    public Exchange myExchange(){
        // 想要定义其它的属性,在build之前继续调用对应的方法设置
        Exchange build = ExchangeBuilder.fanoutExchange(EXCHANGE_NAME).build();
        return build;
    }

    @Bean
    public Binding myBinding(@Qualifier("myQueue") Queue queue, @Qualifier("myExchange") Exchange exchange){
        Binding binding = BindingBuilder.bind(queue).to(exchange).with("test.*").noargs();
        return binding;
    }
}

4. 注入RabbitTemplate,发送消息

@SpringBootTest
@RunWith(SpringRunner.class)
class SpringBootRabbitMqProducerApplicationTests {


    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void contextLoads() {
        rabbitTemplate.convertAndSend(ProducerConfig.EXCHANGE_NAME, "test.hello", "hi~ha");
    }

}

5. 结果


成功创建交换机
image.png

成功创建队列
image.png

成功发送消息

image.png文章来源地址https://www.toymoban.com/news/detail-618524.html

到了这里,关于SpringBoot集成RabbitMQ(生产者)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMq生产者发送消息确认

    一般情况下RabbitMq的生产者能够正常的把消息投递到交换机Exchange,Exchange能够根据路由键routingKey把消息投递到队列Queue,但是一旦出现消息无法投递到交换机Exchange,或无法路由到Queue的这种特殊情况下,则需要对生产者的消息进行缓存或者保存到数据库,后续在调查完RabbitM

    2024年02月04日
    浏览(37)
  • RabbitMQ-生产者可靠性

            由于网络波动导致客户端无法连接上MQ,这是可以开启MQ的失败后重连机制。         注意:                 是连接失败的重试,而不是消息发送失败后的重试。         这种超时重连的方式是 阻塞式 的,后面的代码没办法执行,如果说业务要求比较严格,则需

    2024年01月21日
    浏览(40)
  • RabbitMQ生产者的可靠性

    目录 MQ使用时会出现的问题 生产者的可靠性 1、生产者重连 2、生产者确认 3、数据持久化 交换机持久化 队列持久化 消息持久化 LazyQueue懒加载 MQ使用时会出现的问题 发送消息时丢失: 生产者发送消息时连接MQ失败 生产者发送消息到达MQ后未找到 Exchange 生产者发送消息到达

    2024年02月08日
    浏览(36)
  • rabbitmq消费者与生产者

    在第一次学习rabbitmq的时候,遇到了许多不懂得 第一步导包 第二步新增生产者 在这里中: connectionFactory.setVirtualHost(\\\"my_vhost\\\");//填写自己的队列名称,如果你的为”/“则填写\\\'\\\'/\\\'\\\' 第三步新增消费者 消息获取成功 注意如果你用的云服务器需要打开这两个端口 5672 15672 如果你使

    2024年02月11日
    浏览(43)
  • RabbitMQ之生产者可靠性

    有的时候由于网络波动,可能会出现客户端连接RabbitMQ失败的情况。通过配置我们可以开启 连接失败后 的重连机制 注:当网络不稳定的时候,利用重试机制可以有效提高消息发送的成功率。不过SpringAMQP提供的重试机制是阻塞式的重试,也就是说多次重试等待的过程中,当前

    2024年01月22日
    浏览(44)
  • RabbitMQ 生产者-消息丢失 之 场景分析

      生产者发送消息的流程如下:首先生产者和RabbitMQ服务器建立连接,然后创建信道,通过信道发送消息给RabbitMQ服务器,RabbitMQ服务器接收到消息后交由交换机进行消息存储,交换机根据不同策略将消息路由到指定队列中。在此过程中,可能会存在以下消息丢失的场景:

    2024年02月14日
    浏览(42)
  • 【RabbitMQ】RabbitMQ 消息的可靠性 —— 生产者和消费者消息的确认,消息的持久化以及消费失败的重试机制_rabbitmq 生产者消息确认

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新大数据全套学习资料》,

    2024年04月26日
    浏览(84)
  • RabbitMQ消息可靠性(一)-- 生产者消息确认

    目录 前言 一、消息确认流程图 二、生产者消息确认 1、publisher-confirm(发送者确认) 2、publisher-return(发送者回执) 三、代码实现 1、修改application.yml 配置 2、ConfirmCallback函数和ReturnCallback函数 在项目中,引入了RabbitMQ这一中间件,必然也需要在业务中增加对数据安全性的一

    2024年02月04日
    浏览(70)
  • Java编写简易rabbitmq生产者与消费者

    开发时经常与其它系统用rabbitmq对接,当需要自测时,还是自己写rabbitmq生产者、消费者自测方便些。 下面总结下不用框架、使用java编写简易rabbitmq的方法。 (1)如果是maven,那就用 (2)如果没用maven,那就找一个 amqp-client-3.3.4.jar 文件,然后引入项目 说明: (1)其中的配置,按照

    2024年01月16日
    浏览(45)
  • Spring整合RabbitMQ-配制文件方式-1-消息生产者

    Spring-amqp是对AMQP的一些概念的一些抽象,Spring-rabbit是对RabbitMQ操作的封装实现。 主要有几个核心类 RabbitAdmin 、 RabbitTemplate 、 SimpleMessageListenerContainer 等 RabbitAdmin 类完成对Exchange、Queue、Binding的操作,在容器中管理 了 RabbitAdmin 类的时候,可以对Exchange、Queue、Binding进行自动声

    2024年02月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包