我最近在同一个内部网络中建立了一个Cassandra ( 3.11.10
) 集群,其中AWS EC23
实例上的节点具有相同的硬件配置。他们每个人都看到了对方。通过登录它们中的每一个,您可以访问 Cassandra 数据库中的表。它与 cqlsh 配合得很好,一切看起来都很完美。3
实例类型:t3.medium
。
亚马逊机器映像 (AMI) : CentOS 8 (x86_64) - with Updates HVM
.
顺便说一句,我在每个 EC2 实例中使用了本文中的说明来设置 Cassandra。
我的配置文件 ( /etc/cassandra/default.conf/cassandra.yaml
) 如下所示:
seeds: "node1_public_ip_address, node2_public_ip_address, node3_public_ip_address"
listen_address: "node_private_ip_address"
broadcast_address: "node_public_ip_address"
start_rpc: true
rpc_address: 0.0.0.0 # default value: localhost.
broadcast_rpc_address: "node_private_ip_address" # default value: 1.2.3.4
endpoint_snitch: SimpleSnitch # I also tried Ec2Snitch, but it raise problems.
经过这些设置后,我注意到与数据库的连接过程需要很长时间(需要超过 5 秒)。我尝试通过名为DBeaver
which use的 SQL 客户端连接到 Cassandra 数据库Cassandra Java Driver 3.5.5
。我还尝试从用 Python 编写的 AWS Lambda 函数连接到 Cassandra 数据库。所以在最后一种情况下,我使用了官方的 Datastax Python Driver。
问题:这种奇怪行为的原因是什么?如何改进?