4

Datastax Java ドライバーを使用しています。同じものを使用するためのチュートリアルがあります。

私が理解していないのは、cassandraへの接続をどのように閉じるかということです? 利用可能な close メソッドはありません。セッションはアプリケーションごとに 1 つあると予想されるため、セッションをシャットダウンしたくないと思います。

よろしくガウラフ

4

2 に答える 2

4

tl;dr 呼び出しshutdownSession、接続を閉じる正しい方法です。

オブジェクトを安全にSession手元に置いておき、Cassandra を使い終わったら閉じる必要があります。これは長く続く可能性があります。必要に応じてオブジェクトの形式で個々の接続を取得Sessionし、完了したらシャットダウンできますが、理想的には、アプリケーションごとに 1 つの Session オブジェクトのみを作成する必要があります。セッションは、クラスター内のノードへの接続のプールのプールを保持するかなり重いオブジェクトであるため、それらを複数作成することは非効率的です (そして不必要です) (メーリング リストで Sylvain Lebresne によって与えられたアドバイスから逐語的に取られます)。セッションをシャットダウンするのを忘れた場合、インスタンスを呼び出しshutdownたときにセッションはすべて閉じられClusterます...以下の非常に簡単な例:

Cluster cluster = Cluster.builder().addContactPoints(host).withPort(port).build();
Session session = cluster.connect(keyspace);

// Do something with session... 

session.shutdown();
cluster.shutdown();
于 2013-10-16T19:46:00.657 に答える
1

ここを参照してください - http://www.datastax.com/drivers....

ドライバーは非同期で接続を使用します。複数のリクエストを同じ接続で同時に送信できることを意味します。これは、ドライバーが各 Cassandra ホストに対して比較的少数の接続を維持するだけでよいことを意味します。これらのオプションを使用すると、ドライバーは保持する接続数を正確に制御できます。

ホストごとに、ドライバは を呼び出すことによって決定された接続のコア プールを常に開いたままにします。これらの接続の使用が構成可能なしきい値に達すると、構成可能な最大接続数までさらに接続が作成されます。プールが接続の最大数を超えた場合、開いている接続の使用が構成されたしきい値を下回った場合、超過した接続は回収されます

これらの各パラメータは、LOCAL ホストと REMOTE ホスト (HostDistance) に対して個別に設定できます。IGNORED ホストの場合、これらすべての設定のデフォルトは 0 であり、変更できません。

于 2013-10-16T19:45:39.863 に答える