Browse Source

spring-boot-demo-mq-rabbitmq 完成

pull/1/head
Yangkai.Shen 6 years ago
parent
commit
7ec7aa185d
3 changed files with 20 additions and 15 deletions
  1. +2
    -2
      spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/config/RabbitMqConfig.java
  2. +7
    -12
      spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/constants/RabbitConsts.java
  3. +11
    -1
      spring-boot-demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java

+ 2
- 2
spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/config/RabbitMqConfig.java View File

@@ -97,7 +97,7 @@ public class RabbitMqConfig {
* 主题模式队列 * 主题模式队列
* <li>路由格式必须以 . 分隔,比如 user.email 或者 user.aaa.email</li> * <li>路由格式必须以 . 分隔,比如 user.email 或者 user.aaa.email</li>
* <li>通配符 * ,代表一个占位符,或者说一个单词,比如路由为 user.*,那么 user.email 可以匹配,但是 user.aaa.email 就匹配不了</li> * <li>通配符 * ,代表一个占位符,或者说一个单词,比如路由为 user.*,那么 user.email 可以匹配,但是 user.aaa.email 就匹配不了</li>
* <li>通配符 # ,代表一个或多个占位符,或者说一个或多个单词,比如路由为 user.#,那么 user.email 可以匹配,user.aaa.email 也匹配不了</li>
* <li>通配符 # ,代表一个或多个占位符,或者说一个或多个单词,比如路由为 user.#,那么 user.email 可以匹配,user.aaa.email 也可以匹配</li>
*/ */
@Bean @Bean
public TopicExchange topicExchange() { public TopicExchange topicExchange() {
@@ -164,7 +164,7 @@ public class RabbitMqConfig {
*/ */
@Bean @Bean
public Binding delayBinding(Queue delayQueue, CustomExchange delayExchange) { public Binding delayBinding(Queue delayQueue, CustomExchange delayExchange) {
return BindingBuilder.bind(delayQueue).to(delayExchange).with(RabbitConsts.DELAY_MODE_ROUTING_KEY).noargs();
return BindingBuilder.bind(delayQueue).to(delayExchange).with(RabbitConsts.DELAY_QUEUE).noargs();
} }


} }

+ 7
- 12
spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/constants/RabbitConsts.java View File

@@ -17,27 +17,27 @@ public interface RabbitConsts {
/** /**
* 直接模式1 * 直接模式1
*/ */
String DIRECT_MODE_QUEUE_ONE = "queue_direct_1";
String DIRECT_MODE_QUEUE_ONE = "queue.direct.1";


/** /**
* 队列2 * 队列2
*/ */
String QUEUE_TWO = "queue_2";
String QUEUE_TWO = "queue.2";


/** /**
* 队列3 * 队列3
*/ */
String QUEUE_THREE = "3_queue";
String QUEUE_THREE = "3.queue";


/** /**
* 分列模式 * 分列模式
*/ */
String FANOUT_MODE_QUEUE = "fanout_mode";
String FANOUT_MODE_QUEUE = "fanout.mode";


/** /**
* 主题模式 * 主题模式
*/ */
String TOPIC_MODE_QUEUE = "topic_mode";
String TOPIC_MODE_QUEUE = "topic.mode";


/** /**
* 路由1 * 路由1
@@ -57,15 +57,10 @@ public interface RabbitConsts {
/** /**
* 延迟队列 * 延迟队列
*/ */
String DELAY_QUEUE = "delay_queue";
String DELAY_QUEUE = "delay.queue";


/** /**
* 延迟队列交换器 * 延迟队列交换器
*/ */
String DELAY_MODE_QUEUE = "delay_mode";

/**
* 延迟队列路由
*/
String DELAY_MODE_ROUTING_KEY = "delay.#";
String DELAY_MODE_QUEUE = "delay.mode";
} }

+ 11
- 1
spring-boot-demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java View File

@@ -61,11 +61,21 @@ public class SpringBootDemoMqRabbitmqApplicationTests {
*/ */
@Test @Test
public void sendDelay() { public void sendDelay() {
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, "delay.aaa", new MessageStruct("delay message, " + DateUtil
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 5s, " + DateUtil
.date()), message -> { .date()), message -> {
message.getMessageProperties().setHeader("x-delay", 5000); message.getMessageProperties().setHeader("x-delay", 5000);
return message; return message;
}); });
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 2s, " + DateUtil
.date()), message -> {
message.getMessageProperties().setHeader("x-delay", 2000);
return message;
});
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 8s, " + DateUtil
.date()), message -> {
message.getMessageProperties().setHeader("x-delay", 8000);
return message;
});
} }


} }


Loading…
Cancel
Save