RabbitMQ hodit výjimku při odeslání do dql (max frame_size)

0

Otázka

Když jsem dostal zprávu z fronty a pokud výjimka byla vyvolána, chci, aby si zprávu znovu. Tak jsem se vytvořit můj spotřebitelů s dql fronty:

spring:
  cloud:
    stream:
      bindings:
        to-send-output:
          destination: to-send-event
          producer:
            required-groups:
              - to-send-event-group
        to-send-input:
          destination: to-send-event
          group: to-send-event-group
          consumer:
            max-attempts: 1
            requeueRejected: true
      rabbit:
        bindings:
          #forever retry
          to-send-input:
            consumer:
              autoBindDlq: true
              dlqTtl: 5000
              dlqDeadLetterExchange:
              maxConcurrency: 300
              frameMaxHeadroom: 25000 #added this as in documentation

Dodal jsem, majetek frameMaxHeadroom: 25000 jak se píše v dokumentaci, ale to stále nefunguje.

Můj springCloudVersion="Hoxton.RELEASE".

Moje závislost:

dependencies {
...
    implementation "org.springframework.cloud:spring-cloud-starter-stream-rabbit"
...
}

V repozitáři na githubu vidím frameMaxHeadroom majetek ve vlastnictví souboru.

UPD: vidím, že kód snižuje trasování zásobníku o hodnotu jsem nastavil (z proměnné frameMaxHeadroom). Očekával jsem, že jsem nebyl klesá trasování zásobníku, ale zvyšuje hodnotu pro záhlaví pro spotřebitele, jak je napsáno v dokumentaci. Proč to není práce, jak jsem čekat?

java rabbitmq spring spring-cloud
2021-11-23 20:39:04
1

Nejlepší odpověď

0

frameMax je sjednána mezi amqp klient a server; všechny hlavičky se musí vejít do jednoho rámu. Můžete ji zvýšit s broker konfigurace.

Trasování zásobníku může být velké a může snadno překročit frameMax sám, s cílem ponechat prostor pro jiné záhlaví rámcové listy nejméně 20 000 bajtů (výchozí nastavení) volné pro jiné záhlaví, ořezávání stacktrace záhlaví, pokud je to nutné.

Pokud jste vyšší než váš frameMax, musíte mít další velké záhlaví - je třeba zvýšit světlou výšku, aby pro ty, záhlaví, takže trasování zásobníku je dále zkrácen.

2021-11-24 13:53:01

Takže můžu jen snížit záhlaví x-exception-stacktrace. A nemůžu zvětšit prostor pro všechny ostatní hlavičky. Je to pravda?
Arya

Na frame_max je určena server - výchozí klient odešle 0 při vyjednávání - což znamená, že vyjednávací velikost bude max velikost nakonfigurován na serveru. Podle tohoto blog.rabbitmq.com/posts/2012/11/... (scroll dolů frame_max) výchozí hodnota je 128 kb, ale to může být zvýšena na serveru.
Gary Russell

A jak můžu zvýšit?
Arya

Já nevím - já to tady nevidím rabbitmq.com/configure.html#config-items, ale to má říct These variables are the most common. The list is not complete, as some settings are quite obscure. - Doporučuji vám zeptat se RabbitMQ lidé na jejich rabbitmq-users Skupiny Google.
Gary Russell

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................