私はcassandraの概念接続プーリングを理解するための小さなアプリケーションを書いています。私はApacheベンチツールを使ってテストしています。しかし、アプリケーションは時々エラーを表示し、間に接続を閉じます。ホストがダウンしているようなエラーがスローされます。私は1000の同時性1000クエリを要求します。それは正常に実行されますが、私は同時実行性を高めるためにしようとすると、それはソケットを閉じて終了し、最終的にホストがダウンしていることを示します。だから私の質問は、カサンドラが提供できる同時リクエストには限界があるのだろうか? limitは、私がcassandra 3.0を使用しているので、応答を待たずにおおよそ32Kリクエストです。nodejsのcassandra-driverとの接続プール
これは、私はその多くの同時リクエストを実行できますか?
このエラーが発生する原因は何ですか?いくつかの入力に対してであり、すべてではない。
- 私たちは のように、接続プールがどのようにcassandraで動作するのかホストごとの数だけ設定し、接続あたりの要求数は ではありませんか?
ここにテストファイルがあります。私は取得しています
var cassandra = require("cassandra-driver");
var express = require("express");
var distance = cassandra.types.distance;
var cassClient = new cassandra.Client({contactPoints: ['myhost'],pooling: {
coreConnectionsPerHost: {
[distance.local] : 2,
[distance.remote] : 1
}
}, keyspace: 'MY_DB'});
var app = express();
cassClient.connect(function(err){
if(err){
console.log("Error: Connection to cassandra server."+err);
} else {
console.log("Success !!!");
}
});
var i =0;
app.get("/",function(req,res){
cassClient.execute('SELECT * from mytable LIMIT 2', function(err, rows) {
//cassClient.shutdown();
if (!err){
// console.log('The solution is: ' +i);
return res.send();
}
else
{
i++;
console.log(err.message +" "+i);
return res.send();
}
});
// cassClient.nwd();
});
app.listen(3001);
エラーがすべてのホスト(s)は、クエリのために試してみました
- が失敗しています。最初のホストは試しましたが、myhost:9042:ホストはDOWNとみなされました。 innerErrorsを参照してください。
- クエリに失敗したすべてのホストが失敗しました。最初のホストが試した、myhost:9042:エラー:ソケットが閉じられました。 innerErrorsを参照してください。
- クエリに失敗したすべてのホストが失敗しました。最初のホストは試しましたが、myhost:9042:OperationTimedOutError:ホストmyhost:9042がタイムアウト12000ミリ秒前に応答しませんでした。 innerErrorsを参照してください。
なぜそれが起こっていますか?
私も同じことを読んでいます。データベースが小さく、クエリが読み取りタイムアウトよりも時間がかかりすぎてもエラーが表示されても、私の懸念事項です。私は同時に複数の要求を発しているからですか? –
ドライバは高レベルの並行処理をサポートしています。ドライバのログに何か関連性がありますか? – jorgebg
ログには、私があなたに示した3つのエラーしか表示されません –