cassandra db连接缓慢

时间:2015-06-30 15:47:49

标签: java cassandra connection

我第一次使用Java尝试使用cassandra db。我有以下代码,其中与db(cluster.connect)的连接需要2-4秒。

我在localhost上有一个带有SSD磁盘的数据库。我只有一个cassandra节点。任何提示如何改善这一点?

public static void main(String[] args) {
        Cluster cluster;
        Session session;

        long start = System.currentTimeMillis();
        cluster = Cluster.builder().addContactPoint("10.90.1.15").withPort(9042).build();
        session = cluster.connect("demo");

        long connectiontime = System.currentTimeMillis();
        System.out.println(connectiontime - start);

        ResultSet results = session.execute("SELECT * FROM users");
        long querytime = System.currentTimeMillis();
        System.out.println(querytime - connectiontime);

        for (Row row : results) {
            System.out.format("%s %d\n", row.getString("firstname"), row.getInt("age"));
        }

            ResultSet results2 = session.execute("SELECT * FROM users");
            long querytime2 = System.currentTimeMillis();

            System.out.println(querytime2 - querytime);

           for (Row row : results2) {
                System.out.format("%s %d\n", row.getString("firstname"), row.getInt("age"));
            }

            cluster.close();
}

1 个答案:

答案 0 :(得分:3)

请记住,Cassandra连接有点沉重,因为它们只需设置一次然后再使用很长一段时间。对于每个小操作,连接和断开连接都是不正确的。

话虽如此,2-4秒相当长。当我连接到远程群集时,大约需要750毫秒。

您可能会查看cassandra日志,看看它是否正在做一些奇怪的事情并等待某些事情超时。您可以尝试使用“localhost”而不是机器IP作为联系点,看看是否有任何区别。如果您查看日志,可以将日志级别提高到TRACE,您可能会看到它一直在哪里花费。