springboot快速集成rabbitmq

1、pom.xml配置

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

2、application.yml配置

# Spring??
spring:
application:
name: exchange
rabbitmq:
host: rabbitmq-test-old.catles.com
port: 5672
# addresses: 192.168.2.22:5672
username: cbms
password: cbms123456
publisher-confirms: true
publisher-returns: true
connectionTimeout: 3000ms #???????ms?0????????
listener:
simple:
default-requeue-rejected: true
retry:
initial-interval: 30000ms
enabled: true
max-attempts: 3
virtual-host: /cbms

rabbitmqService: # rabbitmq? ????????
topic:
appData: # ????????????
exchange: catl-appDataExchange-zyceshi
routingKey:
swapStatus: catl-swapStatus-zyceshi # ????
queueName:
swapStatus: catl-swapStatusQueue-zy-test-001 # ???????

3、生产者demo

package com.example.rabbitmqdemozj.rabbit.producer;

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @author junliu
* @description 跟app端交互的mq消费者
* @return
* @date 2021/5/10 上午10:25
**/
@Slf4j
@RestController
@RequestMapping("/rabbit")
public class RabbitMqProducer {



@Value("${rabbitmqService.topic.appData.exchange}")
private String exchange;

@Value("${rabbitmqService.topic.appData.routingKey.swapStatus}")
private String swapStatusKey;

@Autowired
private RabbitTemplate rabbitTemplate;



/**
* @Description: 生产者消息
* @return void
* @Author zangyao
* @CreateTime 2022/6/20
*/
@GetMapping("/producerMessage")
public void producerMessage(){
for (int i = 0; i < 3; i++) {
System.out.println("发送:"+i);
rabbitTemplate.convertAndSend(exchange, swapStatusKey, JSON.toJSONString("swapStatusEntity"+i));
}
}


}

4、消费者demo

package com.example.rabbitmqdemozj.rabbit.consumer;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.stereotype.Component;

/**
* @author junliu
* @description 跟app端交互的mq消费者
* @return
* @date 2021/5/10 上午10:25
**/
@Component
@Slf4j
public class RabbitMqConsumer {


/**
* @Description: 消费者消息A
* @return void
* @Author zangyao
* @CreateTime 2022/6/20
*/
@RabbitHandler
@RabbitListener(bindings = {
@QueueBinding(
exchange = @Exchange(value = "${rabbitmqService.topic.appData.exchange}", type = ExchangeTypes.TOPIC),
key = "${rabbitmqService.topic.appData.routingKey.swapStatus}",
value = @Queue(value = "${rabbitmqService.topic.appData.queueName.swapStatus}", autoDelete = "false", durable = "true")
)
})
public void consumerMessageA(String msg) {
System.out.println("rabbit--1:"+msg);

}

/**
* @Description: 消费者消息B
* @return void
* @Author zangyao
* @CreateTime 2022/6/20
*/
@RabbitHandler
@RabbitListener(bindings = {
@QueueBinding(
exchange = @Exchange(value = "${rabbitmqService.topic.appData.exchange}", type = ExchangeTypes.TOPIC),
key = "${rabbitmqService.topic.appData.routingKey.swapStatus}",
value = @Queue(value = "${rabbitmqService.topic.appData.queueName.swapStatus}", autoDelete = "false", durable = "true")
)
})
public void consumerMessageB(String msga) {
System.out.println("rabbit--2:"+msga);
}
}

posted on 2022-06-30 17:40  程序狗狗  阅读(39)  评论(0编辑  收藏  举报

导航