Sana Sana
首页
  • 项目介绍

    • 项目介绍
    • 结构说明
    • 后续计划
  • 环境搭建

    • 配置maven
    • 安装JDK17
    • 安装Node.JS
    • 安装Redis
    • 安装Mysql
    • 安装Tdengine
    • 安装MinIO
  • 本地运行

    • 运行后端
    • 运行前端
  • 服务部署

    • 简单部署
  • 操作说明

    • 设备维护
    • 接入管理
    • 规则编排
    • 组态管理
  • 使用案例

    • 模拟单个设备接入案例
    • 模拟边缘程序设备接入案例
演示地址
问题反馈
GitHub (opens new window)
首页
  • 项目介绍

    • 项目介绍
    • 结构说明
    • 后续计划
  • 环境搭建

    • 配置maven
    • 安装JDK17
    • 安装Node.JS
    • 安装Redis
    • 安装Mysql
    • 安装Tdengine
    • 安装MinIO
  • 本地运行

    • 运行后端
    • 运行前端
  • 服务部署

    • 简单部署
  • 操作说明

    • 设备维护
    • 接入管理
    • 规则编排
    • 组态管理
  • 使用案例

    • 模拟单个设备接入案例
    • 模拟边缘程序设备接入案例
演示地址
问题反馈
GitHub (opens new window)
  • 项目介绍

  • 环境搭建

  • 本地运行

    • 运行后端
      • 下载代码
      • 初始化数据库:
        • 1、初始化mysql数据库
        • 2、初始化TDengine数据库
      • 配置后端环境
        • 1、使用编辑器打开sana项目,配置mavne
        • 2、修改本项目的sdk版本信息,确保和后端要求的sdk版本一致
      • 修改配置文件
        • 1、修改application.yml
        • 1、修改application-dev.yml(上面的配置中,active为:dev)
      • 启动后端程序
    • 运行前端
  • 服务部署

  • 指南
  • 本地运行
lyl-xf
2025-06-02
目录

运行后端

# 运行后端代码

# 下载代码

GitHub - lyl-xf/sana (opens new window)

下载完成之后进入项目目录可以看到以下结构:

|----sana               
|----doc                #文档
|----sana-abutment      #设备接入模块
|----sana-base          #基础功能模块
|----sana-devices       #设备管理模块
|----sana-rules         #规则管理模块
|----sana-service       #主服务模块
|----sana-system        #系统管理模块
.....                   #待归化模块
|----sana-web           #前端项目
1
2
3
4
5
6
7
8
9
10
  • sana为整个项目的根目录,也是后端的根目录,直接使用后端编辑器打开sana项目即可。
  • 其中sana-web为前端项目,需要单独独拷贝出去编译,并启动。

# 初始化数据库:

# 1、初始化mysql数据库

  • 连接到mysql数据库,创建数据库sana。
  • 运行sql文件:doc/mysql/sana.sql

# 2、初始化TDengine数据库

可以使用TDengineGUI,也可以通过命令行来操作,下面介绍的是命令行的方式:

  • 命令行进入taos界面

  • 找到文件:doc/TDengine/TD.sql

  • 使用建表语句(这里存储时长是3650天,可自行修改):

CREATE DATABASE sana PRECISION 'ms' KEEP 3650 DURATION 10 BUFFER 16;
1

  • 使用刚刚创建的sana数据库:
use sana;
1
  • 创建日志超级表,建表语句如下:
CREATE STABLE sys_log_operate (ts timestamp,
    module NCHAR(200),
    name NCHAR(100),
    req_uri NCHAR(200),
    req_method NCHAR(200),
    req_params NCHAR(4000),
    ip NCHAR(50),
    user_agent NCHAR(300),
    operate_type INT,
    status INT,
    real_name NCHAR(50)
    ) TAGS (user_id BIGINT);
1
2
3
4
5
6
7
8
9
10
11
12
  • 查看表是否存在

# 配置后端环境

# 1、使用编辑器打开sana项目,配置mavne

配置好之后,请使用maven编译项目,确保项目可以编译通过(先clena,后install)。

# 2、修改本项目的sdk版本信息,确保和后端要求的sdk版本一致

# 修改配置文件

# 1、修改application.yml

  • 文件位置: sana-server/src/main/resources/application.yml

  • 主要关注以下配置:

