我正在使用从谷歌代码获得的 Cassandra CQL/JDBC 驱动程序,但它似乎不允许我提供集群名称 - 有没有办法?
我使用集群名称来确保我不会对实时系统运行命令,它与我的开发系统具有不同的集群名称。
编辑:澄清一下,我有两个完全独立的 Cassandra 集群,一个用于测试,一个用于测试。它们具有不同的集群名称,以确保我不会意外地在实时集群上运行用于测试集群的测试代码。因此,我需要使用的任何客户端都必须让我设置一个集群名称。赫克托这样做。
您必须在两个不同的集群上镜像数据。您不能使用不同的名称访问同一个集群。
要重命名您的集群(从默认的“测试集群”),您可以编辑location/of/cassandra/conf/cassandra.yaml
. 最重要的是,如果您需要更多详细信息,请查看 datastax配置文档和说明。
没有用于检查 Cassandra 客户端的集群名称的内置保护。它旨在确保来自不同集群的节点不会尝试连接在一起,但不能确保客户端连接到正确的集群。虽然可以将此检查添加到客户端(因为集群名称已暴露给客户端),但我不知道有任何客户端这样做。
我强烈建议您在不同的环境中设置防火墙以避免这种错误。如果这不可能,您应该选择不同的端口以避免混淆。使用 cassandra.yaml 中的“rpc_port”设置更改此设置。