2017-06-12 2 views
0

最近リリースされたメッセージに配信モードの永続性を指定できるようにするため、最新のスプリングクラウド/データフロー/ストリームリリースにアップグレードするよう努めています。データフローで死んでいる。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 

持続性がない)。

何か間違っているのですか、またはルーティングキー関連のバグがありますか?

答えて

0

私は意図された動作の変更を認識していません。 GitHubの問題を開いて調査できるようにしてください。

一方、Dalstonには新しいウサギの消費者属性deadLetterRoutingKeyがあり、明示的に設定することができます。あなたはその問題を回避することができるはずです。

+0

deadLetterRoutingKeyはrabbitmqのルーティングキーを割り当てますが、メッセージリカバリではまだストリーム名が使用されています。私は今日後で問題を提起するつもりです。 – bikerlad

関連する問題