datastax-java-driver 相关问题

Apache Cassandra的Java客户端驱动程序。此驱动程序仅使用Cassandra查询语言版本3(CQL3)和Cassandra的二进制协议。

有可能立即对远程数据中心进行投机重试? 我的Cassandra群集托管在两个数据中心上。它们不仅被某些延迟隔开了,有时它们都可能暂时无法使用。 每个_quorum不是一个选项,因为它是b ...

可以配置Java驱动程序以对远程群集进行立即进行投机重试? 据我了解,这将把请求发送给数据中心,并且一旦任何一个返回(通常是本地的);驾驶员将返回。

回答 1 投票 0

Java 驱动程序不断重新连接到旧的 Cassandra pod IP,但重启后 pod 具有新的 IP

我在 Kubernetes 环境中部署了一个 Java 应用程序作为 pod,以及具有 3 节点集群的 Cassandra。我正在使用 Cassandra 服务 FQDN 连接到 Cassandra。由于卡桑德拉...

回答 1 投票 0

如何将 Spring 的 Cassandra Java 驱动程序 3.11.3 升级到 4.0.0?

我应该将我的 Cassandra 版本升级到 4.0.0,但每当我这样做时,我都会遇到这样的许多问题: 错误:错误:无法访问 TypeCodec, 错误:找不到符号 而且我...

回答 1 投票 0

从 IntelliJ IDE 连接返回“由于您提供了显式接触点,因此必须显式设置本地 DC”

我在从 intellij IDE 连接到 cassandra 时遇到了本地 DC 问题。它表示必须显式设置本地 DC。我提供以下详细信息 主机:cassandra.prod-az-southcentralus-30...

回答 1 投票 0

在 Windows 上使用单线程 Java 客户端时,单节点集群会忽略 LWT 更新

