7

プログラムで Cassandra ノードを作成しています (自動生成 yaml と を使用CassandraDaemon)。理想的には、構成の必要性により、異なるホストで異なるポートを使用できるようになります。これは可能ですか (シード仕様またはカスタム クラスの実装を介して)? シード リストは IP アドレスのみを取得でき、ポートは取得できないようです。

4

2 に答える 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 に答える