springboot多数据源

发布时间 2023-11-28 15:51:45作者: 窃窃私语QAQ

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);

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")