簡體   English   中英

使用Cassandra Java驅動程序播放2.x-錯誤com.datastax.driver.core.Session-為xxx.xx創建池時出錯,但返回響應

[英]Play 2.x with Cassandra Java Driver - ERROR com.datastax.driver.core.Session - Error creating pool to xxx.xx, but return responses

設定

  • Cassandra Java驅動程序:2.1.3、2.1.4、2.0.0(全部嘗試)
  • Cassandra群集:[cqlsh 5.0.1 | 卡桑德拉2.1.0 | CQL規范3.2.0 | 本機協議v3]
  • 播放2.2.3

訪問簡單表時,出現上述設置問題。 但是我也得到響應,就像在日志中一樣。 我在EC2 2節點單數據中心上運行服務器。 還嘗試了EC2 AMI,但結果相同。 此外,這是一個非常新穎的設置,並且服務器上還沒有負載。

Cassandra配置

rpc_address : 0.0.0.0
listen_address : internal_ip
broadcast_address: public_ip
start_native_transport: true
native_transport_port: 9042

程式碼片段

        SocketOptions options = new SocketOptions();
        options.setConnectTimeoutMillis(10000);
        options.setReadTimeoutMillis(10000);

        cluster = Cluster.builder().addContactPoints("public_ip1","public_ip2").withPort(9042).withSocketOptions(options).withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
                .withReconnectionPolicy(new ConstantReconnectionPolicy(1000L)).build();

         Metadata metadata = cluster.getMetadata();
         System.out.printf("Connected to cluster: %s\n", 
                metadata.getClusterName());

        session = cluster.connect();

        // Use select to get the user we just entered
        ResultSet results = session.execute("SELECT * FROM redmart.user_pick_rate");
        for (Row row : results) {
            System.out.println( "user_id : " + row.getInt("user_id") + " pick_rate : " + row.getDouble("pick_rate"));
        }

根據以下異常,它總是向Java客戶端中的一個節點抱怨“在/ internal_ip:9042創建池時出錯”。 例如,如果我有node1,node2。 在javaclient中,如果我僅使用node1創建集群,它將抱怨無法創建到(node2的內部ip)的池,如果我使用節點2創建集群,它將抱怨無法創建到(node1的內部ip)的池。 如果同時指定這兩個選項,則始終會在向其中一個節點創建池時顯示錯誤。 我也嘗試了不同的netty版本。

我在這里看到了類似的未解決問題,但就我而言,我也得到了回應。

任何見解都表示贊賞。

11:59:31.791 [Cassandra Java Driver worker-0] ERROR com.datastax.driver.core.Session -     Error creating pool to /10.167.135.180:9042
com.datastax.driver.core.TransportException: [/10.167.135.180:9042] Cannot connect

at com.datastax.driver.core.Connection.<init>(Connection.java:104) ~     
at com.datastax.driver.core.SingleConnectionPool.<init>(SingleConnectionPool.java:76) ~[cassandra-driver-core-2.1.4.jar:na]
at   com.datastax.driver.core.HostConnectionPool.newInstance(HostConnectionPool.java:35) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.driver.core.SessionManager.replacePool(SessionManager.java:271) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.driver.core.SessionManager.access$400(SessionManager.java:40) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.driver.core.SessionManager$3.call(SessionManager.java:308) [cassandra-driver-core-2.1.4.jar:na]
at com.datastax.driver.core.SessionManager$3.call(SessionManager.java:300) [cassandra-driver-core-2.1.4.jar:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_71]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_71]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
Caused by: com.datastax.shaded.netty.channel.ConnectTimeoutException: connection timed out: /10.167.135.180:9042
at com.datastax.shaded.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.shaded.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.shaded.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.shaded.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.shaded.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) ~[cassandra-driver-core-2.1.4.jar:na]
at com.datastax.shaded.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) ~[cassandra-driver-core-2.1.4.jar:na]
... 3 common frames omitted
user_id : 6555 pick_rate : 0.4494318731691269
user_id : 1000 pick_rate : 7.132659816872288E-4

嘗試使用rpc_address : 0.0.0.0以外的其他rpc_address : 0.0.0.0

在我頭頂上,這阻止了本機客戶端。 嘗試使用私有IP(不確定它是私有IP還是非公共IP,不過您可以同時測試兩者)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM