前言
最近做的作品,有一些是商业性的,如西区早餐自营网,涉及饥饿营销,都可能涉及做抢订的功能,
最常见的抢订如 双十一、小米手机发布、强红包 等。
rabbitmq 在项目中的引入势在必行!
结构
代码
在正式引入功能进项目之前,得先做一定的测试,以防突发情况,再做决策,如下便是
package com.cun;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
// 广播、单播、接收 ...
@Autowired
RabbitTemplate rabbitTemplate;
// 管理 Exchange、queue ...
@Autowired
AmqpAdmin amqpAdmin;
/**
* 1.1、创建 DirectExchange
*/
@Test
public void createExchange(){
amqpAdmin.declareExchange(new DirectExchange("itaem.exchange"));
System.out.println("创建 DirectExchange 完成");
}
/**
* 1.2、创建 Queue
*/
@Test
public void createQueue(){
amqpAdmin.declareQueue(new Queue("itaem.queue",true));
System.out.println("创建 Queue 完成");
}
/**
* 1.3、创建绑定规则
*/
@Test
public void createBinding(){
amqpAdmin.declareBinding(new Binding("itaem.queue", Binding.DestinationType.QUEUE,"itaem.exchange","itaem",null));
System.out.println("绑定规则 完成");
}
/**
* 2.1、单播:发送
*/
@Test
public void convertAndSend() {
//对象被默认序列化以后发送出去
rabbitTemplate.convertAndSend("itaem.exchange","itaem","@linhongcun 凯通杯结束");
}
/**
* 2.2、广播:发送
*/
@Test
public void sendMsg(){
rabbitTemplate.convertAndSend("itaem.exchange","itaem","@全体成员 蓝桥杯正式开启");
}
/**
* 3.1、接收信息
*/
@Test
public void receiveAndConvert(){
Object o = rabbitTemplate.receiveAndConvert("itaem.queue");
System.out.println(o.getClass());
System.out.println(o);
}
}
配置
端口号默认是 5672
,服务器的 rabbitmq 不做修改的情况下,可以省略不写
spring.rabbitmq.host=120.79.197.130
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
其他
进入 rabbitmq 管理界面:http://120.79.197.131:15672,前面为自己的服务器的 ip,默认有如下帐号
帐号:guest
密码:guest
下面是运行 代码 1.1、创建 DirectExchange
的效果