package org.springblade.modules.rabbitmq.config;
|
|
import org.springframework.amqp.core.*;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
/**
|
* rabbitmq 配置文件
|
* @author zhongrj
|
* @since 2022-04-08
|
*/
|
@Configuration
|
public class MQConfig {
|
public static final String QUEUE = "queue";
|
public static final String TOPIC_QUEUE1= "topic.queue1";
|
public static final String TOPIC_QUEUE2 = "topic.queue2";
|
public static final String TOPIC_EXCHANGE = "topicExchange";
|
public static final String FANOUT_EXCHANGE = "fanoutxchage";
|
public static final String TASK_QUEUE = "task_queue";
|
|
@Bean
|
public Queue taskQueue(){
|
return new Queue(TASK_QUEUE,true);
|
}
|
|
//Direct模式
|
@Bean
|
public Queue queue(){
|
return new Queue(QUEUE,true);
|
}
|
|
//topic交换机模式
|
@Bean
|
public Queue topicQueue1(){
|
return new Queue(TOPIC_QUEUE1,true);
|
}
|
|
@Bean
|
public Queue topicQueue2(){
|
return new Queue(TOPIC_QUEUE2,true);
|
}
|
|
@Bean
|
public TopicExchange topicExchange(){
|
return new TopicExchange(TOPIC_EXCHANGE);
|
}
|
|
@Bean
|
public Binding topicBinding1(){
|
return BindingBuilder.bind(topicQueue1()).to(topicExchange()).with("topic.key1");
|
}
|
|
@Bean
|
public Binding topicBinding2(){
|
return BindingBuilder.bind(topicQueue2()).to(topicExchange()).with("topic.#");
|
}
|
|
//Fanout模式,广播模式
|
|
@Bean
|
public FanoutExchange fanoutExchange(){
|
return new FanoutExchange(FANOUT_EXCHANGE);
|
}
|
}
|