2-TDengine客户端连接,RESTful,JDBC(2)

附加自定义token在头信息,正常响应

cxzx-t580@Heartsuit MINGW64 /d/IoT

$ curl -H ‘Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04’ -d ‘select * from db.t’ hadoop1:6041/rest/sql

{“status”:“succ”,“head”:[“ts”,“speed”],“column_meta”:[[“ts”,9,8],[“speed”,4,4]],“data”:[[“2019-07-15 00:00:00.000”,10],[“2019-07-15 01:00:00.000”,20]],“rows”:2}

请求URL采用sqlt时,返回结果集的时间戳将采用Unix时间戳格式表示

cxzx-t580@Heartsuit MINGW64 /d/IoT

$ curl -H ‘Authorization: Basic cm9vdDp0YW9zZGF0YQ==’ -d ‘select * from db.t’ hadoop1:6041/rest/sqlt

{“status”:“succ”,“head”:[“ts”,“speed”],“column_meta”:[[“ts”,9,8],[“speed”,4,4]],“data”:[[1563120000000,10],[1563123600000,20]],“rows”:2}

请求URL采用sqlutc时,返回结果集的时间戳将采用UTC时间字符串表示

cxzx-t580@Heartsuit MINGW64 /d/IoT

$ curl -H ‘Authorization: Basic cm9vdDp0YW9zZGF0YQ==’ -d ‘select * from db.t’ hadoop1:6041/rest/sqlutc

{“status”:“succ”,“head”:[“ts”,“speed”],“column_meta”:[[“ts”,9,8],[“speed”,4,4]],“data”:[[“2019-07-15T00:00:00.000+0800”,10],[“2019-07-15T01:00:00.000+0800”,20]],“rows”:2}

创建数据库

cxzx-t580@Heartsuit MINGW64 /d/IoT

$ curl -H ‘Authorization: Basic cm9vdDp0YW9zZGF0YQ==’ -d ‘create database ok’ hadoop1:6041/rest/sql

{“status”:“succ”,“head”:[“affected_rows”],“column_meta”:[[“affected_rows”,4,4]],“data”:[[0]],“rows”:1}

删除数据库

cxzx-t580@Heartsuit MINGW64 /d/IoT

$ curl -H ‘Authorization: Basic cm9vdDp0YW9zZGF0YQ==’ -d ‘drop database ok’ hadoop1:6041/rest/sql

{“status”:“succ”,“head”:[“affected_rows”],“column_meta”:[[“affected_rows”,4,4]],“data”:[[0]],“rows”:1}

2021-07-27-ConsoleRecord.jpg

Widnows客户端

下载与服务器端版本一致的客户端:https://www.taosdata.com/assets-download/TDengine-client-2.1.2.0-Windows-x64.exe

Note:

  1. 客户端竟然直接安装到C盘下:C:\TDengine,不过考虑到默认的配置文件位置,可以理解。

  2. TDengine 默认使用6030端口通信,所以在服务器端需要开放6030的TCP端口。

在taos所在目录执行连接命令,报错了。。

C:\TDengine>taos -h 192.168.169.129

Welcome to the TDengine shell from Linux, Client Version:2.1.2.0

Copyright © 2020 by TAOS Data, Inc. All rights reserved.

taos connect failed, reason: Unable to establish connection.

这时,如果通过 JDBC-JNI 方式远程连接 TDengine 时: spring.datasource.driver-class-name=com.taosdata.jdbc.TSDBDriver ,报错:

java.sql.SQLException: JNI ERROR (2354): JNI connection is NULL

解决方法:除了开启6030的 TCP 端口外,还需要开放6030的 UDP 端口: iptables -I INPUT -p UDP --dport 6030 -j ACCEPT

再次连接,成功

C:\TDengine>taos -h 192.168.169.129

Welcome to the TDengine shell from Linux, Client Version:2.1.2.0

Copyright © 2020 by TAOS Data, Inc. All rights reserved.

taos>

2021-07-27-ClientUDP.jpg

JDBC-JNI

