如果DNS发生更改,DataStax群集类是否会从提供给builder.addContactPoint()的主机名中刷新IP地址?

如果DNS发生更改,DataStax群集类是否会从提供给builder.addContactPoint()的主机名中刷新IP地址?,dns,cassandra,datastax,datastax-java-driver,Dns,Cassandra,Datastax,Datastax Java Driver,我有一个问题,一旦设置了主机名,集群将不会更新它的IP,即使在DNS更改中也是如此。 或者,有什么推荐的方法可以使应用程序适应这样一个事实:更多节点可以添加到DNS循环中,而旧节点可以被取消使用?我对Astyanax驱动程序也有同样的想法。对我来说,它似乎是这样工作的: DNS名称仅在创建到群集的初始连接时使用。此时,驱动程序收集有关群集节点的数据。此信息已按IP地址保存,不再使用DNS名称。集群拓扑中的子顺序更改也使用IP地址传播到客户端 因此,当您向集群添加更多节点时,实际上不必为它们分

我有一个问题,一旦设置了主机名,集群将不会更新它的IP,即使在DNS更改中也是如此。
或者,有什么推荐的方法可以使应用程序适应这样一个事实:更多节点可以添加到DNS循环中,而旧节点可以被取消使用?

我对Astyanax驱动程序也有同样的想法。对我来说,它似乎是这样工作的:

  • DNS名称仅在创建到群集的初始连接时使用。此时,驱动程序收集有关群集节点的数据。此信息已按IP地址保存,不再使用DNS名称。集群拓扑中的子顺序更改也使用IP地址传播到客户端
因此,当您向集群添加更多节点时,实际上不必为它们分配域名。只需向集群添加一个节点,即可将其IP地址传播到集群拓扑表中,此信息分布在所有集群成员和智能客户端(如Java驱动程序)之间(某些第三方客户端可能没有此信息,只使用种子节点向其传递查询)。 当您停用节点时,其工作方式相同。只有所有集群节点和智能客户端接收到具有特定IP的节点不再位于集群中的信息。它甚至可以是初始种子节点

->域名仅适用于尚未建立群集连接的客户端

如果您确实需要切换IP,您必须:

  • 使用新IP连接节点
  • 使用旧IP停用节点
  • 将DNS名称分配给新IP