我们以编程方式创建Cassandra节点(自动生成yaml和使用CassandraDaemon).理想情况下,由于配置需要,我们可以在不同的主机上使用不同的端口.这是可能的(通过种子规范或自定义类的实现)?似乎种子列表只能获取IP地址而不是端口.
查看Cassandra网络代码中的相关来源后,显然不支持这一点。在该newSocket()方法中,远程节点的端口是从静态中获取的DatabaseDescriptor.getSSLStoragePort()(摘录如下)。这不会为每个主机或任何挂钩提供不同的值:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |