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

使用ksqldb-cli Docker镜像执行ksqlDB迁移时遇HTTP2错误求助

ksqlDB迁移apply操作报错:This endpoint is only available when using HTTP2(错误码40004)

问题描述

使用ksqlDB迁移工具的GitHub Action执行迁移时,仅apply操作报错,错误信息如下:

io.confluent.ksql.api.client.exception.KsqlClientException: Received 400 response from server: This endpoint is only available when using HTTP2. Error code: 40004.

ksqlDB Server和CLI版本均为0.28.2,初始化、验证、试运行(dry run)操作均可正常执行。

原因分析

这个错误并非ksqlDB 0.28.2的bug,核心原因是apply操作调用的ksqlDB API端点要求必须使用HTTP/2协议,而当前迁移工具的请求使用了HTTP/1.1协议,导致服务器拒绝请求。

其他操作(初始化、验证、试运行)能正常工作,是因为它们调用的是兼容HTTP/1.1的API端点,不需要强制HTTP/2。

解决方案

  • 确认ksqlDB Server已启用HTTP/2
    检查ksqlDB服务器配置文件,确保ksql.http2.enabled设置为true,同时配置ksql.http2.port(默认通常为8089,可根据实际情况调整),重启服务器使配置生效。
  • 调整GitHub Action的目标端口
    在迁移action的配置中,将ksqlDB的连接地址指向HTTP/2端口(比如http://your-ksqldb-server:8089),而非默认的HTTP/1.1端口(通常8088)。
  • 确保迁移工具客户端启用HTTP/2
    若使用ksqlDB Java客户端,需在创建KsqlClient实例时显式启用HTTP/2支持:
    KsqlClient client = KsqlClient.create("http://your-ksqldb-server:8089", clientConfig -> {
        clientConfig.useHttp2(true);
    });
    
    同时检查GitHub Action的代码实现,确认apply步骤中是否正确配置了HTTP/2支持。
  • 验证action版本兼容性
    确认使用的ksqlDB迁移action版本与ksqlDB 0.28.2兼容,若action版本较旧,可能未适配最新版本的HTTP/2要求,尝试更新action到最新版本。

内容的提问来源于stack exchange,提问作者Farhan Islam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:58:19