2.1.8版本,增加了Arrowflight 协议支持通过负载均衡设备访问 BE的功能。

Viewed 60

Arrowflight和jdbc使用时,偶尔出现链接be超时的问题:Connection timed out: no further information: /xxx.xxx.xxx.xxx:9097,9097是be配置文件中arrow flight port的端口号。这是什么原因导致的,是配置文件参数配置的有误,还是Java 依赖的驱动版本太低,或者是其他原因?

追问:arrow-flight-sql方式连接,查询数据,结果是运行一次成功、然后连续两次运行报错的循环,中间不管间隔多长时间,都是这个规律。

2 Answers
  1. "偶尔出现链接be超时的问题:Connection timed"
    python 和 c++ ADBC 支持设置 rpc timeout,调大试试,ref: https://arrow.apache.org/adbc/current/python/api/adbc_driver_flightsql.html,
    adbc.flight.sql.rpc.timeout_seconds.fetch
    adbc.flight.sql.rpc.timeout_seconds.query
    adbc.flight.sql.rpc.timeout_seconds.update
    java ADBC 目前貌似还不支持设置 rpc timeout,ref: https://github.com/apache/arrow-java/issues/81

  2. “运行一次成功、然后连续两次运行报错”
    具体报什么错,贴上了看看

1741428775416_A14C0109-C4CD-4a51-BC0A-39C5F5DCF522.png
排查发现 应该是 连不上其他的be节点,9099是fe的arrowflight配置的端口号,9097是be配置的arrowflight端口号。一共三个be节点,只能连上和fe节点在一个ip的be节点,其他两个be节点连不上,从而导致了一次成功、两次不成功。