美文网首页rabbitmq
Springboot整合RabbitMQ消费者

Springboot整合RabbitMQ消费者

作者: Ever_zh | 来源:发表于2018-09-28 13:57 被阅读0次

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的值 启动项目应该完美运行.

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

相关文章

网友评论

    本文标题:Springboot整合RabbitMQ消费者

    本文链接:https://www.haomeiwen.com/subject/pafpoftx.html