【问题标题】:Spring AMQP: Inspecting RabbitMQ configSpring AMQP:检查 RabbitMQ 配置
【发布时间】:2019-01-08 17:14:03
【问题描述】:

我正在尝试按照此处提到的博客演示 RabbitMQ 信用流机制的用法:https://www.rabbitmq.com/blog/2015/10/06/new-credit-flow-settings-on-rabbitmq-3-5-5/

作为我演示的一部分,我想表明如果消费者无法处理消息,RabbitMQ 将阻止发布者进一步发布消息。

在消费者方面,我将消息保存在数据库中。我已将 RabbitMQ 确认模式设置为 MANUAL。消息成功持久化到数据库后,消费者端的代码会显式确认。

作为演示的一部分,我已将 rabbitmq.config 文件中的 credit_flow_default_credit 参数设置为 2。

因此,我的 rabbitmq.config 文件如下所示:

[
   {rabbit,[
        {loopback_users, []},
        {credit_flow_default_credit, {2,1}} 
     ]
   }     
].

据我了解,如果 RabbitMQ 无法处理 2 条消息,则必须阻止发布者发布的第 3 条消息。

为了实现我想要的,我锁定了数据库中的表,这样消费者就无法持久化记录。因此,它也将无法 ACKNOWLEDGE。

但是,我认为发布者在发布消息时没有任何问题,即使它已经发布了 2 条消息。为什么 RabbitMQ 不应该阻止消息的进一步发布?

有没有办法可以从 Spring AMQP 检查 rabbitmq.config?我想确保 credit_flow_default_credit 确实设置为 2。

【问题讨论】:

    标签: rabbitmq spring-amqp


    【解决方案1】:

    没有;它是经纪人财产; java客户端只能做AMQP协议支持的事情。

    我建议您在 RabbitMQ 工程师活跃的 rabbitmq-users Google 组中询问有关 RabbitMQ 内部结构的问题(例如,为什么您没有看到预期的行为)。

    他们确实会不时查看这里,但您可能会在这里得到更快的响应。

    但是,您应该继续在这里询问有关 Spring AMQP 的特定问题。

    【讨论】:

    • 谢谢加里!我在 RabbitMQ Google group 上提出了同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2013-03-07
    • 2021-10-02
    相关资源
    最近更新 更多