【问题标题】:GCP Bigtable client with Vert.X blocking outGCP Bigtable 客户端与 Vert.X 屏蔽
【发布时间】:2022-11-23 00:50:58
【问题描述】:

我正在使用 GCP 提供的 Vert.X 和 Bigtable 客户端库。查询数据的调用是从工作池/executeBlocking 发出的。但是我收到的 AsyncResult 是空的,过了一会儿,警告日志被打印出来,因为工作线程被阻塞的时间太长了。

摇篮依赖:

object Versions {
  const val protobuf = "3.20.1"
  const val bigtable = "2.5.3"
}

dependencies {
  apply(plugin = "io.freefair.lombok")

  implementation("com.google.protobuf", "protobuf-java", Versions.protobuf)
  implementation("com.google.cloud", "google-cloud-bigtable", Versions.bigtable)
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
  implementation("com.fasterxml.jackson.core:jackson-databind:2.14.0")
  compileOnly("org.projectlombok:lombok")
  annotationProcessor("org.projectlombok:lombok")
  implementation(platform("io.vertx:vertx-stack-depchain:$vertxVersion"))
  implementation("org.slf4j:slf4j-api:1.7.+")
  implementation("ch.qos.logback:logback-classic:1.2.+")
  implementation("io.vertx:vertx-config")
  implementation("io.vertx:vertx-web")
  implementation("io.vertx:vertx-micrometer-metrics")
  implementation("io.vertx:vertx-opentracing")
  testImplementation("io.vertx:vertx-junit5")
  testImplementation("org.junit.jupiter:junit-jupiter:$junitJupiterVersion")
}

大表 API 调用:

vertx.<Row>executeBlocking(t->{
      var row=dataClient.readRow(TABLE_ID,"1234#DATA");
      t.complete(row);
    }).onComplete(r->{
      log.info("Result"+r.result());
    });

以下是日志: 11:36:46.376 [vert.x-worker-thread-1] INFO StateRepository - 正在部署的 StateRepository

11:36:46.379 [vert.x-worker-thread-1] INFO StateRepository - Resultnull

我在想 Bigtable 客户端在内部创建一个执行程序来处理连接,并且没有使用初始化它的工作线程池。但这可能完全是另一回事

【问题讨论】:

    标签: java google-cloud-platform vert.x google-cloud-bigtable


    【解决方案1】:

    该块是由于在正常垂直方向上创建的 bigtable 客户端在进行调用时阻塞了事件循环。将客户端的实例化移动到垂直工作人员解决了这个问题。

    在这里,worker vertical 应该管理任何阻塞的第三方库的生命周期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多