4

Java アプリケーションで Cassandra DB を使用しています。Thrift クライアントを使用して、Java アプリケーションから Cassandra に接続しています。Cassandra ディスクがいっぱいになると、自動的に終了します。したがって、私のJavaプログラムから、Cassandraがダウンしている正しいエラーを見つけることができませんでした.

では、Cassandra の自動終了を回避する方法、またはディスク フル エラーを特定する方法はありますか?

また、cassandra ドライブに物理的にアクセスできません。他のリモートマシンで実行されています。

4

2 に答える 2

3

通常、ディスク エラーと一般的なハードウェア/システム エラーは、どのアプリケーションでも適切に処理されませんこのようなシナリオでは、データベースは可能な限りの耐久性のみを提供する必要があります。これは正しい動作であり、シャットダウンしてできるだけ壊れないようにします。

アプリケーションに関しては、データベースに接続できない場合でも、エラーの原因に違いはありません。とにかくあなたのアプリは動作しません。

Nagiosなど、マシンを監視できる特別なツールがあります。そのサーバーの管理者である場合は、そのようなアプリケーションを使用してください。ディスクがいっぱいになると、電子メールまたはテキストが届きます。そのようなツールを使用し、ランダムで非常にまれな状況を処理するために数百行のコードを実装して、開かれたドアを壊さないでください。

于 2013-01-15T07:38:42.627 に答える
1

Casandra マシンへの ssh アクセスをセットアップし、 JSchなどの ssh クライアントを使用してdf /casandra/drive(Linux の場合) またはfsutil volume diskfree c:\casandra\drive(Windows の場合) Java クライアントから実行します。単純な出力をキャプチャして解析し、空きディスク領域を取得します。そうすれば、アプリケーションはそこで起こっていることを監視し、おそらくユーザーに警告し、ディスク容量不足の脅威がある場合はデータの追加を拒否する必要があります.

ディスク容量が少ない場合は、標準の監視ツールまたはセットアップ サーバー側スクリプトを使用してメッセージを送信することもできます。ただし、これによってアプリケーションのクラッシュが停止するわけではありません。ディスク容量が少ないことがわかったら、対処する必要があります。

于 2013-01-15T07:38:46.310 に答える