最近リリースされたメッセージに配信モードの永続性を指定できるようにするため、最新のスプリングクラウド/データフロー/ストリームリリースにアップグレードするよう努めています。データフローで死んでいる。DLX(rabbitmq)ルーティングキーの問題(スプリングクラウドデータフローあり)
私は最新のDalston.SR1リリースを試してみました。メッセージがデータフローdlqにルーティングされ、アプリケーション(プロセッサなど)がスタンドアロンで実行された場合に限り永続的にマークされていました。
このアプリケーションをデータフローストリームの一部として実行すると、データフローストリーム内のデッドレターキューにメッセージが書き込まれません。 spring amqpのトレースロギングをオンにすると、間違ったルーティングキーが使用されたことが原因であることがわかりました。
私がログに表示すると、このです:
o.s.amqp.rabbit.core.RabbitTemplate : Publishing message on exchange [DLX], routingKey = [mystreamname]
これはバグのように思える:スタンドアロン、以前データフローで、それが基づいているのに対し、ストリーム名は、現在のデータフロー環境におけるルーティングキーとして使用されていますキュー名に追加します。
rabbitmqバインダーの設定が変更されましたか?ここではプロセッサのための私のバインダーの設定からの抜粋(spring.cloud.stream接頭辞を想定)は、次のとおりです。これはDLQからCamden.SR6とは別にデータフロー1.1.4.RELEASE(と生産にうまく働いている
bindings:
input:
consumer:
backOffMultiplier: 1
maxAttempts: 1
group: mygroup
rabbit:
bindings:
input:
consumer:
autoBindDlq: true
durableSubscription: true
republishToDlq: true
content-type: application/json
output:
producer:
autoBindDlq: true
content-type: application/json
持続性がない)。
何か間違っているのですか、またはルーティングキー関連のバグがありますか?
deadLetterRoutingKeyはrabbitmqのルーティングキーを割り当てますが、メッセージリカバリではまだストリーム名が使用されています。私は今日後で問題を提起するつもりです。 – bikerlad