二、RabbitMQ入门案例

入门案例

1、增加仓库依赖

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

2、增加配置文件

  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
    listener:
      simple:
        # 并发数
        concurrency: 5
        # 最大并发数
        max-concurrency: 10
        # 签收模式,auto自动签收,manual手动签收
        acknowledge-mode: manual
        # 限流 同一时间只能有一条消息过来
        prefetch: 1
    # 使confirmCallback回调生效
    publisher-confirm-type: correlated
    # 使returnsCallback回调生效
    publisher-returns: true
    # 如果配置为false,交换机没有匹配到队列就会丢弃掉消息,而不会触发returnCallback的回调
    template:
      mandatory: true

3、消费者代码

package com.strap.mydemo.components;

import lombok.extern.log4j.Log4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

/**
 * <p>消费者</p>
 *
 * @author strap
 */
@Component
@Log4j
public class MqConsumer {

    public MqConsumer() {
    }

    @RabbitListener(queues = "mq-queue")
    public void consume(String msg) {
        log.info("消费者已拿到消息:" + msg);
    }

}

4、生产者代码

package com.strap.mydemo.components;

import lombok.extern.log4j.Log4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * <p>生产者</p>
 *
 * @author strap
 */
@Component
@Log4j
public class MqProducer {

    private AmqpTemplate rabbitAmqpTemplate;

    @Autowired
    public MqProducer(AmqpTemplate rabbitAmqpTemplate) {
        this.rabbitAmqpTemplate = rabbitAmqpTemplate;
    }

    public void send(String msg){
        // 向消息队列发送消息
        // 参数1:队列名称, 参数2:消息
        rabbitAmqpTemplate.convertAndSend("mq-queue", msg);
        log.info("生产者已发送消息:" + msg);
    }

}

6、Demo

package com.strap.mydemo;

import com.strap.mydemo.components.MqProducer;
import lombok.extern.log4j.Log4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * <p></p>
 *
 * @author strap
 */
@SpringBootTest(args = "--jasypt.encryptor.password=test123")
@Log4j
public class TestMQ {

    private MqProducer mqProducer;

    @Autowired
    public TestMQ(MqProducer mqProducer) {
        this.mqProducer = mqProducer;
    }

    @Test
    public void test1() {
        mqProducer.send("这是一条通知");
    }

}

结果

image-20230910205701548

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ是一款使用Erlang语言开发的开源消息中间件,实现了AMQP(高级消息队列协议)。它具有以下特点: 1. 可靠性:支持持久化、传输确认、发布确认等机制,保证了消息的可靠性。 2. 灵活的消息分发策略:消息在进入RabbitMQ之前由交换机进行路由,可以根据不同的分发策略进行消息的分发,包括简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式等。 3. 支持集群:多台RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker,提高了可用性和扩展性。 4. 支持多种协议和语言客户端:RabbitMQ支持多种消息队列协议,如STOMP、MQTT等,同时也支持多种编程语言的客户端。 5. 可视化管理界面:RabbitMQ提供了一个易用的用户界面,方便用户监控和管理消息Broker。 6. 插件机制:RabbitMQ提供了许多插件,可以通过插件进行扩展,也可以编写自己的插件。 要开始使用RabbitMQ,首先需要安装RabbitMQ并配置相关信息。在Windows系统中,可以按照官方文档的指引进行安装。在配置文件中,需要指定RabbitMQ的主机、端口、用户名和密码等信息。 参考资料: \[1\] RabbitMQ官网 \[2\] application.yml配置文件 \[3\] RabbitMQ入门指南文章 希望这些信息对你有帮助! #### 引用[.reference_title] - *1* *2* *3* [超详细的RabbitMQ入门](https://blog.csdn.net/Rok728/article/details/123106242)[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^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值