2017-05-31 6 views
0

spring-cloud-data-flow-server-yarnを使用していて、 。私はSCSのアプリを展開する場合spring-cloud-dataflowを使用すると、spring-cloud-streamアプリケーション内でプロパティが機能しない

は、spring.cloud.stream.bindings.output.destinationのプロパティ値がstreamName.groupNameに上書きされます、私はチャンネル名のデフォルト値だと思う:

は、今私は問題に直面しています。

scs-app内のチャンネル名のプロパティを有効にするにはどうすればよいですか?私は展開プロパティを使用しないことを意味しますが、scs-app内のプロパティを有効にするだけです。

答えて

0

Spring Cloud Data Flowでは、OOTBアプリケーションに基づいて、着信/発信のターゲット(ex:メッセージチャネル)の名前がinput/outputであることを前提としています。 input/output以外のターゲット・チャネル名を持つカスタム・アプリケーションを使用している場合は、ストリーム定義/デプロイメント・プロパティーを介して宛先名を明示的に設定する必要があります。

これにGithub issueがあり、そこから追跡することができます。

EDIT:注意する

いくつかのより一般的なポイント:

SCDFが展開されているストリームのコンテキストにグループ名(ここではストリーム名を)知っている必要があります。これに対して、スタンドアロンのSpring Cloud Streamアプリケーションとして、アプリケーションレベルのコンテキストでコンシューマグループ名などを設定する独自の方法があります。

SCDFは、Spring Cloud Stream/Taskアプリケーションを使用してストリーム/タスクを実行するためのオーケストレーションモデルとして構築されています。バインド先プロパティは、このStreamモデルに従うためにSCDFによってオーバーライドされる必要があるプロパティの1つです。しかし、配備プロパティを使用してこの宛先の設定を変更することはできます。

+0

あなたの素早い返信のために感謝します。 例を挙げてみましょう:my-source-appという名前のカスタムソースアプリがあります。このアプリケーションの中には、 'spring.cloud.stream.bindings.output.destination = time-topic'というプロパティがあります。私はそれをmy-source-appという名前のscdfのアプリケーションとして登録し、それをmy-streamという名前のストリームを作成するために使用し、それを私の糸クラスタに展開します。チャンネルの宛先は 'my-stream.my-source-app'になりますが、' time-topic'にはなりません。私はそれが 'time-topic'であることを意味します。つまり、アプリ内のプロパティが有効になることを意味します。 – zjunothing

+0

アプリ内のプロパティが優先順位が最も低くなり、オーバーライドが発生します。あなたが質問で共謀したように、ストリームをデプロイするときにデプロイメントプロパティの一部として 'app.myapp.spring.cloud.stream.bindings.output.destination = time-topic'を設定する必要があります。 –

+0

あなたは、アプリ内のプロパティの優先順位が最も低いと言いました。しかし、もし私が配置プロパティを設定していなければ(そこには優先順位の高いプロパティはありません)、アプリ内のプロパティは有効ですか? – zjunothing

関連する問題