Rabbitmq入门与应用(三)-RabbitMQ开发流程

这篇具有很好参考价值的文章主要介绍了Rabbitmq入门与应用(三)-RabbitMQ开发流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RabbitMQ开发流程

引入依赖

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

配置MQ

最简配置

spring:
  rabbitmq:
    host: mq的安装机器ip
    port: 5672
    username: admin
    password: 123

创建队列

在配置类中创建队列对象。

@Configuration
public class SimpleQueueConfig {

    @Bean
    public Queue queue(){
        
    }
}

生产者

  • private RabbitTemplate rabbitTemplate; //rabbitmq操作对象
  • convertAndSend : 发送方法
Rabbitmq入门与应用(三)-RabbitMQ开发流程,rabbitmq,rabbitmq,分布式,java
if (m > 0) {
        Long maotai = stringRedisTemplate.opsForValue()
                .decrement("maotai");//原子性redis操作

        log.debug("抢购茅台一瓶,还剩:{}瓶", maotai);
         s1 =System.currentTimeMillis();
        //操作数据库修改数据
       rabbitTemplate.convertAndSend("hello_queue",1);
        s2 =System.currentTimeMillis();
       log.debug("耗时:{}ms",(s2-s1));

        return HttpResp.success("去库存成功:"+(s2-s1));
    } else {
        return HttpResp.failed("0");
    }

消费者

  • @RabbitListener(queues = “要监听的队列名称”)
  • @RabbitHandler //要使用RabbitMQ处理的方法

Rabbitmq入门与应用(三)-RabbitMQ开发流程,rabbitmq,rabbitmq,分布式,java文章来源地址https://www.toymoban.com/news/detail-831365.html

@RabbitListener(queues = "hello_queue")
@Override
public void updateByBookIdMq(Long bookId) throws InterruptedException {
    LambdaQueryWrapper<Store>
            queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(Store::getBook, bookId);
    Store store = storeDao.selectOne(queryWrapper);
    if (store.getNum() > 0) {
        int left = store.getNum() - 1;
        Thread.sleep(50);
        store.setNum(left);
        storeDao.updateById(store);
        log.debug("数据库修改数据完成,库存量:{}", left);
    }
}

到了这里,关于Rabbitmq入门与应用(三)-RabbitMQ开发流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Rabbitmq入门与应用(一)-rabbitmq安装(docker版)

    @Rabbitmq入门与应用-rabbitmq安装(docker版) 什么是RabbitMQ? RabbitMQ is a message broker: it accepts and forwards messages. You can think about it as a post office: when you put the mail that you want posting in a post box, you can be sure that the letter carrier will eventually deliver the mail to your recipient. In this analogy, RabbitMQ is a p

    2024年02月20日
    浏览(43)
  • Rabbitmq入门与应用(六)-rabbitmq的消息确认机制

    确认消息是否发送给交换机 配置 编码RabbitTemplate.ConfirmCallback ConfirmCallback 是一个回调接口,消息发送到 Broker 后触发回调,确认消息是否到达 Broker 服务器, 也就是只确认是否正确到达 Exchange 中。 在配置类中编码确认回调函数。tips: 设置 rabbitTemplate.setMandatory(true); 配置类

    2024年02月20日
    浏览(43)
  • 『RabbitMQ』入门指南(安装,配置,应用)

    RabbitMQ 是在 AMQP (Advanced Message Queuing Protocol) 协议标准基础上完整的,可复用的 企业消息系统 。它遵循 Mozilla Public License 开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,建立在 Erlang OTP 平台上(因为采用 Erlang 开发,所以 RabbitMQ 稳定性和可靠性比较高 ) 其他主

    2024年02月05日
    浏览(67)
  • Rabbitmq入门与应用(五)-延迟队列的设计与实现

    在开发过程中涉及到延迟队列的应用,例如订单生成后有30分钟的付款时间,注册是有60秒的邮件或者短信的发送读取时间等。 常规使用rabbitmq设计延迟队列有两种方式 使用创建一个延迟队列阻塞消息 使用延迟队列插件 Dead Letter Exchanges — RabbitMQ 配置 To set the DLX for a queue, s

    2024年02月21日
    浏览(40)
  • RabbitMQ——解决分布式事务问题,RabbitMQ的重要作用之一!!!通过可靠生产和可靠消费来完美解决!

    分布式事务是指涉及多个独立的计算机系统(也称为节点或参与者)之间的事务处理。在分布式系统中,每个节点可能各自拥有自己的数据存储和事务管理机制。分布式事务的目标是保证在跨多个节点执行的一系列操作可以以一致和可靠的方式执行和提交,即使在面对故障或

    2024年04月23日
    浏览(46)
  • 【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程

    🧑‍💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······ 😎人生感悟:尝尽人生百味,方知世间冷暖。

    2024年02月09日
    浏览(41)
  • 分布式消息队列:RabbitMQ(1)

    目录 一:中间件 二:分布式消息队列  2.1:是消息队列 2.1.1:消息队列的优势 2.1.1.1:异步处理化 2.1.1.2:削峰填谷 2.2:分布式消息队列 2.2.1:分布式消息队列的优势 2.2.1.1:数据的持久化 2.2.1.2:可扩展性 2.2.1.3:应用解耦 2.2.1.4:发送订阅  2.2.2:分布式消息队列的应用场景  三:Rabbitmq 3.1:基

    2024年02月08日
    浏览(62)
  • 分布式消息队列:Rabbitmq(2)

    目录 一:交换机 1:Direct交换机 1.1生产者端代码:  1.2:消费者端代码: 2:Topic主题交换机  2.1:生产者代码:  2.2:消费者代码:  二:核心特性 2.1:消息过期机制 2.1.1:给队列中的全部消息指定过期时间 2.1.2:给某条消息指定过期时间  2.2:死信队列 绑定: 让交换机和队列进行关联,可以指

    2024年02月08日
    浏览(42)
  • RabbitMQ工作流程详解

    (1)生产者连接RabbitMQ,建立TCP连接(Connection),开启信道(Channel) (2)生产者声明一个Exchange (交换器),并设置相关属性,比如交换器类型、是否持久化等 (3)生产者声明一个队列井设置相关属性,比如是否排他、是否持久化、是否自动删除等 (4)生产者通过bindingKey (绑定Key) 将交换器

    2024年02月13日
    浏览(43)
  • RabbitMQ入门系列01----RabbitMQ简介

    在介绍RabbitMQ之前,我们先来看下面一个电商项目的场景: 商品的原始数据保存在数据库中,增删改查都在数据库中完成。 搜索服务数据来源是索引库(Elasticsearch),如果数据库商品发生变化,索引库数据不能及时更新。 商品详情做了页面静态化处理,静态页面数据也不会

    2023年04月08日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包