cassandra节点可以高度移植吗?

问题描述 投票:0回答:1

环境:

Nodes: 5
Replication: 5
Consistency: 1

代码:

using System;
using Cassandra;

    namespace CassandraSelectTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                var cluster = Cluster.Builder()
                .AddContactPoints("192.168.0.18","192.168.0.21","192.168.0.22","192.168.0.23","192.168.0.24")
                .WithPort(9042)
                .Build();

                var session = cluster.Connect("test_keyspace");

                var results = session.Execute("SELECT * FROM test_table");

                foreach(var result in results)
                {
                    Console.WriteLine(result.GetValue<string>("col1"));
                }

                Console.WriteLine($"Finished");
                Console.ReadKey();
            }
        }
    }

问题:

某些节点在理想情况下需要具有高度的可移植性,这将导致该节点的IP地址在其他位置时发生变化,然后在回到其原始位置时又变回其常规IP地址。每周发生几次。


问题:

是否可以将单个节点配置为具有多个IP地址或自动更改的动态地址?

c# cassandra datastax distributed-database
1个回答
0
投票

我认为在这种情况下,驱动程序将收到协议事件,这将使驱动程序刷新群集的拓扑。只要system.peers表中节点的IP是最新的,即您在节点的cassandra.yml上更新broadcast_rpc_address /rpc_address/ listen_address,驱动程序就应该能够注意到旧IP为该表中更长的时间(这将删除旧主机),并且有一个新的IP(它将添加新主机)。

如果控制连接无法重新连接到本地元数据缓存上的任何IP(例如,如果所有节点都关闭并同时更改其IP地址),则驱动程序将无法重新连接。 There's this open ticket将解决此问题,只要用户提供主机名作为联系点(并且DNS解析返回更新的IP)。

© www.soinside.com 2019 - 2024. All rights reserved.