跳到主要内容

获取元信息超时

现象

创建任务修改订阅查看库表映射 出现 SocketTimeoutException,日志中出现

远程获取数据表的元信息失败。错误信息为:invoke rcontroller method failed.Request id:6f2888ca-d16a-11ee-8b0d-81c0e706f1d8msg:SocketTimeoutException: Read timed out. target sidecar is 172.31.238.4, route name is mysql_rdbLoadColumns

排查

原因

  • 数据源表字段数量过多,Console 默认元信息获取时间默认为 60s,导致 SocketTimeoutException

解决

  • 修改 Console 配置
    • TGZ 部署
      • vi {安装目录}/cloudcanal/console/conf/business-output.properties
    • Docker 部署
      • docker exec -it cloudcanal-console /bin/bash
      • vi /home/clougence/cloudcanal/console/conf/business-output.properties
    • K8s 部署
      • kubectl exec -it console-0 -n cloudcanal /bin/bash
      • vi /home/clougence/cloudcanal/console/conf/business-output.properties
  • 修改参数 console.config.metadata.fetch.socket_timeout_ms(默认是 60 秒)
  • 重启 Console
    • TGZ 部署
      • cd {安装目录}/cloudcanal/console/bin/ && su clougence -c "./stopConsole.sh" && su clougence -c "./startConsole.sh"
    • Docker 部署
      • docker exec cloudcanal-console bash -c "cd /home/clougence/cloudcanal/console/bin && su clougence -c "./stopConsole.sh" && su clougence -c "./startConsole.sh""
    • K8s 部署
      • kubectl exec -it console-0 -n cloudcanal -- bash -c 'cd /home/clougence/cloudcanal/console/bin/ && su clougence -c "./stopConsole.sh" && su clougence -c "./startConsole.sh"'