Cassandra 本机端口 9042 在 ec2 上运行缓慢,而 9160 则正常

Cassandra 本机端口 9042 在 ec2 上运行缓慢,而 9160 则正常

我在 EC2 上设置了一个 5 节点的 Cassandra 集群,所有节点都位于同一区域。

如果我通过 cqlsh (9160) 连接,查询将在一秒钟内响应。

当我通过开发中心连接或使用本机 Java 驱动程序(两者都使用端口 9042)时,查询需要 20 秒以上才能响应。

它们始终在相同的 21 秒时间内做出反应。绝不会先快后慢。

我在 EC2 上设置了几个 Cassandra 集群,之前也遇到过这种情况,但不知道如何修复。上次,我废弃了集群并新建了一个集群,端口 9042 上的响应时间很好。

如能得到有关如何调试或修复该问题的任何帮助,我们将不胜感激,谢谢。

答案1

当前版本的 DevCenter 旨在支持作为主要场景运行(较长的)CQL 脚本(与一个接一个执行查询的交互式控制台不同)。DevCenter 使用 Cassandra 的 DataStax Java 驱动程序作为底层连接器。

对于上述场景,为了确保没有“冲突”,每次执行都会创建一个新的会话。初始化会话时,驱动程序会执行自动节点发现、创建连接池等。基本上,它会做很多准备工作。根据从客户端计算机到 EC2 节点的延迟、集群的大小以及这些节点的配置(请参阅连接要求),此初始化阶段的成本可能非常高。

您可以想象,准备所花费的时间不会占运行 DDL 脚本的很大一部分,也不会占插入/更新的很大一部分。但对于交互式场景,它将导致次优行为(您所描述的行为)

DevCenter 的下一版本将解决交互式场景并对其进行优化,以便用户体验达到您的预期。支持此场景是我们优先考虑的事情。

取自:https://stackoverflow.com/questions/21219300/cassandra-native-transport-port-9042-slow-on-ec2-machine/21224540#21224540

相关内容