0
私はCassandra
dbを使用して、頻繁なリクエストを取得します。私のコードCassandraでタイムアウト例外
public Map<String,String> loadObject(ArrayList<Integer> tradigAccountList){
com.datastax.driver.core.Session session;
Map<String,String> orderListMap = new HashMap<>();
List<ResultSetFuture> futures = new ArrayList<>();
List<ListenableFuture<ResultSet>> Future;
try {
session =jdbcUtils.getCassandraSession();
PreparedStatement statement = jdbcUtils.getCassandraPS(CassandraPS.LOAD_ORDER_LIST);
for (Integer tradingAccount:tradigAccountList){
futures.add(session.executeAsync(statement.bind(tradingAccount).setFetchSize(3000)));
}
for (ResultSetFuture future : futures){
for (Row row : future.get().all()){
orderListMap.put(row.getString("cliordid"),row.getString("ordermsg"));
}
}
}catch (Exception e){
}finally {
}
return orderListMap;
}
で、次の私は、同時に約30リクエストを送信し、私のクエリは、このようなものです:私はこのクエリを実行するたびに、それは少なくとも約30000
行をフェッチします
"SELECT cliordid,ordermsg FROM omsks_v1.ordersStringV1 WHERE tradacntid = ?"
。しかし、私は同時に複数の要求を送信すると、タイムアウト例外がスローされます。
私のCassandraクラスタには、ごとに32の同時読み書きスレッドを持つ2つのノードがあります。誰も私にこのための解決策を提供できますか?
のですか? –