starrocks stream load put请求超时

【详述】问题详细描述
我们线上有几十张表,之前存储在ck里面,现在需要全部迁移到starrocks中,由于写入时效性,我们选择用stream load方式写入,但是写入服务一直在报两个关键性错误:
2023-05-25T02:21:31.416Z error repository/clickhouse/coredb/balance.go:112 CK SR Combine Client Write err: flush to balance_exposure got error Authentication Failed.
Need auth information.

2023-05-25T02:21:36.406Z error repository/clickhouse/coredb/balance.go:112 CK SR Combine Client Write err: Put “http://xx.xxx.xxx.xxx:8030/api/balance/balance_swapspot_summary/_stream_load”: context deadline exceeded (Client.Timeout exceeded while awaiting headers)

认证配置我们在代码里面是做了的,下面是一些关键代码:




【背景】做过哪些操作?
【业务影响】
【StarRocks版本】例如:2.2.8
【集群规模】
测试环境:1fe + 1be
【机器信息】CPU虚拟核/内存/网卡
测试环境:2c/8g
【表模型】
明细模型
【导入或者导出方式】
stream load(通过golang http put接口请求方式)
【联系方式】为了在解决问题过程中能及时联系到您获取一些日志信息,请补充下您的联系方式,例如:社区群15-老张
【附件】
fe和be并无明显的报错信息

这是没有加认证吧,参考 https://docs.starrocks.io/zh-cn/latest/loading/StreamLoad

加了的,已经解决,fe的问题

1赞

方便同步下是fe什么问题么?最终的解决方案是?

fe存在瓶颈,最后直接请求的be

我们也遇到过,能提供下具体什么瓶颈呢

个人感觉可能是类似于线程池这样的东西吧

通过监控和实时查看top(fe leader ) 资源都没用到一半。

可以拿个导入过程中的jstack $fe_pid 看下

streamLoad我也碰到过类似的问题,直接请求BE(56Core,224G)性能很好,2000w数据并发40写入12s能导入完;但是当我请求FE时,就大量报这个错误"context deadline exceeded (Client.Timeout exceeded while awaiting headers)",FE CPU基本没咋使用。

老哥最后怎么解决的呢;绕过FE直接用BE导入吗

解决了,在http.Client加上Transport参数:
Transport: &http.Transport{
MaxIdleConnsPerHost: 100,
}
CheckRedirect中重新设置一下body,就可以解决:
req.Body = ioutil.NopCloser(bytes.NewBuffer(byteData))