TDengine 容器化部署使用踩坑总结

一、TDengine 介绍


TDengine 官网


TDengine的介绍


  TDengine是一款国产、开源、云原生的时序数据库(Time Series Database),专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。它能让大量设备、数据采集器每天产生的高达TB甚至PB级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警,从大数据中挖掘出商业价值。

TDengine 3.x的介绍


  TDengine 3.x带来了几大核心特性,包括云原生架构、流式计算,还增强了数据订阅功能;更重要的是,3.0系列版本开始提供了全平台支持,服务器/客户端均已支持 Linux、Windows 和 MacOS。TDengine 3.0是一款真正的云原生时序数据库(Time Series Database,TSDB)。它有几大亮点:
(1)可以支持 10 亿个设备、100 个节点
(2)支持存储与计算分离,引入了计算节点(QNode),并重构了整个计算引擎
(3)完善并优化了对消息队列、流式计算和缓存的支持,引入事件驱动的流式计算
(4)解决了困扰时序数据库的高基数问题

二、安装

安装Tdengine服务端

启动镜像

docker run -d  --privileged=true \
--restart=always --name=tdengine \
-v /app/taos/dnode/data:/var/lib/taos \
-v /app/taos/dnode/log:/var/log/taos \
-v /etc/localtime:/etc/localtime -v /usr/share/zoneinfo:/usr/share/zoneinfo \
-p 6030:6030 -p 6041:6041 -p 6043-6049:6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine:3.0.7.1

可视化工具

默认账号密码:root  taosdata

使用Dbeaver连接

三、SpringBoot服务中使用

代码整理

引入TDengine驱动,注意版本与TDengine server 版本匹配度

         <!-- TDEngine驱动 -->
        <dependency>
            <groupId>com.taosdata.jdbc</groupId>
            <artifactId>taos-jdbcdriver</artifactId>
            <version>3.3.0</version>
        </dependency>

代码中直接使用JDBC建立连接就行,使用JdbcTemplate,对数据库进行操作。如果还使用其它数据库的时候,注意多数据源问题的解决,此处不做讲解。

服务部署

此处应注意,服务使用docker部署的时候,能正常启动,但是在使用TDengine的时候会报错:

no taos in java.library.path

问题一:获取不到驱动

首先我们要找到宿主机驱动文件位置:/usr/local/taos/driver/,服务在容器内运行时在java.library.path 下没有发现驱动,所以我们要将宿主机的驱动给放到 java.library.path 下面。这里我直接将驱动文件拿出来放到项目里了,也就是上图的 libtaos.so.3.3.2.0 文件,这个是 3.3.2.0版本的驱动。将驱动名修改为libtaos.so,放到项目下src 同级目录,此处还有其它做法。

这里在服务构建镜像时,在dockerfile 中将libtaos.so copy 到 java.library.path 也就是usr/lib 下面,这里根据自己的目录而定,里面还copy了其它的一些工具包

这里还需要对时区进行设置,一样也放在dockerfile中

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo Asia/Shanghai > /etc/timezone
问题二:基底镜像问题

这里困扰了很久,由于docker file 基底镜像用的是 openjdk:8-jre-alpine,这里的镜像少了太多的东西,导致问题从出不穷。

后面用了docker.m.daocloud.io/openjdk:8 镜像解决了问题。这里还可以装docker.m.daocloud.io/ubuntu:20.04,但是需要自己把jdk装进去。

问题三:taos版本问题

这里用的最新版的TDengine 也就是3.3.2.0版本,不需要copy下面这些工具包,但是使用3.0.7.1的版本时需要,工具包自己网上找。

COPY ./libc.musl-x86_64.so.1 /usr/lib/libc.musl-x86_64.so.1
COPY ./ld-linux-x86-64.so.2 /usr/lib/ld-linux-x86-64.so.2
COPY ./libjemalloc.so.2 /usr/lib/libjemalloc.so.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值