服务器资源分配情况
第1步:准备集群节点运行环境
💡 提示
集群部署至少需要3个服务器节点。
确定用于集群部署的服务器信息,例如:IP、账号密码
防火墙配置
💡 提示
防火墙规则有上行(其它终端访问服务器)和下行(服务器访问网络资源)2种。
端口清单如下:
安装docker和docker-compose
根据您的操作系统选择:
第2步:集群内节点的部署包同步
2.1、上传部署包
⚠️ 警告
将部署包上传到集群内任意1台服务器的根目录下。并将部署包重命名为_makeFile。
2.2、配置部署包环境变量
修改文件miscroservice.env(docker容器环境变量)中的环境变量。
💡 提示
将配置文件中的文本【需要被替换的模板变量1】、【需要被替换的模板变量2】、【需要被替换的模板变量3】、【需要被替换的模板变量4】、【需要被替换的模板变量5】和【需要被替换的模板变量8】替换为第三方电脑可访问的IP或域名。
💡 提示
环境变量中,部署包默认使用的是REDIS的单体模式。
💡 提示
环境变量中,部署包默认Promethus收集性能指标。
⚠️ 警告
所有的访问地址都是IP或域名与端口的组合,即访问地址=IP或域名+服务端口。例如:ZOOKEEPER的访问地址为访问ZOOKEEPER的IP或域名:2181。
可使用下面的命令替换环境变量。
cd /_makeFile
#sed命令说明,当前登录的是集群节点1,实际执行的命令如下:
# sed -i 's/集群节点1/0.0.0.0/g' miscroservice.env
# 3节点集群部署
sed -i 's/ #server.2/ server.2/g' miscroservice.env #zookeeper部署默认只使用了1个节点
sed -i 's/ #,2/,2/g' miscroservice.env #kafka部署默认只使用了1个节点
sed -i 's/REDIS_CONNECTION_TYPE=standalone/REDIS_CONNECTION_TYPE=cluster/g' miscroservice.env
sed -i 's/需要被替换的模板变量1/ZOOKEEPER访问节点1的访问地址,ZOOKEEPER访问节点2的访问地址,ZOOKEEPER访问节点3的访问地址/g' miscroservice.env
sed -i 's/需要被替换的模板变量2/访问数据库PGSQL的IP或域名:5432/g' miscroservice.env
sed -i 's/需要被替换的模板变量3/KAFKA节点1的访问地址,KAFKA节点2的访问地址,KAFKA节点3的访问地址/g' miscroservice.env
sed -i 's/需要被替换的模板变量4/访问MINIO的IP或域名:9000/g' miscroservice.env
sed -i 's/需要被替换的模板变量5/REDIS节点1的访问地址,REDIS节点2的访问地址,REDIS节点3的访问地址/g' miscroservice.env
sed -i 's/需要被替换的模板变量8/CASSANDRA节点1的访问地址,CASSANDRA节点2的访问地址,CASSANDRA节点3的访问地址/g' miscroservice.env
#如果还可以找到内容【需要被替换的模板变量】说明配置文件编辑失败
cat miscroservice.env|grep 需要被替换的模板变量⚠️ 警告
这些变量在集群内的所有节点都是一样的。
如果还可以找到文本【需要被替换的模板变量1】、【需要被替换的模板变量2】、【需要被替换的模板变量3】、【需要被替换的模板变量4】、【需要被替换的模板变量5】和【需要被替换的模板变量8】说明配置文件编辑失败。
2.3、部署包同步到集群内的其它服务器
scp -r /_makeFile root@用于扩展微服务组件的服务器IP或域名:/ #同步到其它服务器根目录 命令执行过程如图:

第3步:安装微服务依赖软件
3.1、配置依赖软件的环境变量
⚠️ 警告
安装依赖软件前,必须修改集群内所有节点的部分环境变量,下面这些环境变量的值不尽相同。
修改文件miscroservice.env(docker容器环境变量)中的环境变量。
💡 提示
将配置文件中的文本【CLUSTER_NODE_ID=1】、【集群节点1】、【集群节点2】、【集群节点3】、【需要被替换的模板变量0】、【需要被替换的模板变量10】替换为第三方电脑可访问的IP或域名。
⚠️ 警告
当前登录的集群节点需要配置为广播地址【0.0.0.0】,例如:当前登录的是集群节点1,实际执行的命令如下:【sed -i ‘s/集群节点1/0.0.0.0/g’ miscroservice.env】
可使用下面的命令替换环境变量。
cd /_makeFile
sed -i 's/CLUSTER_NODE_ID=1/CLUSTER_NODE_ID=KAFKA和ZOOKEEPER部署节点的数字编号/g' miscroservice.env
sed -i 's/集群节点1/集群节点1的集群内通信的IP或域名/g' miscroservice.env
sed -i 's/集群节点2/集群节点2的集群内通信的IP或域名/g' miscroservice.env
sed -i 's/集群节点3/集群节点3的集群内通信的IP或域名/g' miscroservice.env
sed -i 's/需要被替换的模板变量0/当前节点的公网IP或域名/g' miscroservice.env
sed -i 's/需要被替换的模板变量f/当前节点的网卡(内网)IP/g' miscroservice.env
#如果还可以找到内容【需要被替换的模板变量】说明配置文件编辑失败
cat miscroservice.env|grep 需要被替换的模板变量💡 注意
需要被替换的模板变量f在1.4.1之前版本的部署包内都为需要被替换的模板变量10,为避免与其他替换变量重复查找修改为需要被替换的模板变量f。
⚠️ 警告
如果还可以找到文本【集群节点1】、【集群节点2】、【集群节点3】、【需要被替换的模板变量0】、【需要被替换的模板变量f】说明配置文件编辑失败。
3.2、安装微服务依赖软件
进入对应的依赖软件目录,执行容器编排命令。
安装服务中心(Zookeeper)集群
cd /_makeFile/center
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志 安装消息中间件(Kafka)集群
cd /_makeFile/message
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志 安装缓存(Redis)集群
cd /_makeFile/redis
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志 💡 注意
REDIS集群部署时,在所有节点启动后,需要在任一REDIS环境执行如下命令对集群进行初始化。
redis-cli -a litangyuan –cluster create 节点1:6379 节点2:6379 节点3:6379
redis-cli -a litangyuan --cluster create 节点1:6379 节点2:6379 节点3:6379集群初始化成功结果如下图

数据持久化工具集群
💡 注意
该容器编排文件docker-compose.yml里面包含pgsql、minio、cassandra等软件。
请结合实际情况安装相关软件。
cd /_makeFile/storage
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志 安装负载均衡软件
💡 提示
可视化服务组件包括组态、大屏和管理页面3个部分。
cd /_makeFile/loadbalance
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志第4步:安装微服务组件
结合实际需求扩展微服务组件到多台服务器。
导入镜像
查看服务器CPU信息
hostnamectl 命令执行结果如下,红框内的是CPU信息:

导入镜像
将_images目录下对应CPU架构的离线镜像导入docker。
PS:注意这个文件的版本号,与您实际版本一致。
docker load -i _images/thingskit_miscroservice_x86.tar #服务器CPU架构多为x86-64启动服务组件:核心服务
cd /_makeFile/services/core
#把docker-compose.yml文件中的服务名,替换为core1
sed -i 's/服务名/core1/g' docker-compose.yml
#如果还可以找到“服务名”说明配置文件编辑失败
cat docker-compose.yml|grep 服务名
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志启动服务组件:规则引擎
cd /_makeFile/services/rule
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志启动服务组件:设备接入服务
💡 提示
设备接入服务的组件目录可选值:transport_http、transport_mqtt、transport_tcp。
cd /_makeFile/services/transport
sed -i 's/组件目录值/transport_mqtt/g' docker-compose.yml
sed -i 's/服务名/mqtt1/g' docker-compose.yml
# 不同接入协议需要修改端口,默认为MQTT的1883
sed -i 's/1883:1883/8088:8088/g' docker-compose.yml
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志⚠️ 警告
如果还可以找到内容【服务名】、【组件目录值】说明配置文件编辑失败。
启动服务组件:脚本引擎
💡 提示
如果配置环境变量JS_EVALUATOR的值为【remote】时,集群中至少存在一个脚本引擎的服务组件。
cd /_makeFile/services/js-executor
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志第5步:部署可视化管理页面
💡 提示
可视化服务组件包括组态、大屏和管理页面3个部分。
配置Nginx的环境变量
修改文件miscroservice.env(docker容器环境变量)中的环境变量。
💡 提示
将配置文件中的文本【需要被替换的模板变量7】和【需要被替换的模板变量9】替换为第三方电脑可访问的IP或域名。
可使用下面的命令替换环境变量。
cd /_makeFile
sed -i 's/需要被替换的模板变量7/NGINX反向代理的核心服务访问地址/g' miscroservice.env
sed -i 's/需要被替换的模板变量9/NGINX反向代理的组态访问地址/g' miscroservice.env
#如果还可以找到内容【需要被替换的模板变量】说明配置文件编辑失败
cat miscroservice.env|grep 需要被替换的模板变量⚠️ 警告
如果还可以找到内容【需要被替换的模板变量7】和【需要被替换的模板变量9】说明配置文件编辑失败。
💡 提示
如果您需要开启HTTPS协议,需要将TLS_FILE_PUBLIC的值【com.thingskit.pem】、TLS_FILE_PRIVATE的值【com.thingskit.key】这2个内容替换为第三方电脑可访问的域名。
可使用下面的命令替换环境变量。
cd /_makeFile
sed -i 's/com.thingskit.pem/证书的公钥文件名/g' miscroservice.env
sed -i 's/com.thingskit.key/证书的私文件名/g' miscroservice.env
#如果还可以找到内容【com.thingskit】说明配置文件编辑失败
cat miscroservice.env|grep com.thingskit配置管理界面/大屏的服务端信息
⚠️ 警告
版本v1.1.2_Release和之前的版本需要执行改操作。
💡 提示
管理页面和大屏都需要对配置文件_app.config.js中的文本【localhost】替换为第三方电脑可访问的IP或域名。
修改与前端配合的后端信息,例如:后端API、websocket接口等。
cd /_makeFile/_workspace/data_view
sed -i 's/localhost/外网IP或域名/g' _app.config.js
cd /_makeFile/_workspace/web_ui
sed -i 's/localhost/外网IP或域名/g' _app.config.js
#如果还可以找到内容【需要被替换的模板变量】说明配置文件编辑失败
cat monolith.env | grep localhost⚠️ 警告
如果还可以找到内容【localhost】说明配置文件编辑失败
💡 提示
默认未开启安全协议SSL
sed -i 's/"VITE_GLOB_CONTENT_SECURITY_POLICY":"false"/"VITE_GLOB_CONTENT_SECURITY_POLICY":"true"/g' _app.config.js修改后配置文件效果图

启动物联网平台
cd /_makeFile/webserver
docker-compose up -d
docker-compose logs --tail=200 -f #查看管理界面日志第6步:刷新负载均衡配置文件
💡 提示
扩展核心服务、设备接入服务时需要刷新负载均衡的配置文件。
核心服务
cd /_makeFile/loadbalance/conf
sed -i '/核心服务的负载均衡节点/a server 节点别名1 访问服务的IP或域名:端口 check inter 5s resolvers docker_resolver resolve-prefer ipv4' haproxy.cfg
#如果找不到内容说明配置文件编辑失败
cat haproxy.cfg | grep 新加内容的关键字设备接入服务:MQTT
cd /_makeFile/loadbalance/conf
sed -i '/设备接入协议MQTT负载均衡节点/a server 节点别名1 访问服务的IP或域名:端口 check inter 5s resolvers docker_resolver resolve-prefer ipv4' haproxy.cfg
#如果找不到内容说明配置文件编辑失败
cat haproxy.cfg | grep 新加内容的关键字设备接入服务:TCP
cd /_makeFile/loadbalance/conf
sed -i '/设备接入协议TCP负载均衡节点/a server 节点别名1 访问服务的IP或域名:端口 check inter 5s resolvers docker_resolver resolve-prefer ipv4' haproxy.cfg
#如果找不到内容说明配置文件编辑失败
cat haproxy.cfg | grep 新加内容的关键字设备接入服务:HTTP
cd /_makeFile/loadbalance/conf
sed -i '/设备接入协议HTTP的负载均衡节点/a server 节点别名1 访问服务的IP或域名:端口 check inter 5s resolvers docker_resolver resolve-prefer ipv4' haproxy.cfg
#如果找不到内容说明配置文件编辑失败
cat haproxy.cfg | grep 新加内容的关键字第7步:重启负载均衡软件
💡 提示
扩展核心服务、设备接入服务时需要重启负载均衡软件。
cd /_makeFile/loadbalance
docker-compose restart
docker-compose logs --tail=200 -f #查看管理界面日志第8步:测试集群部署是否成功
负载均衡软件状态
💡 提示
Haproxy访问地址:http:/访问服务的IP或域名/:9999/stats
账号/密码:账号和密码在配置文件中查看

第9步:测试ThingsKit物联网平台是否安装成功
💡 提示
访问地址:http://你的的IP或域名:9527
超级管理员账号:sysadmin
超级管理员密码:Sysadmin@123
租户管理员/客户默认密码:123456
‼️ 提示
设备的接入需要再超级管理员的账号登录后,创建租户-租户管理员并访问租户账号才能使用。
