java - cassandra db 慢速连接

标签 java cassandra connection

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

我在带有 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();
}

最佳答案

请记住,Cassandra 连接有些繁重,因为它们需要设置一次,然后才能长期使用。为每个小操作连接和断开连接是不正确的用法。

也就是说,2-4 秒相当长。当我连接到远程集群时,大约需要 750 毫秒。

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

关于java - cassandra db 慢速连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142847/

相关文章:

java - 提交 SQL Connection 对象是否不安全?

java - java.lang.SecurityManager 中的初始化字段有什么用?

Cassandra - CQLSH 中发出的每个命令都会抛出错误

elasticsearch - Elassandra索引数据大小比实际数据大10倍

Cassandra COPY 始终失败

R和postgreSQL表操作

android - 两个 Android 设备之间的 RFCOMM 连接?

c# - 有自然语音的 TTS 引擎吗?

java - 从 android 应用程序转换的黑莓 10 应用程序的 javascript 调用 java 函数

java.lang.IllegalArgumentException : secret key byte array cannot be null or empty