代码编织梦想

提示:该文档使用spring-amqp来集成rabbitMq

一、配置

maven配置

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

application.yml配置rabbitmq相关属性

spring:
  #rabbit配置
  rabbitmq:
    addresses: 192.168.108.101:9999
    username: admin
    password: admin
    virtual-host: /
    template:
      retry:
        #开启重试,重试次数和重试间隔使用默认配置
        enabled: true
    listener:
      #是否使用自定义线程池 ,默认的线程池是每次new一个线程,参见 SimpleAsyncTaskExecutor
      tasks-executor: true
      direct:
        prefetch: 5
        missing-queues-fatal: true
        #每个队列的消费者数量
        consumers-per-queue: 5
        retry:
          enabled: true
      simple:
        # 一次请求获取的消息数量,默认需要大于等于消费者数量
        prefetch: 5
        concurrency: 5
        # 最大消费者数量,如果消息数量较多,simple类型容器会在concurrency基础上,缓慢增大消费者数量,消息消费完成后,缓慢减小到concurrency配置的数量
        # simple类型的容器需要线程池的数量至少等于设置的消费者数量,如果线程池用尽,则不能增大消费者。
        max-concurrency: 10
        missing-queues-fatal: true
        retry:
          enabled: true
      #消费者容器类型 支持 direct 和 simple
      type: simple

二、定义消费者

RabbitListener

public class RabbitMqTestService {
	
    /**
     * 队列不存在时,需要创建一个队列,并且与exchange绑定
    */
    @RabbitListener(bindings = @QueueBinding(
        value = @Queue(value = "queue.test", durable = "false", autoDelete = "true"),
        exchange = @Exchange(value = "exchange.test", type = ExchangeTypes.TOPIC),
        key = "k"), concurrency = "4")
	public void consumers(Long idx) {
		log.info("this idx is {}", idx);
	}

}

  

一个注解,内部声明了队列,并建立绑定关系。

  • value: @Queue 注解,用于声明队列,value 为 queueName, durable 表示队列是否持久化, autoDelete 表示没有消费者之后队列是否自动删除
  • exchange: @Exchange 注解,用于声明 exchange,value 为交换机名称, type 指定消息投递策略,我们这里用的 topic 方式
  • key: 表示接收消息时候的key,TOPIC模式必须配置上
  • concurrency: 表示固定 4 个消费者

总结:消息发送到交换机,交换机通过路由key 发送到对应的队列。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zglcome/article/details/129674990

spring整合rabbitmq实践(三):源码-@rabbitlistener实现过程_jinchaolv的博客-爱代码爱编程

Spring整合rabbitmq实践(一):基础使用配置 Spring整合rabbitmq实践(二):扩展功能 spring-rabbit消费过程解析及AcknowledgeMode选择 4. 源码解析 4.1. 通过R

@rabbitlistener源码解析_const伐伐的博客-爱代码爱编程_rabbitlistener

参考:Spring整合rabbitmq实践(三):源码-@RabbitListener实现过程 rabbitmq consumer push模式还是pull模式 参考朱忠华老师 RabbitMQ之Consumer消费模式(Push & Pull) 为什么一个普通的方法加上@RabbitListener注解就能接收消息了呢? 先总结来说,有一个

rabbitmq @rabbitlistener注解和使用_广东中溯科技有限公司华棋皓的博客-爱代码爱编程_rabbitmq rabbitlistener

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

springboot高级-消息-@rabbitlistener&@enablerabbit_leon_jinhai_sun的博客-爱代码爱编程

在实际开发中我们需要监听场景,比如我们之前举的例子,两个系统,订单系统,和我们库存系统,他们交互都是通过交互 通过消息队列,某一个人下了单以后,将订单信息放到消息队列中,库存系统要实时监听队列里的内容,一旦有新的订单进来, 库存系统就要负责相关的操作,那我们的监听怎么写呢,Spring为了简化我么开发,给我们引入了相关的注解,比如我们来举一个 例子,

@rabbitlistener起作用的原理-爱代码爱编程

一、前言 在spring中,定义rabbitMq的消费者可以相当方便,只需要在消息处理类或者类方法加上@RabbitListener注解,指定队列名称即可。如下代码: @Component public class Ra

Spring @RabbitListener 原理 -- 个人见解-爱代码爱编程

原文参考 https://blog.csdn.net/zidongxiangxi/article/details/100623548调用层 RabbitAutoConfiguration // 这个是自动配置引入RabbitAnnotationDrivenConfiguration@EnableRabbitRabbitBootstrapConfigura

RabbitMQ 学习笔记 -- 07 初探@RabbitListener-爱代码爱编程

@RabbitListener Message 在消息传递的过程中,实际上传递的对象为 org.springframework.amqp.core.Message ,它主要由两部分组成: MessageProperties // 消息属性 byte[] body // 消息内容 如下使用 Message 类型接收数据,当监听到队列 hello中有

springrabbitmq中使用@RabbitListener实现监听消息-传统spring-springmvc项目整合rabbitmq-爱代码爱编程

前言 现在java项目使用rabbitmq大多都使用spring-boot,但由于有些传统的Springmvc项目中需要改造引入rabbitmq,这一块的资料比较少,质量也差,本人自己整理学习也共给大家参考,请大家根据实际情况选择使用。 使用配置手动监听简单,百度下资料也有很多这里就不说了,有强迫症的人肯定接受不了这种每次增加一个队列都需要改一下配置文

Java调用rabbitmq监听_RabbitMQ:@RabbitListener 与 @RabbitHandler 及 消息序列化-爱代码爱编程

添加 @RabbitListener 注解来指定某方法作为消息消费的方法,例如监听某 Queue 里面的消息 MessageConvert涉及网络传输的应用序列化不可避免,发送端以某种规则将消息转成 byte 数组进行发送,接收端则以约定的规则进行 byte[] 数组的解析 RabbitMQ 的序列化是指 Message 的 body 属性,即我们

Rabbit @RabbitListener消息队列使用-爱代码爱编程

@RabbitListener(bindings = @QueueBinding( value = @Queue(value = queueName, durable = "true", ignoreDeclarationExceptions = "true"), exchange = @Exchange(v

Rabbitmq使用@RabbitListener动态生成队列进行监听-爱代码爱编程

private static final String QUEUE_NAME="cre_in_out."+ getIp(); @Bean public org.springframework.amqp.core.Queue queue(){ return new org.springframework.amqp.core

@RabbitListener注解-爱代码爱编程

I. 配置 首先创建一个 SpringBoot 项目,用于后续的演示 springboot 版本为2.2.1.RELEASErabbitmq 版本为 3.7.5 依赖配置文件 pom.xml <parent> <groupId>org.springframework.boot</groupId> &

@RabbitListener 每次重启抛出异常-爱代码爱编程

发现测试环境,每次重启都会抛出这个异常 这个异常很明显是序列化异常,但是我的消息都是程序发出来的,不可能有错啊!! 2022-03-29 10:56:49 [ ERROR ] [ dealer-content-platform ] [ -1 ] [ default ] [ 10.140.1.74:8080 ] [ sky:N/A; ] [ Simp

jvm监控搭建-爱代码爱编程

文章目录 JVM监控搭建整体架构JolokiaTelegrafInfluxdbGrafana JVM监控搭建 整体架构 JVM 的各种内存信息,会通过 JMX 接口进行暴露。 Jolokia