我有以下设置: cassandra 4.1.7 在 Ubuntu 主机上的 docker 中运行,单节点 带 datastax 驱动程序 3.11.5、jdk 11.0.25 的 java 客户端 代码: 公共类主要{ 公共静态语音...

回答 1 投票 0

如何在 Cassandra Java 驱动程序 4.17.0 中使用 QueryBuilder 添加 TTL 变量

我想生成类似“INSERT INTO table1 (id, data) VALUES (:id, :data) USING TTL :ttl”的查询 使用 Datastax Cassandra 驱动程序 QueryBuilder.insertInto()。 其他相关问题太o...

回答 1 投票 0

如何添加 USING TTL 来使用 Datastax querybuilder 进行查询(4.17.0 Java 驱动程序)

我想生成类似“INSERT INTO table1 (id, data) VALUES (:id, :data) USING TTL :ttl”的查询 使用 Datastax Cassandra 驱动程序 QueryBuilder.insertInto()。 其他相关问题太o...

回答 1 投票 0

如何在使用命令行时通过 CQL 获取当前时间戳?

我正在尝试从命令行插入我的 CQL 表。我能够插入所有内容。但我想知道我是否有时间戳列,那么如何从

回答 4 投票 0

删除不能立即在单节点 Cassandra 数据库上起作用

我的问题是我没有在单节点 Cassandra 上立即删除。 当我在 Docker 容器中运行 Cassandra 时,该问题仅出现在 Windows 上。 Linux上没有问题。我正在使用

回答 1 投票 0

Cassandra datastax 3.11.5 兼容性

我使用了 datastax 驱动程序 3.11.5 版本来连接到 4.x 版本中的 cassadra 实例。这兼容吗? 另外,当我使用 cassandra-unit 版本 4.3.1 中的 EmbeddedCassandraServiceHelper 时...

回答 1 投票 0

忽略编解码器,因为它与之前生成的编解码器冲突

我正在尝试注册自定义代码(用于地图),如下所示 val 会话:CqlSession = CassandraConnector.apply(spark.sparkContext).openSession() val codecRegistry:MutableCodecRegistry = 会话。

回答 1 投票 0

Apache Cassandra 4.x java 驱动程序兼容性

想要将 Cassandra 从 3.3 升级到 4.0.6。该数据库由运行 Datastax 驱动程序 3.2 的 Java 应用程序使用,某些应用程序使用 Dropwizard cassandra 驱动程序版本 4.0。 我会...

回答 2 投票 0

Java 驱动程序 v3.6 与 Cassandra 4.x 兼容吗?

我写信是为了检查 Datastax cassandra-driver-core 3.6 与 Cassandra 版本 4 的兼容性。 可以请您推荐一下吗? 下面是当前正在使用的依赖项,

回答 3 投票 0

无法使用错误提供的选项连接到远程 Cassandra 数据中心

我正在尝试使用 Cassandra CqlSession 类连接到我的两个远程联系点。我正在使用 spring boot 3.3.3 和 spring-data-cassandra 4.3.3。以下是 datastax 驱动程序依赖项...

回答 1 投票 0

Spring Boot Cassandra 连接问题:无法连接到 DataStax Astra DB

我正在开发一个 Spring Boot 应用程序,该应用程序使用 Astra 安全捆绑包与 DataStax Astra DB 集成。但是,在尝试建立与

回答 1 投票 0

Cassandra Java 驱动程序与 JDK 21 兼容吗?

cassandra java 驱动程序 4.17 与 jdk 21 兼容吗?我们计划将服务器迁移到 java 21,并且我们正在使用 cassandra 客户端。如果不支持这一点,我们就不行。 那里...

回答 1 投票 0

扫描 Cassandra 表时如何增加提取大小以减少网络调用数量?

我正在使用 datastax java 驱动程序版本 4.15。我已阅读分页文档。 我的 application.conf 如下所示 datastax-java-驱动程序 { basic.contact-points = [ ":<...

回答 1 投票 0

批处理语句返回“未配置的表”错误

当我执行批处理语句时,我看到未配置的表错误(不一致)。 在批处理语句中,我有几个准备语句(10) 很少有准备语句(其中 2 个)...

回答 1 投票 0

Datastax Java 驱动程序 4.x:如何获取集群名称?

将 cassandra 的 java 驱动程序从 3.7 升级到 4.0(或更高版本)后 - 我无法解析集群名称。 我需要我的应用程序连接到的 cassandra 集群的名称...

回答 1 投票 0

使用分页时发生 Cassandra DriverTimeoutException

我有一个从 4 个 Cassandra 表读取数据的应用程序,4 个表位于不同的集群中,并且我通过 datastax java 驱动程序进行 4 个会话 我有一个从 4 个 Cassandra 表读取的应用程序,4 个表位于不同的集群中,并且我通过 datastax java 驱动程序进行 4 个会话 <dependency> <groupId>com.datastax.oss</groupId> <artifactId>java-driver-core</artifactId> <version>4.17.0</version> </dependency> 我正在第一个表上进行单行获取(点查询),并在其他 3 个表上使用分页。对第二个表进行查询的结果将用于对第三个和第四个表的查询。 表4主键-(id,store) store 是聚类键,id 是分区键 从表3中获得了一堆商店。 第四个集群的 Cassandra 会话详细信息是 - DriverConfigLoader.programmaticBuilder() .withLong(DefaultDriverOption.REQUEST_PAGE_SIZE, 1000) .withLong(DefaultDriverOption.CONNECTION_POOL_LOCAL_SIZE, 4) .withLong(DefaultDriverOption.CONNECTION_MAX_REQUESTS, 8192) .withBoolean(DefaultDriverOption.SOCKET_KEEP_ALIVE, true) .withBoolean(DefaultDriverOption.SOCKET_REUSE_ADDRESS, true) .withBoolean(DefaultDriverOption.METADATA_SCHEMA_ENABLED, false) .withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(30)) .withString(DefaultDriverOption.REQUEST_CONSISTENCY, DefaultConsistencyLevel.LOCAL_ONE.toString()) .build(); 第四张表的代码如下所示 return cqlSession.executeAsync(ps.bind(id)) .thenCompose(rs -> { Map<String, Set<String>> finalMap = new HashMap<>(); return processRows(rs, finalMap, listedStores, limoEligStartTime); }) .exceptionally(ex -> { // do something, record metrics return Collections.emptyMap(); ` }); processRows 函数看起来像 private CompletionStage<Map<String, Set<String>>> processRows(AsyncResultSet rs, Map<String, Set<String>> finalMap, Set<String> thirdTableResult, long resultGetTime) { METRICS.recordExecutionTime("LimoEligibilityQueryTime", System.currentTimeMillis() - resultGetTime); Iterable<Row> iterable = rs.currentPage(); for (Row row : iterable) { try { if (row != null) { // do something } else { //record metrics for row not found } } catch (IOException ex) { //record exception } } if (rs.hasMorePages()) { return rs.fetchNextPage() .thenCompose(asyncRs -> processRows(rs, finalMap, thirdTableResult, limoEligRowsProcessingCompletionTime)) .exceptionally(ex -> { // record exception return Collections.emptyMap(); }); } else { return CompletableFuture.completedFuture(finalMap); } } 这将返回以下异常: Exception occurred in table future - java.util.concurrent.CompletionException: com.datastax.oss.driver.api.core.DriverTimeoutException: 我尝试过调整页面大小,但不起作用。表3和表4是并行查询的。我在表 2,3,4 上使用分页。 对于表 4,我面临查询问题 驱动程序是否有可能因为同时对两个不同集群进行查询而超时? 尝试了以下方法,但没有任何效果 调整页面大小 - 100 至 1000 增加每台主机的连接数 - 4 每个连接的最大请求 - 尝试从 2048 到 8192 当我使用表 3 的结果从表 4 中获取单行时(从表 3 中获得了一堆存储),查询工作完全正常,我没有得到任何异常,但这增加了读取吞吐量cassandra 集群(这不是我们想要的) DriverTimeoutException 表示您正在连接的集群无法及时满足您的请求。也就是说,它已过载,无法在超时之前响应请求。 您的 Cassandra 集群基本上是在说“我跟不上”。 可能是您的代码使集群过载,通过发送大量请求有效地创建了 DDOS 攻击,也可能是您的集群因其他原因感觉不佳。无论哪种方式,都需要在服务器端识别问题。 如果是您的代码迫使节点提交(这可能考虑到您正在运行异步),那么您可以选择减慢您的请求(例如通过在服务器或客户端上进行限制)或确保您的请求集群可以处理您发送的请求数量。

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.