3

com.datastax.cassandra:cassandra-driver-core:2.0.0-beta2 を org.apache.cassandra:cassandra-all:1.2.1 で使用できるかどうか疑問に思っています。cassandra-maven-plugin:1.2.1-1 (org.apache.cassandra:cassandra-all:1.2.1 を使用) を使用しています。

start_native_transport: true
native_transport_port: ${cassandra.nativePort}

プラグインのyamlプロパティに。ポートに telnet で正常に接続できます。

ただし、次のコードで接続しようとすると、

// Ports.NATIVE has the same value as "${cassandra.nativePort}" above
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1")
    .withPort(Ports.NATIVE).build();
Session session = cluster.connect();

次の例外が発生します。

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /127.0.0.1 (com.datastax.driver.core.ConnectionException: [/127.0.0.1] Unexpected error during transport initialization (com.datastax.driver.core.TransportException: [/127.0.0.1] Unexpected exception triggered (com.datastax.driver.core.exceptions.DriverInternalError: Server response from unsupported protocol version: 1))))
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:179)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:77)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:868)
    at com.datastax.driver.core.Cluster$Manager.newSession(Cluster.java:888)
    at com.datastax.driver.core.Cluster$Manager.access$200(Cluster.java:792)
    at com.datastax.driver.core.Cluster.connect(Cluster.java:155)

私はそれの要点だと思いますServer response from unsupported protocol version: 1

これは Cassandra 1.2.1 で 2.0.0-beta2 ドライバーを使用できないということですか? ドライバー/サーバーの互換性マトリックスはどこにありますか?

私はすでにこれでほぼ一日を燃やしました。

ありがとう、マシュー

4

2 に答える 2

12

はい、互換性がありません。java-driver 2.0 の要件から:

ドライバーは Casandra のネイティブ プロトコルを使用し、このバージョン 2.0 はそのプロトコルの 2 番目のバージョンを使用します。そのため、このバージョンのドライバーには 2.0 以上のバージョンの Cassandra が必要です (Cassandra 1.2 の場合は、バージョン 1.0 のドライバーを使用してください)。

1.0 にダウングレードしてみてください。最新バージョンは 1.0.4 です。

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-parent</artifactId>
  <version>1.0.4</version>
</dependency>
于 2013-10-18T09:07:52.357 に答える
-1

ドライバー バージョン 2.0 以降のデフォルトのプロトコル レベルは 2 です。Cassandra の古いバージョン (1.2 など) を使用するには、プロトコル レベルを 1 に設定する必要があります。

プロトコル バージョンは、次のような Cluster.withProtocolVersion メソッドを使用して新しいドライバーに設定できます。

クラスタ クラスタ = Cluster.builder().addContactPoint("127.0.0.1").withProtocolVersion(1) .withPort(Ports.NATIVE).build();

于 2014-08-28T15:08:27.383 に答える