Java-buildpack: 自動再構成の無効化をサポート

作成日 2014年08月04日  ·  10コメント  ·  ソース: cloudfoundry/java-buildpack

CFにJavaアプリケーションを再構成させたくないのですが、 autoconfigure: falseオプションがマニフェストで尊重されていないようで、Mavenプラグインにはそれを無効にするオプションがありません。 このオプションは、他の言語(Rubyなど)のビルドパックで使用できます。

最も参考になるコメント

こんにちは、はい、これは現在可能です。
ビルドパックをフォークして構成ファイルを直接変更する代わりに、環境変数を使用して任意の構成を設定できるようになりました。 たとえば、自動再構成を無効にするには、次のような環境変数を設定する必要があります。

cf set-env myapp JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '[enabled: false]'

詳細については、ドキュメントhttps://github.com/cloudfoundry/java-buildpack#configuration-and-extensionをご覧ください。

全てのコメント10件

どのような再構成を避けようとしていますか? 実際には、Spring自動再構成JARはクラスパスに配置されますが、実際には自動再構成を行わない場合があります。 自動再構成は、再構成の候補であるサービスと再構成の候補であるBeanの両方が存在する場合にのみ発生します。 したがって、自動再構成したくないサービスをバインドしないことで、自動再構成を回避できます。 さらに、 spring-cloud Beanが定義されている場合、自動再構成は完全に回避されます。

特に求めていない魔法は避けたい。 ユーザー提供のサービスを正確に分析しているかどうかなど、自動再構成がサーバー側で何をしているのかをデバッグする方法がありません。ドロップレットメモリを解放して、キャッシュを少し増やしたり、余分なコードを追加したりします。必要ない、したくない。 さらに、自動再構成はほとんど完全に文書化されていないため(少なくとも私は見つけることができました)、したがって実際問題として予測することはできません。

それは春・クラウド(あるいはVCAP-Java)のアプリは非常に特別のconfigureサービスに望んでいる状況の世話をする必要がありますベースのBeanを見たとき@chrylis自動再構成について述べ、最後のポイント@nebhaleは、それ自体をオフにします。 spring-cloudを使用していると仮定すると、自動再構成がアプリに干渉することはありません。 自動再構成によって目立った量のメモリが消費されることもないと思います。

そうは言っても、v1で自動再構成をオフにすることを提案しました(https://spring.io/blog/2011/11/04/using-cloud-foundry-services-with-spring-part-2を参照) -自動再構成)。 今日では、ビルドパックをフォークして、ニーズに合わせて変更するという大きなハンマーがあります。 したがって、そのような切り替えがJavaビルドパック自体でまだ保証されているかどうかにかかわらず、

現時点では、自動再構成は、非常に予測可能な一連の状況下でのみ動作することによって適切に動作すると思います。 これは、これを無効にする方法を要求する最初の問題であるという事実に基づいています。 ただし、これと同様のリクエストが多数寄せられた場合は、この立場を再検討することを歓迎します。 自動再構成が誤動作し、正しく機能するように変更できないという再現可能な状況が発生するまで、私は物事をそのままにしておく傾向があります。

すべてのコンポーネントと同様に、コンポーネントのリストからそのエントリを削除することにより、自動再構成を無効にすることができます。 自動再構成に関するドキュメントの最適な場所は、 GitHubリポジトリフレームワークのドキュメントページです。

自動再構成の動作またはそれを取り巻くドキュメントのいずれかに特定の改善がある場合は、お知らせください。喜んで作成させていただきます。

さらに、Spring-Cloud Beanが定義されている場合、自動再構成は完全に回避されます。

私の経験では、その動作にはタイミングの問題があります。 スプリングクラウドBeanがプロファイルで定義されている場合、「以前の」宣言されたBean(つまり、特定のプロファイルの外部で定義されたBean)が自動再構成によって既に変更された後に識別される可能性があります。

たとえば、2つのDataSource Beanを定義する構成があるとしするように構成

また、元の投稿者と同様の理由で、自動再構成を無効にしたいと思います。理解できない魔法が発生したくないのです。
変わった? ビルドパックをフォークする以外の方法で無効にすることは可能ですか?

こんにちは、はい、これは現在可能です。
ビルドパックをフォークして構成ファイルを直接変更する代わりに、環境変数を使用して任意の構成を設定できるようになりました。 たとえば、自動再構成を無効にするには、次のような環境変数を設定する必要があります。

cf set-env myapp JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '[enabled: false]'

詳細については、ドキュメントhttps://github.com/cloudfoundry/java-buildpack#configuration-and-extensionをご覧ください。

私はすでにこのテクニックをメモリ計算機の設定に使用しています。 もう一度質問する前に、すべての構成ファイルをチェックして、その中身を確認したほうがいいと思います。
ありがとうございました。

マニフェストファイルでこれを行うには、別の形式が必要です。

これを試して、

JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '[enabled: false]'

余分な:注意してください

この自動再構成ライブラリがサービス接続の部分的な無効化をサポートする計画はありますか? 具体的には、このユースケースでは、カスタマイズされたRedisConnectionFactoryが必要です(Azure RedisサービスへのSSL接続を使用するため)が、この自動再構成ライブラリでRabbitMQを再構成する必要があります(PCFが提供するRabbitMQサービスを使用するため)。

このページは役に立ちましたか?
0 / 5 - 0 評価