2016-07-28 20 views
2

ロードバランサの前にAWSの3ノードクラスタセットアップがあります。管理UI、クエリコンソール、およびREST APIへのアクセスは、ロードバランサを使用しても問題ありません。しかし、mlGradleを使用してモジュールコンテンツを展開すると、次のエラーが発生します。ロードバランサ経由でmlGradleでデプロイする際のエラー

:mlLoadModules FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':mlLoadModules'. 
> Unable to insert content at URI: /config/context.xml; cause: Query evaluation request rejected (400, BAD_REQUEST). Is this an XDBC server? 

このエラーは、1つのノードに対して発生しても問題ありません。私が推測しているのは、異なるホストに当たる可能性があり、失敗を引き起こすことです。私はクッキーと粘着性のAWSロードバランサの設定を持っているが、それは助けにはならない。

他の誰もこの問題を以前に見ましたか?

答えて

1

エラーはAWSロードバランサの設定にありました。すべてのエンドポイントがHTTPエンドポイントとしてリストされているので、プロキシ要求に対するロードバランサをHTTPとして作成しました。私の具体的な展開では、ファイルはXDBCを使用してモジュールのルートにロードされます。 HTTPエンドポイントもXDBCを有効にしていますが、ロードバランサはHTTPだけを受け入れました。そのため、私は悪い要求を受けていました。すべてのポートのロードバランサをTCPに切り替えると正常に動作します。

1

基本に戻る:ロードバランサを回避し、制御されたテストで各ノードを個別に起動します。ノードごとに期待どおりに残りの部分が動作していることを確認します。各ノードが自分自身でOKと見える場合は、ロードバランサに移動します。これは、XDBCサーバーに当たっていないように見えます。

+0

各ノードは個別に動作します。 –

1

ロードバランサもXdbcもhttpでも問題はありません。 xdbcはHTTPと互換性があります。リクエストが機能しない場合は、を使用して検証できます。元の構成の1ノードクラスタそれが動作します。 「問題」は、mlgradleによって実行される管理操作の要件とロード・バランシングの概念との間の誤った接続です。順序付けられた管理操作は、さまざまな理由で複数のMLサーバーにヒットした場合、動作しないことがあります。タイミングと待機条件の呼び出しは、サーバーでのみ有効です(たとえば、ホストの再起動が完了するのを待つ、フェイルオーバー、トランザクション、セッション状態などを満たすための特定の順序)。

ロードバランサに行ったことは、クッキーアフィニティから別のアルゴリズムに変更することでした。これは動作を変更しますが、根本的に修正することはありません。また、ELBリフレッシュが発生し、最初の接続セットに対してELBがbalencemをロードしないようになっています。ターゲットサーバーの実際の配布が行われないため、テストで偽陽性結果が発生します。新しいELBを開始し、接続をバッ​​クツーバック接続してどのサーバーがヒットしたかを調べることで、検証できます。ほとんどのサーバがヒットしてもほとんどの場合、正常に動作することに注意してください。ブラックボックステストを使用してエラーに気づかないだけで簡単に「動作する」ことを検証することはできません。あなたはxdmp:host()を使ってqconsoleでこれを見ることができます。数回実行して、しばらく待って、繰り返してください。あなたは何を期待していますか?それが起こったのですか?それは一貫して再現可能ですか?どのような種類のアプリケーションが影響を受けるのでしょうか?これは間違っていますか?これについての答えが得られない場合は、アプリケーションコードとmarklogicの間でロードバランサを使用しないことをお勧めします。アプリケーションが完全にステートレスである場合は、代わりにアプリケーション/インターネット/ブラウザのユーザー間でそれらを使用してください。もしそうでなければ、ロード・バレンダーは解決策ではない。

+0

ありがとう@DALDEI。これはかなり前のことでしたが、当時、mlgradleがxcc.http準拠のフラグを伝播しないという問題もあったと思います。 –

関連する問題