0

最近、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つのノードすべてを使用する方法がわかりませんか? 誰でもそれで私を助けることができますか?

助けてくれてありがとう。

4

1 に答える 1

2

シード リストはカンマ区切りのリストです。したがって、 setSeeds 呼び出しに残りを追加するだけです。

setSeeds("server1:9160,server2:9160,server3:9160")

また、Astyanax はリング内の他のサーバーを検出します。他のすべてを検出するには 1 つをリストするだけで済みますが、そのサーバーがダウンした場合は、さらにリストする必要があります。これは、cassandra.yaml のシード リストに非常によく似ています。

行にポートを複製したことに注意してください。

.setSeeds("lp-host01.vip.slc.qa.host.com:9160:9160")

于 2013-04-23T18:57:15.673 に答える