Java SpringBoot AMQP
AMQP(高级消息队列协议)是一个提供统一消息服务的应用层标准高级消息队列协议。是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可 传递消息,并不受客户端/中间件的不同产品,不同开发语言等条件的限制。
一、pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
二、配置文件application.properties
# rabbitmq
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=
三、控制器测试读写
import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController @RequestMapping("/mq") @Slf4j public class MqController { @Autowired private RabbitTemplate rabbitTemplate; @PostMapping("/set") public void set() { rabbitTemplate.convertAndSend("exchange0", "aaa", new Date()); } @PostMapping("/sets") public void sets() { for (int i = 1; i <= 999; i++) { double f = Math.random(); rabbitTemplate.convertAndSend("exchange0", "aaa", f); } } @PostMapping("/get") public Object get() { return rabbitTemplate.receiveAndConvert("queue0"); } @PostMapping("/gets") public List<Object> gets() { List<Object> list = new ArrayList(); while (list.size() < 99) { Object obj = rabbitTemplate.receiveAndConvert("queue0"); if (obj == null) break; list.add(obj); } log.info("return size: {}", list.size()); return list; } }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号