关于SpringCloud整合RabbitMQ的应用详解(ack,限流,幂等)
package org.example.rabbit.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DirectRabbitConfig {
//队列 起名:TestDirectQueue
// @Bean
// public Queue TestDirectAQueue() {
// // durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
// // exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
// // autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
// // return new Queue("TestDirectQueue",true,true,false);
//
// //一般设置一下队列的持久化就好,其余两个就是默认false
// return new Queue("",false);
// }
//
// @Bean
// Queue queueDirectBName() {
// return new Queue("",false);
// }
//
// /**
// * Direct交换机 起名:TestDirectExchange
// * 直连交换机:Direct exchange
// * 扇形交换机:Fanout exchange
// * 主题交换机:Topic exchange
// * 首部交换机:Headers exchange
// * @return
// */
// @Bean
// DirectExchange bindingTestDirectExchange() {
// // return new DirectExchange("TestDirectExchange",true,true);
// return new DirectExchange("TestDirectExchange",true,false);
// }
//
// //绑定 将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
//
// @Bean
// Binding bindingDirectA() {
// return (TestDirectAQueue()).to(bindingTestDirectExchange()).with("TestDirectRoutingA");
// }
// @Bean
// Binding bindingDirectB() {
// return (TestDirectAQueue()).to(bindingTestDirectExchange()).with("TestDirectRoutingB");
// }
//
//
// @Bean
// DirectExchange lonelyDirectExchange() {
// return new DirectExchange("lonelyDirectExchange");
// }
//创建队列
@Bean
public Queue queueMessage() {
return new Queue("");
}
//创建队列
@Bean
public Queue queueMessages() {
return new Queue("");
}
//创建交换器
@Bean
TopicExchange exchange() {
return new TopicExchange("topicExchange");
}
//对列绑定并关联到ROUTINGKEY
@Bean
Binding bindingExchangeMessage(Queue queueMessage, TopicExchange exchange) {
return BindingBuilder.bind(queueMessage).to(exchange).with("");
}
//对列绑定并关联到ROUTINGKEY
@Bean
Binding bindingExchangeMessages(Queue queueMessages, TopicExchange exchange) {
return BindingBuilder.bind(queueMessages).to(exchange).with("topic.#");//*表示一个词,#表示零个或多个词
}
}