首页 > 解决方案 > Cassandra-quarkus-client 在 quarkusCqlSession.prepare 挂起

问题描述

我发现了 Quarkus CqlSession 的问题。当我调用方法“准备”它的挂起和超时。代码片段:

    @Inject
public NewsEngineRepository(QuarkusCqlSession quarkusCqlSession, NewsEngineConfig newsEngineConfig, Logger log) {
    queryLimit = newsEngineConfig.dbQueryLimit();
    this.quarkusCqlSession = quarkusCqlSession;
    this.log = log;
    SimpleStatement ss = SimpleStatement.newInstance("select " + ITEMID + ", " + PUBDATE + " from news_engine_items where defverid = ? AND group = ? Limit  " + queryLimit);

    preparedStatement= quarkusCqlSession.prepare(ss); // <---- hangs here

    this.log.info("Prepared statement created successfully: " + ss.getQuery());
}

我找到了两个解决方案:

  1. 将属性 quarkus.vertx.eventLoopsPoolSize 从 2 增加到 4
  2. 将属性 quarkus.cassandra.use-quarkus-event-loop 设置为 false

谁能解释为什么解决方案 1 有效?

标签: cassandraquarkus

解决方案


推荐阅读