简体   繁体   English

Cassandra-unit:java.io.IOException:由peer重置连接

[英]Cassandra-unit : java.io.IOException: Connection reset by peer

I'm trying out Embedded Cassandra using cassandra-unit and ran into the following exception, 我正在使用cassandra-unit尝试使用Embedded Cassandra并遇到以下异常,

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 (java.io.IOException: Connection reset by peer))))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:195)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:78)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1029)
at com.datastax.driver.core.Cluster.init(Cluster.java:120)
at com.datastax.driver.core.SessionManager.init(SessionManager.java:61)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:416)
at com.datastax.driver.core.SessionManager.executeQuery(SessionManager.java:453)
at com.datastax.driver.core.SessionManager.executeAsync(SessionManager.java:103)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:91)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:83)
at com.me.cc.bma.cassandra.test.main(test.java:30)    

for the following code, 对于以下代码,

import com.datastax.driver.core.Cluster;
import org.cassandraunit.CQLDataLoader;
import org.cassandraunit.dataset.CQLDataSet;
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet;
import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
import org.apache.cassandra.config.DatabaseDescriptor;
import com.datastax.driver.core.ResultSet;
import static com.datastax.driver.core.Cluster.builder;
import com.datastax.driver.core.Session;


public class Test{

    static Session session;

    public static void main(String args[]) throws Exception {

          EmbeddedCassandraServerHelper.startEmbeddedCassandra(500000L);
          Cluster.Builder clusterBuilder = builder().addContactPoint("127.0.0.1").withClusterName(EmbeddedCassandraServerHelper.getClusterName()).withPort(7010);
          Cluster cluster = clusterBuilder.build();
          session = cluster.newSession();
          try {
               session.execute("CREATE KEYSPACE ci WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}");
               session = cluster.connect("ci");
               session.execute("CREATE TABLE login (l_id int)");
               session.execute("insert into login(l_id) values(1)");
               ResultSet res = session.execute("select * from login");
               System.out.println(res.all());
          }
          catch (Exception ex) {
               ex.printStackTrace();
          }         
     }

}

Versions: 版本:

  • cassandra-driver-core: 3.5.0 cassandra-driver-core:3.5.0
  • Cassandra-unit: 3.5.0.1 Cassandra单位:3.5.0.1

Any fix would be appreciated! 任何修复将不胜感激!

I faced the same issue some time back and found the artifact versions were incorrect and non-compatible due to conflict in maven. 我在一段时间后面临同样的问题,发现由于maven冲突,工件版本不正确且不兼容。

I am using below versions and works fine for me: 我正在使用以下版本,并为我工作正常:

Cassandra-all: 2.1.14 Cassandra-unit: 2.1.9.2 Cassandra-driver-core: 3.3.2 Cassandra-all:2.1.14 Cassandra-unit:2.1.9.2 Cassandra-driver-core:3.3.2

Also there is a cool way to start embedded Cassandra using @EmbeddedCassandra Annotation which does the base work for you. 还有一种很酷的方法可以使用@EmbeddedCassandra Annotation启动嵌入式Cassandra,它可以帮助您完成基础工作。

Hope this works for you too. 希望这也适合你。

change port to 9142 the default cassndra native transport port. 将端口更改为9142默认的cassndra本地传输端口。

Cluster.builder().addContactPoint("127.0.0.1").withClusterName(EmbeddedCassandraServerHelper.getClusterName()).withPort(9142);

Also specify PRIMARY KEY in your create table query 还要在create table query中指定PRIMARY KEY

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.io.IOException:由peer重置连接 - java.io.IOException: Connection reset by peer 什么时候抛出“java.io.IOException:Connection reset by peer”? - When is "java.io.IOException:Connection reset by peer" thrown? ElasticSearch RestHighLevelClient 抛出 java.io.IOException: Connection reset by peer - ElasticSearch RestHighLevelClient throws java.io.IOException: Connection reset by peer 什么时候出现java.io.IOException:用Netty抛出的对等重置连接? - When is java.io.IOException: Connection reset by peer thrown with Netty? 异步http客户端中的对等方重置java.io.IOException连接 - java.io.IOException connection reset by peer in asynchronous http client SSTable加载器流式传输失败,给出java.io.IOException:对等体重置连接 - SSTable loader streaming failed giving java.io.IOException: Connection reset by peer java.io.IOException:在Weblogic服务器上使用AsyncRestTemplate时,连接被对等方重置 - java.io.IOException: Connection reset by peer' when using AsyncRestTemplate on weblogic server Flume:来自下游的意外异常。 java.io.IOException:对等重置连接 - Flume : Unexpected exception from downstream. java.io.IOException: Connection reset by peer BrowserMob代理警告和异常java.io.IOException:对等重置连接 - BrowserMob Proxy warning and exception java.io.IOException: Connection reset by peer 间歇性 java.io.IOException:从 Amazon EC2 内部的 jdk.internal.net.http.HttpClientImpl.send 中的连接重置(不是对等连接重置) - Intermittent java.io.IOException: Connection reset (not connection reset by peer) in jdk.internal.net.http.HttpClientImpl.send from inside Amazon EC2
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM