プログラムで 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 に答える