プログラムで Cassandra ノードを作成しています (自動生成 yaml と を使用CassandraDaemon)。理想的には、構成の必要性により、異なるホストで異なるポートを使用できるようになります。これは可能ですか (シード仕様またはカスタム クラスの実装を介して)? シード リストは IP アドレスのみを取得でき、ポートは取得できないようです。
			
			1794 次
		
2 に答える
            3        
        
		
Cassandra ネットワーク コードの関連ソースを見ると、これがサポートされていないことがわかります。メソッドではnewSocket()、リモート ノードのポートは static から取得されます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);
    }
}
    于 2013-06-11T16:03:36.633   に答える
    
    
            2        
        
		
https://github.com/pcmanus/ccmを見てください。同じノードで複数の cassandra インスタンスを使用しています。彼らがどのようにそれを行っているかを見ることができます。
于 2013-06-07T01:13:08.487   に答える