# Tomcat
server:
  port: 8888
  servlet:
spring:
  # 环境 dev|test|prod
  profiles:
    active: dev
    
    ....
1
2
3
4
5
6
7
8
9
10

# 1、修改application-dev.yml(上面的配置中,active为:dev)

  • 文件位置: sana-server/src/main/resources/application-dev.yml

  • 主要关注以下配置(将:文件存储minio配置、redis配置、数据库‘mysql’、‘TDengine’配置 更换为自己部署的信息。):

############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
sa-token:
  cookie:
    secure: false
    httpOnly: true
  token-name: Authorization # token 名称(同时也是 cookie 名称)
  timeout: 2592000  # token 有效期(单位:秒) 默认30天,-1 代表永久有效
  active-timeout: -1  # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
  is-concurrent: true  # 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
  is-share: false  # 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
  token-style: uuid  # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
  is-log: true  # 是否输出操作日志
  jwt-secret-key: sanakeyidSDWsdjnusadFaaDWedwfdasefAS # jwt秘钥
  ignore-config:
    paths:
      - /swagger/**
      - /swagger-resources/**
      - /swagger-ui.html
      - /doc.html
      - /swagger-ui/**
      - /favicon.ico
# 文件存储
storage:
  minio:
    access-key: Y2j5CZqWkTYjhRsadas
    secret-key: ro2TfKWjV07uOTXBqp5PGzzRQNsadasXRY
    end-point: http://127.0.0.1:9000
    bucket-name: dev

spring:
  # 是否开启登录验证码
  captchaEnabled: true
  # 数据库连接信心
  data:
    redis:
      database: 1
      host: 127.0.0.1
      port: 6379
      password: 123456
      timeout: 6000ms  # 连接超时时长(毫秒)
      lettuce:
        pool:
          max-active: 20    # 最大活跃连接数
          max-idle: 10      # 最大空闲连接
          min-idle: 5       # 最小空闲连接
          max-wait: 5000ms  # 获取连接最大等待时间
          time-between-eviction-runs: 30000ms  # 空闲连接检查周期
      stream:
        core-pool-size: 3 #处理逻辑时线程池的核心线程数
        max-pool-size: 3  #线程池最大线程数
        queue-capacity: 500 # 队列容量,默认:500
        batch-size: 40    #批量消费数量(一次最多获取多少条消息)
        poll-timeout-seconds: 3 # Stream中没有消息时,等待时间
        streams:          # 环境运行的时候,请一定要先创建好对应的stream;
          - name: sana:stream:topic-ruleo  # 设备规则处理stream1
            group: group-rule1
          - name: sana:stream:topic-rulet  # 设备规则处理stream2
            group: group-rule2
          - name: sana:stream:topic-rulej  # 定时规则处理stream
            group: group-rulejob
  datasource:
    dynamic:
      hikari: # Hikari 连接池全局配置
        connection-timeout: 30000     # 等待连接池分配链接的最大时长(毫秒),超过这个时长还没有可用的连接则发生 SQLException,默认:30 秒
        minimum-idle: 2               # 最小空闲连接数
        maximum-pool-size: 10         # 最大连接数
        idle-timeout: 600000          # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10 分钟
        max-lifetime: 1800000         # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认: 30 分钟
        connection-test-query: SELECT 1
      primary: mysql
      datasource:
        mysql:
          # MySQL8
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/sana?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
          username: root
          password: 123456
          # TDengine
        tdengine:
          #原生链接,需要配置客户端
          #driver-class-name: com.taosdata.jdbc.TSDBDriver
          #url: jdbc:TAOS://127.0.0.1:6041/sana?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8
          #REST 连接
          driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
          url: jdbc:TAOS-RS://127.0.0.1:6041/sana?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8
          username: root
          password: admin1234...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

# 启动后端程序

  • 找到SanaServerApplication启动文件(sana-server/src/main/java/com/sana/SanaServerApplication)

  • 右键,选择: Run 'SanaServerAppl....mian()',即可启动项目

  • 启动效果:

上次更新: 2025/06/04
安装Tdengine
运行前端

← 安装Tdengine 运行前端→

最近更新
01
后续计划
06-02
02
安装maven
06-02
03
安装JDJ17
06-02
更多文章>
Theme by Vdoing | Copyright © 2024-2025 lyl-xf | Apache 2.0 License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式