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

如何为QuestDB Docker Compose部署配置健康检查?

QuestDB Docker Compose 健康检查配置方案

针对QuestDB默认镜像缺少ps/nc/curl等常用工具的情况,提供两种简便的健康检查方案:

方案一:检查端口监听状态(轻量快速)

利用Linux系统原生的/proc/net/tcp文件,无需额外工具即可验证QuestDB的端口是否处于监听状态。QuestDB默认监听两个核心端口:

  • HTTP端口:9000(十六进制为0x2328)
  • PostgreSQL兼容端口:8812(十六进制为0x2268)

Docker Compose配置示例:

services:
  questdb:
    image: questdb/questdb:latest
    ports:
      - "9000:9000"
      - "8812:8812"
    healthcheck:
      # 检查HTTP端口9000是否处于监听状态
      test: ["CMD", "grep", "-q", "00000000:2328", "/proc/net/tcp"]
      interval: 10s       # 每10秒执行一次检查
      timeout: 5s         # 单次检查超时时间
      retries: 5          # 失败后重试次数
      start_period: 20s   # 服务启动后延迟20秒再开始检查(适配QuestDB启动耗时)

若要检查PostgreSQL兼容端口,只需将00000000:2328替换为00000000:2268即可。

方案二:验证服务查询能力(准确可靠)

利用QuestDB镜像内置的SqlCli工具(无需额外安装),通过执行简单SQL查询验证服务是否能正常处理请求,这种方式能确保服务不仅启动,还具备业务可用性。

Docker Compose配置示例:

services:
  questdb:
    image: questdb/questdb:latest
    ports:
      - "9000:9000"
      - "8812:8812"
    healthcheck:
      test: ["CMD", "java", "-cp", "questdb.jar", "io.questdb.tools.SqlCli", "-u", "http://localhost:9000", "-q", "SELECT 1"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 20s

方案对比

  • 端口监听检查:资源占用低、速度快,但仅能确认端口处于监听状态,无法验证服务逻辑是否正常。
  • SQL查询检查:能全面验证服务可用性,但相比端口检查稍重,适合对健康状态要求较高的生产环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:40:10