Datastax Java 驱动程序 4.6.1 无法使用 application.conf 覆盖配置

Posted

技术标签:

【中文标题】Datastax Java 驱动程序 4.6.1 无法使用 application.conf 覆盖配置【英文标题】:Datastax Java driver 4.6.1 unable to override configurations with application.conf 【发布时间】:2021-01-29 11:29:17 【问题描述】:

我在我的 src.main.resources 文件夹中创建了 application.conf:

datastax-java-driver 
  basic 
    request 
      default-idempotence = true
      timeout = 5
    
  
  advanced 
    connection 
      max-requests-per-connection = 32767
    
  

这些只是一些测试属性,我认为这些属性没有被应用,因为当我在调试器中四处寻找时,默认值没有改变。

任何想法可能发生什么或如何检查自定义属性是否正在应用?

【问题讨论】:

【参考方案1】:

如果您使用 Maven,那么您已将其正确放置在 src/main/resources 文件夹中。否则,它需要进入应用程序类路径。

【讨论】:

【参考方案2】:

@ThatHansel,

您能否显示类似于下面的输出以了解您从程序中获得的值?

我有一个利用 DataStax Java 驱动程序4.9.0 的示例类,我正在打印这些值。我在此演示中使用默认设置。

import java.net.InetSocketAddress;

import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.config.DefaultDriverOption;

public class DriverConfigsDemo 
    public static void main(String... args) 
    try (CqlSession session = CqlSession.builder().addContactPoint(new InetSocketAddress("localhost", 9042))
        .withLocalDatacenter("dc1").build()) // update to match your environment
        System.out.println("Driver Configs - Idempotence: " + session.getContext().getConfig().getDefaultProfile().getString(DefaultDriverOption.REQUEST_DEFAULT_IDEMPOTENCE));
        System.out.println("Driver Configs -     Timeout: " + session.getContext().getConfig().getDefaultProfile().getDuration(DefaultDriverOption.REQUEST_TIMEOUT));
    
    

当我运行这个程序时,我得到以下信息,您还应该在您的情况下看到 类似 (即幂等性为 true 和超时为 PT5S),

09:56:10.019 [main] INFO  c.d.o.d.i.c.DefaultMavenCoordinates - DataStax Java driver for Apache Cassandra(R) (com.datastax.oss:java-driver-core) version 4.9.0
09:56:10.574 [s0-admin-0] INFO  c.d.o.d.internal.core.time.Clock - Using native clock for microsecond precision
Driver Configs - Idempotence: false
Driver Configs -     Timeout: PT2S

【讨论】:

以上是关于Datastax Java 驱动程序 4.6.1 无法使用 application.conf 覆盖配置的主要内容,如果未能解决你的问题,请参考以下文章

NoClassDefFoundError - Cassandra 的 datastax java 驱动程序

Datastax Cassandra java驱动集群配置

Datastax Java 驱动程序自定义重试策略

Datastax Cassandra Java 驱动程序 WARN 消息

使用 datastax java 驱动程序 2.1.4 连接到 Cassandra 集群的速度太慢

如何关闭数据库连接 Datastax Java 驱动程序