首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡桑德拉WriteTimeOut异常在ConsistencyLevel.LOCAL_QUORUM

卡桑德拉WriteTimeOut异常在ConsistencyLevel.LOCAL_QUORUM
EN

Stack Overflow用户
提问于 2019-02-02 20:07:17
回答 1查看 564关注 0票数 1

在使用CassandraSinkConnector在ConsistencyLevel.LOCAL_QUORUM上给卡桑德拉写信时,我正面对着WriteTimeOutException。

我正在使用Cassandra 3.3.0版本

所以我需要帮助--如何处理和修复这个异常?

堆栈-跟踪:-

由于无法恢复的exception.org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:546) org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:302)org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:205)org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:173)org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:170)org.apache.kafka.connect.runtime.WorkerTask.run(而造成的WorkerSinkTaskWorkerTask.java:214)java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) 由: org.apache.kafka.connect.errors.ConnectException: com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra超时引起,在写入查询时保持一致性cassandra.sink.CassandraSinkTask.put(CassandraSinkTask.java:65)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:524)\n\t... LOCAL_QUORUM (需要2份副本,但只有1份确认写入)com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra在一致性查询期间超时(需要2个副本,但只有1个确认写入)\n\tat

驱动程序配置:-

代码语言:javascript
复制
String user="test";
String password="test1234";

cluster = Cluster.builder()
                        .addContactPoints("some host address")
                        .withPort("1234")
                        .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM))
                        .withCredentials(user, password)
                        .withSocketOptions(
                                new SocketOptions()
                                        .setConnectTimeoutMillis(15000)
                                        .setReadTimeoutMillis(0))
                        .build();
                session = cluster.connect();
EN

回答 1

Stack Overflow用户

发布于 2019-02-20 05:17:24

只有在DataCenter中有多个节点时才会发生这种情况。当您尝试使用LOCAL_QUORUM编写时,(Total2)+1节点应该可以编写数据。

假设在写过程中,3个节点中的有2个下降了。在这种情况下,您将得到更好的错误。

现在,一旦您看到节点,就有一种可能性:它们会向上出现,但是由于节点在随机情况下的高负载,会自动出现,&一旦加载在该节点上变得正常,它们就会自动出现。

因此,当您收到此错误时,应该在完全相同的时间检查负载、内存使用情况或CPU使用情况。理想情况下,您可以使用奥普塞特来监视这些事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54497042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档