使用官方的 Demohttps://github.com/taosdata/TDengine/tree/develop/tests/examples/JDBC

这些示例在安装的客户端目录也有: /usr/local/taos/examples/JDBC 或者 C:\TDengine\examples\JDBC

这里主要涉及到 JDBCDemo 项目下的 JDBCDemo.java 文件,其中的逻辑比较简单,就是一个主方法,实现建库、建表、插入数据、查询方法。

2021-07-27-JDBCArgs.jpg

不过遇到了一些问题:

  1. 既然我用的是2.1.2.0的版本,可是下载的客户端自带示例的taos-jdbc依赖版本却五花八门。。

  2. JDBCDemo.java 报错,但是实际上已经跑通了。。

  3. JDBCDemo.java 中每条语句都正常执行,可是返回的却是Error。。

2021-07-27-JDBCError.jpg

着实令人哭笑不得、摸不着头脑呀。

Note:

  • 因为 JDBC-JNI 使用的是 com.taosdata.jdbc. TSDBDriver ,连接 6030 端口,所以也需要开放TCP、UDP。

iptables -I INPUT -p TCP --dport 6030 -j ACCEPT

iptables -I INPUT -p UDP --dport 6030 -j ACCEPT

  • pom中关于taos-jdbc的依赖版本应与服务端、客户端保持兼容,默认是2.0.18,我改成了2.0.30

com.taosdata.jdbc

taos-jdbcdriver

2.0.30

关于版本兼容性说明,见官方这个表:

2021-07-27-VersionCompatiable.jpg

Reference

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概要设计: 本工具是一个多客户端并发访问服务器的网络服务能力测试工具,主要用于测试服务器的负载能力和性能。整个工具包括客户端和服务器两部分,客户端可以模拟多个用户同时访问服务器,服务器接收客户端的请求并进行响应。 客户端的主要功能如下: 1. 可以设置并发访问的用户数和访问的周期时间; 2. 可以设置访问的URL地址和请求方式(GET或POST); 3. 可以查看测试结果,包括访问成功率、响应时间、吞吐量等指标。 服务器的主要功能如下: 1. 接收客户端的请求,并进行相应的处理; 2. 统计客户端的访问次数和响应时间,并返回统计结果; 3. 可以设置并发访问的最大用户数和最大连接数。 详细设计: 客户端的实现: 1. 客户端采用Java语言编写,使用Socket实现与服务器的通信; 2. 客户端可以设置并发访问的用户数和访问的周期时间,可以通过命令行参数进行设置; 3. 客户端可以设置访问的URL地址和请求方式(GET或POST),可以通过配置文件进行设置; 4. 客户端可以使用线程池实现并发访问,在每个线程中执行HTTP请求,并记录请求时间和响应结果; 5. 客户端可以使用Timer和TimerTask实现访问周期,每个周期结束后统计访问结果; 6. 客户端可以使用JFreeChart实现测试结果的图表展示。 服务器的实现: 1. 服务器采用Java语言编写,使用ServerSocket和Socket实现网络通信; 2. 服务器可以设置并发访问的最大用户数和最大连接数,可以通过命令行参数进行设置; 3. 服务器可以使用线程池实现并发处理客户端请求; 4. 服务器接收客户端的请求后,根据请求的URL地址进行相应的处理,可以返回HTML页面或JSON数据; 5. 服务器可以记录客户端的访问次数和响应时间,并返回统计结果; 6. 服务器可以使用JDBC实现数据的持久化,可以将访问记录保存到数据库中。 实现: 1. 客户端使用Java语言编写,使用HttpClient实现HTTP请求; 2. 服务器使用Java语言编写,使用SpringBoot框架实现RESTful API; 3. 客户端和服务器使用JSON格式进行数据交互; 4. 客户端使用线程池实现并发访问,服务器使用线程池实现并发处理客户端请求; 5. 客户端和服务器使用JDBC实现数据的持久化,使用MySQL数据库保存访问记录; 6. 客户端使用JFreeChart实现测试结果的图表展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值