- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是我的设置:
我正在设置配置
AstyanaxContext<Keyspace> context = new AstyanaxContext.Builder()
.forCluster(service.getClusterName())
.forKeyspace(service.getKeySpaceName())
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setDiscoveryType(NodeDiscoveryType.NONE)
.setCqlVersion("3.0.0")
.setDefaultReadConsistencyLevel(consistencyLevel.getAstyanaxValue())
.setDefaultWriteConsistencyLevel(consistencyLevel.getAstyanaxValue())
)
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("b2bConnectionPool")
.setPort(service.getPort())
.setMaxConnsPerHost(5)
.setSeeds(StringUtils.join(hosts, ","))
// increase default timeout for heavy operations (milliseconds)
.setSocketTimeout(15000)
.setSSLConnectionContext(sslContext)
.setAuthenticationCredentials(credentials)
)
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());
现在有一个可重现的查询需要很长时间,最后抛出一个OperationTimeoutException
:
com.netflix.astyanax.connectionpool.exceptions.OperationTimeoutException: OperationTimeoutException: [host=myhost(myip):13260, latency=10001(40007), attempts=4]TimedOutException()
at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:171) ~[astyanax-thrift-1.56.49.jar:na]
at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) ~[astyanax-thrift-1.56.49.jar:na]
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$1$2.execute(ThriftColumnFamilyQueryImpl.java:190) ~[astyanax-thrift-1.56.49.jar:na]
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$1$2.execute(ThriftColumnFamilyQueryImpl.java:182) ~[astyanax-thrift-1.56.49.jar:na]
at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection.execute(ThriftSyncConnectionFactoryImpl.java:151) ~[astyanax-thrift-1.56.49.jar:na]
at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:119) ~[astyanax-core-1.56.49.jar:na]
at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:338) ~[astyanax-core-1.56.49.jar:na]
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$1.execute(ThriftColumnFamilyQueryImpl.java:180) ~[astyanax-thrift-1.56.49.jar:na]
异常消息显示“latency=10001”,我认为这应该是配置为 15000 毫秒的套接字超时,但显然不是。如何增加 astyanax 中查询操作的超时时间?
最佳答案
在尝试查询具有更大数据的节点时,我遇到了类似的超时异常。我在 cassandra.yaml 中修改了这 4 个值,它解决了所有超时错误。
协调器应等待读操作完成多长时间read_request_timeout_in_ms: 15000
协调器应等待 seq 或索引扫描完成多长时间range_request_timeout_in_ms: 30000
协调器应等待写入完成多长时间write_request_timeout_in_ms: 30000
协调器应等待计数器写入完成多长时间counter_write_request_timeout_in_ms: 15000
注意:您需要在集群中的所有节点中执行此操作,并且还需要在所有节点中重新启动 Cassandra。
关于java - Astyanax 不遵守配置的套接字超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825146/
我是astyanax的新手,尝试了一些示例程序并遇到此错误。这是一个简单的编写,看起来像是在做一些基本错误的事情。不使用复合键。 Caused by: InvalidRequestException(
尝试编写一个查询,该查询将使用 astyanax 客户端和 RowSliceQuery 对列族中的所有行进行分页。 keyspace.prepareQuery(COLUMN_FAMILY).getKe
我正在尝试使用 Astyanax 驱动程序列出 Cassandra 中的列族。它列出了键空间,但输出中缺少许多列族。 我有一个简单的程序: import com.netflix.astyanax.As
我最近开始使用Cassandra在我们的Production environment 。我们有一个24 node cluster与 replication factor of 4 。含义2 copie
这是我的设置: 4 个节点 Cassandra 1.2.19 Astyanax 1.56.49 我正在设置配置 AstyanaxContext context = new AstyanaxContex
我正在使用 Astyanax 客户端从 Cassandra 数据库读取数据。 我在 Cassandra 数据库中有大约一百万行。我有一个十字colocation centre具有四个节点的集群。 这是
如何使用 astyanax 客户端创建带有复合键的表。现在我已经用 cqlsh -3 创建了它,这就是它在 cli 中的样子: [default@KS] describe my_cf; Col
我正在尝试将 Astyanax 用于带有 Java 的 Cassandra。我在 https://github.com/Netflix/astyanax/wiki/Getting-Started 尝试
我编写了一些相当简单的代码来试验 astyanax。当与本地主机上的单节点 Cassandra 数据库通信时,它工作正常,但是当我将相同的架构写入两节点集群(绝对可以从我的主机访问)时,我得到一个 T
我最近开始使用 Cassandra 数据库,并且正在考虑使用 Netflix 客户端 astyanax。我进入了这个页面- https://github.com/Netflix/astyanax 我想
我从事的项目使用astyanax驱动程序来访问Cassandra。我想实现一个异步操作: MutationBatch m; //… ListenableFuture> lf = m.executeAs
Astyanax 通过其 AnnotatedCompositeSerializer 支持 Cassandra 中的复合列。我有一个包含 3 个字段的复合列名称的列族,类似于此示例,改编自 Astyan
过去几周我们一直在尝试评估不同的 Cassandra 客户端,所以现在看来我们将继续使用 Netflix/Astyanax 客户端。 我们正在尝试优化 Cassandra 数据库,主要是为了读
我正在尝试使用 Astyanax 客户端插入 Cassandra 列族中的复合列。下面是我在 Cassandra 中的列族。 create column family USER_DATA with k
我正在开发一个项目,其中我需要使用 Astyanax 客户端删除 Cassandra 中除一列及其数据之外的所有列及其数据。 我有一个如下所示的动态列族,并且该列族中已经有几百万条记录。 create
您好,我正在使用 Astyanax 客户端在我的程序中使用 CQL 访问 Cassandra。我遇到的问题是,当我执行查询时,OperationResult 的行数设置为最大值 10 000。我需要根
我使用 astyanax 连接池定义如下: ipSeeds = "LOAD_BALANCER_HOST:9160"; conPool.setSeeds(ipSeeds) .setDiscoveryTy
我正在尝试从具有 double 类型列的Cassandra表中获取 double 值。我已经使用CQL3语法创建了表: CREATE TABLE data_double ( datetime
我想将 Astyanax 包含在我的项目中。我从 github checkout 代码并用“gradlew build”编译它。我不熟悉gradle。 我将 Astyanx jar 文件手动包含到我的
有没有办法检查当前上下文中是否存在 Astyanax Keyspace?现在我的代码执行以下操作: keyspace = context.getClient(); try{ keyspace.d
我是一名优秀的程序员,十分优秀!