SpringBoot——SpringBoot整合RabbitMQ(下)

SpringBoot——SpringBoot整合RabbitMQ(下)SpringBoot——SpringBoot整合RabbitMQ(下)

大家好,又见面了,我是你们的朋友全栈君。

1.向application.properties文件中添加配置

 #rabbitMQ的 5672 端口
spring.rabbitmq.addresses=192.168.31.199:32771
#用户名密码
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
spring.rabbitmq.connection-timeout=15000

##springboot整合rabbitMQ 消费端配置
spring.rabbitmq.listener.simple.concurrency=5
spring.rabbitmq.listener.simple.max-concurrency=15
spring.rabbitmq.listener.simple.acknowledge-mode=manual
spring.rabbitmq.listener.simple.prefetch=1

2.创建消费者类

 package com.youyou.consumer;

import com.rabbitmq.client.Channel;
import com.youyou.entity.Order;
import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.Map;

@Component
public class OrderReceive {


    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(value = "order-queue" ,durable = "true"),
            exchange = @Exchange(name = "order-exchange" , durable = "true" , type = "topic"),
            key = "order.#"
        )
    )
    @RabbitHandler
    public void onMessage(@Payload Order order ,    //
                          @Headers Map<String ,Object> headers ,
                          Channel channel) throws IOException {
        //消费操作
        System.out.println("接收到的订单::" + order.getName());

        Long tag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
        //返回ack应答指令
        channel.basicAck(tag,true);
    }
}

启动项目之后,自动开始监听队列消息。

执行100万条数据效果如下:

没有丢失一条记录

SpringBoot——SpringBoot整合RabbitMQ(下)

SpringBoot——SpringBoot整合RabbitMQ(下)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106469.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • react全家桶包括哪些_react 自定义组件

    react全家桶包括哪些_react 自定义组件一、create-react-app脚手架1.1创建项目并启动npxcreate-react-appreact_appcdreact_appnpmrunstart

    2022年10月25日
    0
  • Invalid character found in method name. HTTP method names must be tokens

    Invalid character found in method name. HTTP method names must be tokens

    2022年3月3日
    58
  • 简述ajax的实现原理_空气净化器的原理

    简述ajax的实现原理_空气净化器的原理在写这篇文章之前,曾经写过一篇关于AJAX技术的随笔,不过涉及到的方面很窄,对AJAX技术的背景、原理、优缺点等各个方面都很少涉及null。这次写这篇文章的背景是因为公司需要对内部程序员做一个培训。项目经理找到了我,并且征询我培训的主题,考虑到之前Javascript、CSS等WEB开发技术都已经讲解过了,所以决定针对AJAX这一块做一个比较系统的培训,所以这篇文章实际上是一个培训的材料。  

    2022年9月11日
    0
  • 小议ODT[通俗易懂]

    小议ODT[通俗易懂]不少人看了我写的一篇ODT的文章后仍然觉得不明白:http://blog.csdn.net/Testing_is_believing/archive/2007/09/04/1772334.aspx ODT是TC特有的一个东西,不同于关键字驱动测试。ODT不是在单元测试中使用的,其作用是把数据和脚本中的测试对象构建到一个树上,然后就可以使用一条语句遍历这棵树,读取树中包含的测试数据,

    2022年9月4日
    2
  • 关于身份证图片加密安全技术[通俗易懂]

    关于身份证图片加密安全技术[通俗易懂]前言现在的图片都是上传到cdn或者其它第三方服务器上,通过一个url进行访问,非常的方便,方便的同时也带来了另外一个问题,隐私安全问题,比如:好莱坞隐私照片泄漏。如何保证图片安全如果发生客户隐私图片的泄漏,将是非常严重的事情,会使当事人遭受到骚扰、企业遭受到质疑,那么如何保证用户上传图片的安全将是一件值得重视的事情,本篇介绍一种加密方式:异或加密。算法原理异或的运算方法是一个二进制运算:1^1=00^0=01^0=10^1=1两者相等为0,不等为1。对于一个字符来说,都可以用二进制

    2022年6月21日
    79
  • Cudnn安装详细步骤「建议收藏」

    Cudnn安装详细步骤「建议收藏」cudnn安装注意点:cudnn的安装其实很简单,关键点是一定要安装cuda对应的cudnn包,本机中安装的cuda7.5所以对应的cudnn为v5.1这很重要,我就是安装错了版本,导致后面caffe的编译总是出错。cudnn安装步骤:1、从官网上下载cudnn的安装包。2、将安装包解压,将此安装包放在home路径下即可,并在当前路径下进行解压,解压后的文件夹名为cuda。

    2022年6月1日
    214

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号