cassandra - 是否可以为 Cassandra 集群中的节点使用不同的端口?

标签 cassandra

我们正在以编程方式创建 Cassandra 节点(自动生成 yaml 并使用 CassandraDaemon )。理想情况下,由于配置需要,我们将能够在不同主机上使用不同的端口。这可能吗(通过种子规范或自定义类的实现)?似乎种子列表只能获取IP地址而不是端口。

最佳答案

看了相关的source在 Cassandra 网络代码中,很明显这是不支持的。在 newSocket()方法,远程节点的端口是从静态 DatabaseDescriptor.getSSLStoragePort() 中获取的。 (摘录如下)。这不会为每个主机或任何 Hook 提供不同的值:

public Socket newSocket() throws IOException
{
    // zero means 'bind on any available port.'
    if (isEncryptedChannel())
    {
        return SSLFactory.getSocket(DatabaseDescriptor.getEncryptionOptions(), endPoint(), DatabaseDescriptor.getSSLStoragePort(), FBUtilities.getLocalAddress(), 0);
    }
    else {
        return new Socket(endPoint(), DatabaseDescriptor.getStoragePort(), FBUtilities.getLocalAddress(), 0);
    }
}

关于cassandra - 是否可以为 Cassandra 集群中的节点使用不同的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970741/

相关文章:

java - 尝试通过 Java + SparkSession 从 Cassandra DB 接收 JSON 数据时出错

cassandra - 在 mesos 集群上运行 cassandra

cassandra - Cassandra 1.1 批量加载期间出现异常

spring-boot - @Column (Cassandra) 注释被 Spring Boot 2.5.0 忽略(适用于 2.4.6)

cassandra - Cassandra 中的删除-更新插入-读取访问模式

database - 如何在Apache Cassandra中正确建模数据以允许通过两个唯一的不同字段进行查询

python - cql 是否支持 python 3?

hadoop - 将输入分成几个映射

amazon-web-services - 具有大量数据的 ec2 上的最佳实践 cassandra 设置

cassandra - 正确的 Cassandra 收集限制是多少?