You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中BigQuery模拟器下JsonStreamWriter集成测试问题

BigQuery模拟器下JsonStreamWriter创建卡住的问题解决

问题原因

你遇到的卡住问题,核心原因是BigQueryWriteClient默认启用了TLS加密连接,但本地的BigQuery模拟器只提供明文的gRPC服务(9060端口),导致客户端一直在尝试建立加密连接,最终超时卡住。原代码也缺少针对模拟器的明文连接配置。

解决方法

需要在BigQueryWriteSettings中显式禁用TLS,并确保客户端配置适配模拟器的明文环境,修改后的完整代码如下:

// 配置适配模拟器的BigQueryWriteSettings,禁用TLS加密
BigQueryWriteSettings writeSettings = BigQueryWriteSettings.newBuilder()
        .setEndpoint("localhost:9060")
        .setTransportChannelProvider(
            BigQueryWriteSettings.defaultGrpcTransportProviderBuilder()
                .setPlaintext() // 关键配置:启用明文连接,匹配模拟器的gRPC服务
                .build()
        )
        .build();

// 使用try-with-resources管理客户端资源,避免泄漏
try (BigQueryWriteClient writeClient = BigQueryWriteClient.create(writeSettings)) {
    JsonStreamWriter streamWriter = JsonStreamWriter.newBuilder(
            TableName.of(BQ_PROJECT, BQ_DATASET, BQ_TABLE).toString(),
            writeClient
        )
        .build();
    // 这里添加streamWriter的后续业务逻辑
} catch (IOException e) {
    e.printStackTrace();
}

额外检查项

  • 确认本地BigQuery模拟器的9060端口处于正常监听状态,可通过netstat或类似工具验证
  • 如果仍有连接问题,可设置环境变量GRPC_VERBOSITY=DEBUG开启gRPC日志,排查具体连接错误细节

内容的提问来源于stack exchange,提问作者Emanuel Trandafir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:52:18