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")
posted @ 2023-11-28 15:47  窃窃私语QAQ  阅读(87)  评论(0编辑  收藏  举报