RabbitMQ整合 SpringCloud

本文详细介绍了如何在SpringCloud中整合RabbitMQ,重点在于确保消息的可靠性和消费端的并发控制。生产端配置了消息发送的重试机制,而消费端采用手工确认模式以保证消息的正确处理。同时,文中提供了相关的代码配置,包括消费者的监听配置和生产者的发送操作,并给出了测试步骤,确保队列和交换机的正确绑定。
摘要由CSDN通过智能技术生成

RabbitMQ整合 SpringCloud实战

注意一点,在发送消息的时候对template进行配置mandatory=true保证监听有效
生产端还可以配置其他属性,比如发送重试,超时时间、次数、间隔等

消费端核心配置

  • 首先配置手工确认模式,用于ACK的手工处理,这样我们可以保证消息的可靠性送达,或者在消费端消费失败的时候可以做到重回队列、根据业务记录日志等处理
  • 可以设置消费端的监听个数和最大个数,用于控制消费端的并发情况

@RabbitListener注解的使用

  • 消费端监听@RabbitListener注解,这个对于在实际工作中非常的好用
  • @RabbitListener是一个组合注解,里面可以注解配置(@QueueBinding、@Queue、@Exchange)直接通过这个组合注解一次性搞定消费端交换机、队列、绑定、路由、并且配置监听功能等

由于类配置写在代码里非常不友好,所以强烈建议大家使用配置文件配置

相关代码
rabbitmq-common子项目

package com.swx.rabbitmqcommon.entity;

import java.io.Serializable;

/**
 * @author Songwanxi
 * @site www.lentter.club
 * @company
 * @create  2020-03-04 11:34
 *
 * 支付完毕后下单操作实体类
 */
public class Order implements Serializable {
    private String id;
    private String name;

    public Order() {
    }

    public Order(String id, String name) {
        super();
        this.id = id;
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

rabbitmq-springcloud-consumer子项目
Pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.swx</groupId>
    <artifactId>rabbitmq-springcloud-consumer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>rabbitmq-springcloud-consumer</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.swx</groupId>
            <artifactId>rabbitmq-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud项目中,我们可以通过使用Spring Cloud Stream模块来集成RabbitMQSpring Cloud Stream提供了一种简单的方式来构建消息驱动的应用程序。通过引入相关依赖,如spring-cloud-stream和spring-cloud-starter-stream-rabbit,我们可以轻松地实现与RabbitMQ的集成。在配置文件中,我们需要指定RabbitMQ的连接信息,如地址、端口、用户名和密码。同时,我们还需要定义消息的目的地和消费者组。通过使用SubscribableChannel和MessageChannel,我们可以分别实现消费者和生产者的功能。具体的代码实现可以参考相关文档和示例代码。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [SpringCloud项目整合RabbitMQ](https://blog.csdn.net/weixin_43028393/article/details/129818186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [SpringCloud Stream 整合RabbitMQ](https://blog.csdn.net/m0_67393827/article/details/124442134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值