Java连接器使用原生jdbc、rest、ws这几种有没有性能或者资源消耗的对比?

【TDengine 使用环境】
测试环境

【TDengine 版本】

docker 3.3.8.4

【操作系统以及版本】

【部署方式】容器

【遇到的问题:问题现象及影响】JAVA连接器使用原生JDBC、REST、WS这几种有没有性能或者资源消耗的对比?用哪种连接更适合

原生 JDBC 需要连接 TDengine 客户端的动态库,所以适合本地连接。
REST 和 WS 连接 TaosAdapter(提供 REST 接口),使用 REST 和 WebSocket 方式创建连接。

如果客户端和服务端不在一台机器需要使用 REST 和 WS 连接。WS 已经优化接近原生 JDBC 的水平。建议使用此连接方式。

JAVA连接器使用原生JDBC、REST、WS这几种有没有性能或者资源消耗的对比?

建议使用 websocket 方式。

我想知道性能比较和资源比较的数据 这个有提供吗

以及 慢在哪里的原因

这个你们可以在自己的环境上,基于自己的业务做测试验证。

我正在测试,结果已经可以看出来了 但是还是太懂 为什么会慢的原因

和我的网络上限有关系吗 ? 我看我8v16g服务器的宽带满了 但是cpu 几乎没消耗

这两个分别是 jdbc 和 rest 的测试 10万 数据16线程的压测

性能涉及到 cpu、内存、磁盘IO、网络IO和带宽,任意一个先达到瓶颈,那性能也就到峰值了。

还有个问题 我目前 单线程调用一条sql要这么久吗 ??? 这个是我的sql select imei, lon, lat, lon2, lat2, lon3, lat3, ride_status from `iot_data`.`bike_rec_93750` where ts<‘2025-01-01T00:16:39.000+08:00’ and create_time >‘1970-01-04T08:29:22.027+08:00’ limit 400,200select imei, lon, lat, lon2, lat2, lon3, lat3, ride_status from `iot_data`.`bike_rec_93750` where ts<‘2025-01-01T00:16:39.000+08:00’ and create_time >‘1970-01-04T08:29:22.027+08:00’ limit 400,200

为什么 rest的公网流出带宽使用率这么高(后面跑满那个) jdbc的反倒没有那么多(前面2个峰值) 我想了解下原理

因为 jdbc 使用的自定的内部格式,自然比 restful 的http 协议要少很多开销。

我在8v16g服务器上用taosBenchmark 测试10w数据16线程 qps 可以到4000左右吧

java代码 用ws测试 qps 大概1100多点吧
这种qps算是正常吗 ? 还有没有提升空间 ?

应该差不多,具体环境会有点差异,比如写入数据在存储中分散度。

写入感觉问题不大 目前测试的是读取的qps