3

私がスプリングブートアプリケーションをデプロイするときはいつでも、それはTomcatコンテナーを埋め込んでいました。利用可能なコンテナに依存します。それは、これらが12要素のアプリケーションに準拠していないということですか?Webサーバーの実行時の注入に依存しますか?ポートバインディング - 12因子アプリケーション

非httpサービスのTCPルーティングとは何ですか?

ポート結合ポートを介し

エクスポートサービスを結合。 12因子のアプリケーションは完全に自己完結型であり、Webサーバ サービスを作成する実行環境に Webサーバの実行時インジェクションに依存しません。

Pivotal Cloud Foundryの場合、HTTP以外のサービスでは、 オーダのTCPルーティングが再構築されている必要があります。

答えて

1

ローカルで実行すると、春の起動アプリケーションでは、defaultのプロファイルで実行されます。したがって、Springは実行時にポートやその他の設定を活用します。

クラウドにプッシュすると、春のブートアプリケーションはcloudのプロファイルで実行されます。 cloudプロファイルでは、ポート設定はクラウドによって指定され、指定した設定は無視されます。

PCFでは、Diegoセルがすべてのアプリケーションインスタンスをホストします。 Diegoセルには、ホスティングするアプリケーション用の独自のCIDRブロックがあります。したがって、あなたのアプリケーションインスタンスはその範囲からIPを取得します。そしてあなたはそのIPでアプリにアクセスすることはできません。

しかし、DiegoセルのVMは、実行中のネットワークのCIDR範囲のIPを持っています。また、DiegoセルはNAT-ingを使用して、あなたのアプリケーションipをDiegoセルVMのポートにマップします。それがトラフィックがあなたのアプリにどのようにルーティングされるかです。

ご覧のとおり、PCFのDiegoセルは、指定したポートに依存することはできません。代わりに、可能な限りアプリケーションを実行し、使用可能なポートにNATを実行します。

Diego Reference Architectureをご覧ください。

第2の質問については、Cloud FoundryのGo-Routersがアプリインスタンスにリクエストをルーティングします。デフォルトでは、Go-Routersではhttp/httpsトラフィックのみが有効になっています。 Go-RoutersでTCPルーティングを有効にすることができます。これはPCF 1.9で追加されたと私は信じている。 こちらはdocumentationです。