我正在尝试在Google Compute Engine上配置Cassandra,使得群集的节点使用本地网络(使用其内部IP地址)直接相互通信,并且群集外的客户端可以与每个节点交谈。
到目前为止,我已经设法使用DataStax OpsCenter使用内部IP地址创建了一个集群,根据这些说明: https://academy.datastax.com/demos/datastax-enterprise-deployment-guide-google-compute-engine 当我使用DataStax C#驱动程序连接包含所有公共IP地址的连接字符串并检索节点列表时,我返回一个包含一个公共IP地址和其余内部IP地址的列表。这意味着驱动程序只能连接到一个节点。
我的猜测是,这是不可能的,驱动程序应该正确处理它。但是,此时需要通过(简单)更改Cassandra配置来解决问题。
我正在使用OpsCenter 5.2.1,Cassandra版本2.1.9.791。
答案 0 :(得分:2)
在Cassandra级别,您可以设置broadcast_address。
在驱动程序级别,您可以创建address translator policy,但您必须维护“私人与公共IP”地址字典。