Thingsboard搭建本地开发环境说明
2020-07-22 本文已影响0人
哦呵呵_3579
本地开发环境搭建说明
环境要求
-
JDK 1.8+
-
Maven 3.6.1+
-
NodeJs 10.16.0+
-
Gradle 5.5.1+
前提要求
-
项目已经可以顺利build成功
-
当前示例为Mac,windows与Mac的配置基本一致,建议使用类linux系统
搭建第三方组件
由于是开发环境,只需要搭建单节点的zookeeper和kafka即可,redis缓存也不需要
1、 从官网下载对应的安装包并解压
下载地址
https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz
2、 搭建单节点zookeeper
./zookeeper-server-start.sh ../config/zookeeper.properties
3、 搭建单节点kafka
./kafka-server-start.sh ../config/server.properties
搭建数据库
开发环境只需要使用到postgresql即可,不需要使用cassandra来存储时序数据,postgresql只需要单节点即可
1、 安装postgres数据库
brew install postgresql
2、 安装timescale插件
# Add our tap
brew tap timescale/tap
# To install
brew install timescaledb
# Post-install to move files to appropriate place
/usr/local/bin/timescaledb_move.sh
# Install plugin
timescaledb-tune
# Restart PostgreSQL instance
brew services restart postgresql
3、 创建database
psql -U postgres
create database thingsboard;
4、 通过可视化工具连接到postgresql,并创建对应的用户,默认的用户名和密码都是postgres,可以在项目的配置文件中进行修改
5、 初始化数据库数据
chomd +x {THINGSBOARD_DIR}/application/target/bin/install/install_dev_db.sh
./install_dev_db.sh
启动tb-node组件
1、 修改配置文件
{THINGSBOARD_DIR}/application/src/main/resources/thingsboard.yml
# enable kafka
zk.enabled="${ZOOKEEPER_ENABLED:true}"
# 使用pgsql作为持久换以及时间序列存储
database.ts.type="${DATABASE_TS_TYPE:sql}"
# 使用内存缓存
cache.type="${CACHE_TYPE:caffeine}"
# 使用kafka作为管道
queue.type="${TB_QUEUE_TYPE:kafka}"
# 禁用tb-node自带的transport功能,使用独立的服务来提供transport功能
transport.http.enabled="${HTTP_ENABLED:false}"
transport.mqtt.enabled="${MQTT_ENABLED:false}"
transport.coap.enabled="${COAP_ENABLED:false}"
# 启用独立的js引擎处理消息
js.evaluator="${JS_EVALUATOR:remote}"
2、 直接通过idea的debug启动即可
# 模块名称
application
# 主类
org.thingsboard.server.ThingsboardServerApplication
# 路径
{THINGSBOARD_DIR}/application/src/main/java/ThingsboardServerApplication.java
启动transport组件
- 只说明mqtt-transport如何配置,http和coap的配置类似
1、修改配置文件
{THINGSBOARD_DIR}/transport/mqtt/src/main/resources/thingsboard.yml
queue.type="${TB_QUEUE_TYPE:kafka}"
2、 启动服务
# 模块名称
transport.mqtt
# 主类
org.thingsboard.server.mqtt.ThingsboardMqttTransportApplication
# 路径
{THINGSBOARD_DIR}/transport/mqtt/src/main/java/ThingsboardMqttTransportApplication.java
启动ui-web组件
1、 build项目
cd {THINGSBOARD_DIR}/ui-ngx
# 清除缓存
npm cache clean --force
# 手动安装必要模块
npm install --save-dev prettier
# 安装模块
npm install
2、 启动项目
npm start
启动js-executor
1、 build项目
cd {THINGSBOARD_DIR}/msa/js-executor
npm install
2、 启动项目
npm install
连通性测试
1、 登录web localhost:4200
2、 创建一个设备
3、 获取token
4、 使用mqttclient连接到mqtt-transport确认是否可以正常连接上