- Springboot版本
springboot 2.3.3.RELEASE
- Maven依赖
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- application配置
-
spring.rabbitmq.addresses=ip:port, ip2:port2, ip3:port3, spring.rabbitmq.username=guest spring.rabbitmq.password=guest
- 队列配置代码
-
@Configuration public class RabbitmqConfig { @Bean public Queue testQueue() { return new Queue("test"); } }
- Controller测试代码
-
@RestController @RequestMapping(value = "/rabbit") public class RabbitController { @Autowired private AmqpTemplate amqpTemplate; @RequestMapping(value = "send") public String send(@RequestParam("queue") String queue, @RequestParam("msg") String msg){ this.amqpTemplate.convertAndSend(queue, msg); return "success"; } @RequestMapping(value = "receive") public String receive(@RequestParam("queue") String queue){ String msg = (String)this.amqpTemplate.receiveAndConvert(queue); return msg; } }
- 客户端测试
刚开始rabbitmq集群都正常工作时,访问/rabbit/send发送多个数据到mq(第一次发送数据比较缓慢是因为在启动springboot时没有连接rabbitmq,会在第一次使用到amqptemplate时连接rabbitmq并创建定义的队列),通过访问/rabbit/receive接口测试是否收到数据,然后模拟rabbitmq主节点挂掉,再访问/ rabbit /receive接口,可以发现依然可以接收rabbitmq数据。
================重点==================
作为卖水果的程序员,为大家解惑的同时也为大家提供鲜美、可口、健康的有机水果。欢迎大家在解bug之余尝尝,提神醒脑,健胃开脾,地址:https://zhenxianguo.taobao.com