最近、Cassandra データベースの使用を開始しました。Netflix クライアントを使用して、Cassandra データベースからデータを取り込み、読み取ります。
4 つのノードを持つ単一のクラスターがあります。このようなキースペースを作成しました-
create keyspace profilekeyspace
with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options = {DC2 : 1, DC1 : 1}
and durable_writes = true;
そして、私の列ファミリー名は-profile_columnfamily
これらは私の 4 つのノードです。
lp-host01.vip.slc.qa.host.com:9160
lp-host02.vip.slc.qa.host.com:9160
lp-host03.vip.phx.qa.host.com:9160
lp-host04.vip.phx.qa.host.com:9160
現在、上記のノードを 1 つだけ使用して、Cassandra データベースに接続し、データを入力しています。しかし、私の DBA によると、接続するには 4 つのノードすべてを使用する必要があります。
private AstyanaxContext<Keyspace> context;
private CassandraAstyanaxConnection() {
context = new AstyanaxContext.Builder()
.forCluster("TEST CLUSTER")
.forKeyspace("PROFILE")
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)
)
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool")
.setPort(9160)
.setMaxConnsPerHost(1)
.setSeeds("lp-host01.vip.slc.qa.host.com:9160:9160")//using only node from above to make the connection
)
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setCqlVersion("3.0.0")
.setTargetCassandraVersion("1.2"))
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());
context.start();
keyspace = context.getEntity();
emp_cf = ColumnFamily.newColumnFamily(
"PROFILE_COLUMNFAMILY",
StringSerializer.get(),
StringSerializer.get());
}
Netflixクライアントを使用して接続を確立するために4つのノードすべてを使用する方法がわかりませんか? 誰でもそれで私を助けることができますか?
助けてくれてありがとう。