Springboot整合RabbitMQ消费者

pom 文件.

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.3.RELEASE</version>

<relativePath/>

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

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

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.16</version>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-checkstyle-plugin</artifactId>

<version>3.0.0</version>

<configuration>

<encoding>UTF-8</encoding>

<configLocation>xml/google_checks.xml</configLocation>

</configuration>

</plugin>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

application.properties

spring.rabbitmq.host=

spring.rabbitmq.port=

spring.rabbitmq.username=

spring.rabbitmq.password=

spring.rabbitmq.virtual-host=

spring.rabbitmq.connection-timeout=15000

spring.rabbitmq.listener.simple.acknowledge-mode=manual

spring.rabbitmq.listener.simple.concurrency=5

spring.rabbitmq.listener.simple.max-concurrency=10

rabbitmqConfig 

import org.springframework.amqp.core.AcknowledgeMode;

import org.springframework.amqp.rabbit.connection.ConnectionFactory;

import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class RabbitConfig {

/**

    * 初始化监听器

    * @param connectionFactory

    * @return

    */

    @Bean

    public SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory){

SimpleMessageListenerContainer simpleMessageListenerContainer =new SimpleMessageListenerContainer();

simpleMessageListenerContainer.setAcknowledgeMode(AcknowledgeMode.MANUAL);

simpleMessageListenerContainer.setConnectionFactory(connectionFactory);

return simpleMessageListenerContainer;

}

}

RabbitReceiver  监听

import org.springframework.amqp.core.Message;

import org.springframework.amqp.rabbit.annotation.RabbitHandler;

import org.springframework.amqp.rabbit.annotation.RabbitListener;

import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;

import org.springframework.stereotype.Component;

import com.rabbitmq.client.Channel;

@Component

public class RabbitReceiver {

@RabbitListener(queues = {"queue-1"})

@RabbitHandler

  public void onMessage(Message message, Channel channel)throws Exception {

Jackson2JsonMessageConverter jackson2JsonMessageConverter =new Jackson2JsonMessageConverter();

Object object =  jackson2JsonMessageConverter.fromMessage(message);

channel.basicQos(1);

System.out.println(object);

System.out.println("消费端Payload: " +  message.getBody());

Long deliveryTag = message.getMessageProperties().getDeliveryTag();

//手工ACK

      System.out.println(deliveryTag);

channel.basicAck(deliveryTag,false);

}

}

跟上一篇整合成功 Springboot整合RabbitMQ生产者 自己填写properties的值 启动项目应该完美运行.

本文仅限本人小白学习参考,不足之处请大佬指正。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容