0

私のクラウド ストリーム アプリケーションでは、spring-cloud-starter-stream-processor-tasklaunchrequest-transformスターター アプリをタスク プロセッサとして使用しました。

スターターはローカルでビルドされ、ローカルの Maven リポジトリにインストールされます。

ローカルの Dataflow サーバーと DF シェルを起動し、アプリを登録してストリームを作成してデプロイするために使用するコマンドは次のとおりです。

  • ローカル Maven にタスク ランチャーアプリをインストールします。mvn clean install
  • タスク プロセッサ アプリをローカル Maven にインストールします。mvn clean install
  • ローカル Maven にタスク アプリをインストールします。mvn clean install

  • Build Dataflow Server Local - mvn clean package(remoteRepo の場所をエンタープライズ Maven リポジトリに変更)

  • DF サーバーをローカルで起動 -mvn spring-boot:run

  • データフロー シェルのビルド -mvn clean package

  • DFシェルを起動 -mvn spring-boot:run

  • すぐに使えるスターター アプリを Rabbit バインディングでインポートするstream-applications-rabbit-maven

  • アプリを登録する -

    1. app register --name task-processor --type processor --uri maven://org.springframework.cloud.stream.app:spring-cloud-starter-stream-processor-tasklaunchrequest-transform:jar:1.1.0.BUILD-SNAPSHOT
    2. app register --name task-launcher-local --type sink --uri maven://org.springframework.cloud.stream.app:task-launcher-local-sink-rabbit:jar:1.0.4.RELEASE
  • ストリームを作成 - stream create foo --definition "rabbit --rabbit.queues=cloud-stream-source --rabbit.requeue=true --spring.rabbitmq.host=localhost --spring.rabbitmq.port=5672 --spring.cloud.stream.bindings.output.contentType='text/plain' | task-processor --uri=maven://com.example:thumbnail-generator:0.0.1-SNAPSHOT | task-launcher-local" --deploy

ただし、タスク プロセッサの起動に失敗したため、ストリームのデプロイは失敗しています。プロセッサ ログに記録されるエラーは次のとおりです。

/Users/abc/.m2/repository/org/springframework/cloud/stream/app/spring-cloud-starter-stream-processor-tasklaunchrequest-transform/1.1.0.BUILD-SNAPSHOT/spring- にメインのマニフェスト属性はありませんcloud-starter-stream-processor-tasklaunchrequest-transform-1.1.0.BUILD-SNAPSHOT.jar

今、提起する2つのポイントがあります:

  1. ログに記載されている Maven リポジトリの場所は、MacOS のデフォルトの場所であり、ローカルの Maven 構成 (/Users/abc/myrepo/.m2/repository) の 1 つのセットアップではありません。
  2. このエラーは、スターター アプリのビルドされた jar ファイルに対して有効です - spring-cloud-starter-stream-processor-tasklaunchrequest-transform。そして、ストリーム アプリで実行可能にして使用できるようにするためにカスタマイズが必要な場合、それは私を混乱させます。

スターター アプリを実行可能なスプリング ブート アプリに変更して、そのバージョンをローカル リポジトリにインストールしようとしましたが、アプリケーションが正しいローカル リポジトリ (既定のリポジトリではなく) を参照しない限り、使用できません。

これはアプリの問題であり、ローカルの maven 設定が表示されないため、デフォルト値のままになっていると思います。

どんな入力も役に立ちます。

4

1 に答える 1

1

アプリの登録 - app register --name task-processor --type processor --uri maven://io.spring.cloud:taskprocessor:jar:1.1.0.BUILD-SNAPSHOT

これによると、サンプルtaskprocessorアプリケーションを登録しています。試してみても問題はありませんが、標準化されたアプリケーションを使用することをお勧めします。不足している機能がある場合は、GH の問題を提出してください。

ただし、タスク プロセッサの起動に失敗したため、ストリームのデプロイは失敗しています。

実際に標準化されたアプリケーションを使用しようとしている場合、アプリケーション登録コマンドは次のようになります。

app register --name task-processor --type processor --uri maven://org.springframework.cloud.stream.app:tasklaunchrequest-transform-processor-rabbit:1.1.0.BUILD-SNAPSHOT  --force

ログに記載されている Maven リポジトリの場所は、MacOS のデフォルトの場所であり、ローカルの Maven 構成 (/Users/abc/myrepo/.m2/repository) の 1 つのセットアップではありません。

SCDF は Aether ライブラリを使用して、maven アーティファクトを解決およびダウンロードします。デフォルトでは、要求されたアプリケーションは最初にローカルの Maven リポジトリでチェックされ、存在しない場合はリモート リポジトリからダウンロードされます。これは、他の Maven ワークフローと同じです。

このエラーは、スターター アプリ - spring-cloud-starter-stream-processor-tasklaunchrequest-transform のビルドされた jar ファイルに対して有効です。そして、ストリームアプリで実行可能にして使用できるようにするためにカスタマイズが必要な場合、それは私を混乱させます

OOTB アプリケーションはユーティリティ アプリケーションです。ほとんどの場合、それらは共通の要件を満たす必要があります。一般的な動作を調整する必要がある場合は、それらを拡張できます。

そうは言ってもjava -jar、アプリケーションが正常にブートストラップするかどうかを確認するためにローカルでビルドされたアプリケーションを実行してから、SCDF に登録することができます。トラブルシューティングのために、各アプリケーションでレベル ログを有効に することもできます。DEBUG

于 2016-11-04T21:35:51.643 に答える