RabbitMQ-第四种交换机类型

接上文 RabbitMQ-主题模式

1 第四种交换机类型

header:它是根据头部信息来决定的,在我们发送的消息中是可以携带一些头部信息的,类似与HTTP,我们可以根据这些头部信息来决定路由到哪一个消息队列中。

修改配置类内容

bash 复制代码
@Configuration
public class RabbitConfiguration {

    @Bean("headerExchange")  //注意这里返回的是HeadersExchange
    public HeadersExchange exchange(){
        return ExchangeBuilder
                .headersExchange("amq.headers")  //RabbitMQ为我们预置了两个,这里用第一个就行
                .build();
    }

    @Bean("yydsQueue")
    public Queue queue(){
        return QueueBuilder.nonDurable("yyds").build();
    }

    @Bean("binding")
    public Binding binding2(@Qualifier("headerExchange") HeadersExchange exchange,  //这里和上面一样的类型
                           @Qualifier("yydsQueue") Queue queue){
        return BindingBuilder
                .bind(queue)
                .to(exchange)   //使用HeadersExchange的to方法,可以进行进一步配置
          			//.whereAny("a", "b").exist();   这个是只要存在任意一个指定的头部Key就行
                //.whereAll("a", "b").exist();   这个是必须存在所有指定的的头部Key
                .where("test").matches("hello");   //比如我们现在需要消息的头部信息中包含test,并且值为hello才能转发给我们的消息队列
      					//.whereAny(Collections.singletonMap("test", "hello")).match();  传入Map也行,批量指定键值对
    }
}

启动服务,进入到yyds队列详情,可以看到多了一个test:hello

尝试发送信息



相关推荐
weixin_445476686 小时前
从“用框架”到“控系统”———架构通用能力(模块边界、分层设计、缓存策略、事务一致性、分布式思维)
分布式·缓存·架构
Mr.wangh6 小时前
Redis作为分布式锁
数据库·redis·分布式
小马爱打代码6 小时前
分布式锁:Redisson的公平锁
分布式
Z_z在努力11 小时前
【rabbitmq 高级特性】RabbitMQ 延迟队列全面解析
分布式·rabbitmq
没有bug.的程序员11 小时前
分布式缓存架构:从原理到生产实践
java·分布式·缓存·架构·分布式缓存架构
满满的好奇12 小时前
Mesh网络技术深度解析:从分布式拓扑到复杂场景落地
分布式
会开花的二叉树12 小时前
分布式文件存储 RPC 服务实现
c++·分布式·网络协议·rpc
文艺倾年12 小时前
【八股消消乐】手撕分布式协议和算法(基础篇)
分布式·算法
jc062013 小时前
4.3-中间件之Kafka
分布式·中间件·kafka
2351613 小时前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理