RabbitMQ笔记(八)-RabbitAdmin

本文介绍了RabbitMQ中RabbitAdmin的使用,包括如何配置bean和直接创建channel。RabbitAdmin允许在异常发生时忽略并继续声明其他元素,这一特性可通过ignore-declaration-exceptions属性控制。此外,异常会触发DeclarationExceptionEvent事件。文中还提到早期版本的行为差异以及通道管理的重要性。
摘要由CSDN通过智能技术生成

使用代码配置队列,交换器和绑定通常可以直接使用RabbitAdmin

默认情况下,当任何异常发生时,RabbitAdmin将立即停止处理所有声明;这可能会导致下游问题——例如,由于没有声明另一个队列(在错误队列之后定义的),侦听器容器无法初始化。

可以通过将RabbitAdmin上的ignore-declaration-exceptions属性设置为true来修改此行为。这个选项指示RabbitAdmin记录异常,并继续声明其他元素。当使用java配置RabbitAdmin时,这个属性是ignoredeclarationexception。这是一个全局设置,适用于所有元素、队列、交换器和绑定,具有一个类似的属性,仅适用于这些元素。

在1.6版本之前,此属性仅在通道上发生IOException时(例如当前属性与所需属性不匹配时)才生效。现在,该属性将对任何异常生效,包括TimeoutException等。

此外,任何声明异常都会导致DeclarationExceptionEvent的发布,该事件是一个ApplicationEvent,上下文中的任何ApplicationListener都可以使用该事件。事件包含对admin的引用、正在声明的元素和可抛出的元素。

配置bean
 @Bean
    public RabbitAdmin rabbitAdmin(CachingConnectionFactory cachingConnectionFactory){
        RabbitAdmin rabbitAdmin = new RabbitAdmin(cachingConnectionFactory);
        rabbitAdmin.setIgnoreDeclarationExceptions(true);
        return rabbitAdmi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值