springboot多数据源
docker安装tdengine
注意版本,当前安装的是2.X版本
# 查看当前tdengine服务端版本
docker history 镜像名称
项目中的依赖版本要同步,版本接近即可,大版本需一致
<!--涛思时序数据库驱动-->
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.36</version>
</dependency>
docker执行
# 拉取镜像
docker pull tdengine/tdengine:2.6.0.34
# 运行容器
docker run -d --name tdengine --restart=always -v /home/soft/taos:/usr/local/taos/data -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -p 6030:6030 -p 6035:6035 -p 6041:6041 -p 6030-6040:6030-6040/udp tdengine/tdengine:2.6.0.34
# 进入容器
docker exec -it tdengine bash
# 进入tdengine命令窗口
taos
# 创建数据库
create database ffc_device_data;
# 展示超级表
show stables;
# 展示子表
show tables;
# 创建流量信号超级表
create stable flowsignal (ts timestamp, upflow bigint, downflow bigint, totalflow bigint, signal int) tags(deviceId bigint, tenantId bigint);
# 创建子表(不需要执行,新建设备自动建表)
create table flowsignal_1659144381446234113 using flowsignal (deviceid,tenantid) tags (1659144381446234113,222222221234567895);
创建子表可能失败
进入taos数据库:
# 查看节点
show dnodes;
发现就一个节点还是 offline
进入容器看看日志
/usr/local/taos
查看 taosadapter_日期.log
# 发现这么一段,那我们重新启动容器,把这个6044端口也开一下
12/02 15:44:45.376652 00000043 TAOS_ADAPTER info "UDP listening on "[::]:6044"" model=statsd
12/02 15:44:45.376684 00000043 TAOS_ADAPTER info "Started the statsd service on ":6044"" model=statsd
重新运行容器
docker run -d --name tdengine --restart=always -v /home/docker/tdengine/taos:/usr/local/taos/data -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -p 6030:6030 -p 6035:6035 -p 6041:6041 -p 6030-6040:6030-6040/udp -p 6044:6044/udp tdengine/tdengine:2.6.0.34
再去建表子表就OK了;
pom
<!--多数据源框架-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
<!--涛思时序数据库驱动-->
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<!-- 驱动版本同步tdengine服务,服务器为2.6 -->
<version>2.0.38</version>
</dependency>
多数据源配置
spring:
datasource:
dynamic:
primary: mysql
datasource:
mysql:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://****/databaseXXXX?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
username: root
password:
flow:
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://****/databaseXXXX?characterEncoding=utf-8&useSSL=false
username: root
password: taosdata
对应service上注解数据源
# 默认的MySQL不用注解,需要切换副数据源的添加注解,在service实现上添加即可
@Service
@DS("flow")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了