Skip to main content

SagooIoT V1.x到V2.x升级说明

· 8 min read
佳雨
Team leader

专业版或是企业版用户注意阅读这篇文章,这篇文章主要是针对V1.x版本升级到V2.x版本的更新说明。V2.x版本对数据库字段有所改动,所以需要注意以下内容。

安装说明

所需服务

  • 以下所有代码库`强烈建议在本机电脑上进行拉取。不建议在服务器中进行拉取。
  • 拉取所有代码库后再对应的本地项目中进行编译后,放到对应的服务器目录中的内容需为本地编译好的文件。
  • 注:所有服务都需要本地安装对应语言的依赖。比如拉取后端仓库代码后需配置https://goproxy.io然后在项目根目录执行go mod tidy拉取依赖。拉取前端仓库代码后需在项目根目录执行yarn install 或 npm install

后端服务

  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/sagooiot-professional.git 对应分支main
  2. 编译后端服务./build.sh linux|windows|mac 后面跟编译类型,如linuxwindowsmac
    • 注:如是V1版本升级成V2版本。数据库字段有所改动。需查看./tools/update/readme.md文件。
    • 注:对应./manifest/sql/init.sql文件中是否有新填默认表字段。
    • 注:如果不是通过V1升级到V2版本,只需把./manifest/sql/init.sql文件导入到数据库中就可以。
  3. 编译后检查根目录下是否有build目录,有则说明编译成功。
  4. bin目录下内容是所需部署在服务器的内容。
  5. 编译好的内容建议放在服务器/opt/sagoo/iot-server目录下。
  6. 请先查看编译好的目录中的配置文件,是否为所需配置,如不是,需修改配置文件。修改config/config.yaml文件内容为实际使用的配置。
  7. 以上步骤完成后,启动服务./curl.sh start

前端服务

  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/sagoo-admin-ui.git 对应分支professional2
  2. 编辑前端服务vite build
  3. dist目录下内容是所需部署在服务器的内容。
  4. 编译后检查根目录下是否有dist目录,有则说明编译成功。
  5. 编译好的内容建议放在服务器/opt/sagoo/iot-ui目录下。

组态服务

  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/sagoo-configuration.git 对应分支v2
  2. 编译组态服务npm run build
  3. dist目录下内容是所需部署在服务器的内容。
  4. 编译后检查根目录下是否有dist目录,有则说明编译成功。
  5. 编译好的内容需放在前端工程根目录下前端工程/plugin/topo目录下。(如已有plugin目录则忽略)。

大屏服务

  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/big-screen-editor.git 对应分支master
  2. 编译组态服务npm run build
  3. dist目录下内容是所需部署在服务器的内容。
  4. 编译后检查根目录下是否有dist目录,有则说明编译成功。
  5. 编译好的内容需放在前端工程根目录下前端工程/plugin/screen目录下。(如已有plugin目录则忽略)。

流媒体服务

  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/sagoo-media.git 对应分支main
  2. 编译后端服务./build.sh linux|windows|mac 后面跟编译类型,如linuxwindowsmac
  3. bin目录下内容是所需部署在服务器的内容。
  4. 编译后检查根目录下是否有bin目录,有则说明编译成功。
  5. 编译好的内容需放在后端工程根目录下后端工程/server/SagooMedia目录下。(如已有server目录则忽略)。

规则引擎服务

  • 注:以下是在centos服务器中实现规则引擎安装。
  • 注:因服务器操作系统不同或个人电脑本地环境不同,安装nodejs都会出现不一样的问题。如安装时出现问题需自行找到解决办法。
  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/rule-engine.git 对应分支main
  2. 把项目直接打成压缩包格式,放到服务器/opt/sagoo/rule-engine下。
  3. 规则引擎项目根目录下config.jsSERVER_PORT是IOT服务的端口,因为要访问IOT服务,进行token验证,实现免登录,如果端口不一致需要修改SERVER_PORT对应值。
  4. 查看是否为最新版本yum list nodejs(如是最新版本可跳过第5步)。
  5. 如果不是,通过下面代码增加下载版本源信息curl --silent --location https://rpm.nodesource.com/setup_18.x | sudo bash
  6. 建议先切换源信息在进行安装。npm config set registry https://registry.npm.taobao.org/
    • 因默认是国外npm源信息,下载速度较慢。切换到国内npm源信息后,再进行安装。
  7. 安装nodejsyum install nodejs
  8. 全局安装pm2sudo npm i pm2 -g
  9. rule-engine目录下安装包依赖npm install
  10. 启动项目项目pm2 start packages/node_modules/node-red/red.js --name rule-engine:2881
  11. 可以通过以下命令查看rule-engine项目运行情况pm2 show rule-engine:2881

docker一键部署

  • 注:需要安装docker和docker-compose。
  • 注:如发现部署后出现问题建议先把之前步骤中的前、后端编译内容放到对应的docker文件夹下。
  • 注:前端目录nginx/html/iot-ui替换对应前端服务编译后的文件内容。后端目录iot-professional只需替换后端编译后的二进制文件sagooiot
  1. 拉取仓库代码http://git.mydig.net/Sagoo-Cloud/sagoo-docker-compose.git 对应分支master
  2. 因rule-engine还需手动编译。需确认是否安装nodejs和全局pm2。如未安装,请查看上方规则引擎服务安装步骤。
  3. 如已安装nodejs、pm2后进入rule-engine/rule-engine目录下,npm install安装依赖。
  4. 回到sagoo-docker-compose目录下执行docker-compose up -d启动容器。
  5. 停止和清理容器docker-compose down

以下是所有项目所需仓库和拉取分支说明

  • 注:不要拉错仓库,也不要拉错分支。如需更新分支代码请联系企业微信工作人员。
服务名称前端/后端语言类型仓库地址分支
IOT主程序后端服务后端GOhttp://git.mydig.net/Sagoo-Cloud/sagooiot-professional.gitmain
IOT主程序前端前端VUEhttp://git.mydig.net/Sagoo-Cloud/sagoo-admin-ui.gitprofessional2
组态前端VUEhttp://git.mydig.net/Sagoo-Cloud/sagoo-configuration.gitv2
大屏前端VUEhttp://git.mydig.net/Sagoo-Cloud/big-screen-editor.gitmaster
流媒体前端前端VUEhttp://git.mydig.net/Sagoo-Cloud/sagoo-media-ui.gitmaster
流媒体服务后端GOhttp://git.mydig.net/Sagoo-Cloud/sagoo-media.gitmain
规则引擎服务前端nodejshttp://git.mydig.net/Sagoo-Cloud/rule-engine.gitmain
docker编排,包含所有服务组件(一键部署)http://git.mydig.net/Sagoo-Cloud/sagoo-docker-compose.gitmaster

SagooIoT V2.0.0 正式释放

· 2 min read
佳雨
Team leader

SagooIoT V2 版本正式释放

按照计划,SagooIoT V2 版本已经正式释放。此次版本变化很大,重点是结构性的调整及核心组件的处理的变化。接口将向V1.x版本进行兼容。

版本变化参见:版本更新日志

  • 在V2版中,SagooIoT在全局统一使用分布式的任务队列处理方式,对数据进行统一实时的处理。采用具备跨线程、跨计算机分配工作的一种机制。支持分布式任务,支持定时任务,支持后台任务,支持解耦任务,支持实时处理任务。

  • 规范了插件的编写方式,独立出来,方便插件的编写及维护,并简化主工程的代码量。

  • 增加模块化的开发方式,进行模块功能与核心功能分离,方便功能的扩展及维护,并简化主工程的代码量。

  • 调整目录结构,公共处理统一到pkg目录中,方便其它功能开发调用及代码的维护管理。

  • 增加核心处理程序、web服务程序、任务队列处理程序分离单独运行的支持,提高程序的稳定性及可靠性。(收费版中提供)

社区用户可以通过以下方式获取SagooIoT V2版本:https://github.com/sagoo-cloud/sagooiot

原有的V1.x版本将不在继续维护,放到分支sagooiot-v1。 前后端工程都是如此。

SagooIoT V2.0.0 预告

· 3 min read
佳雨
Team leader

SagooIoT V2版预告

V2版本将在春节后释放,此次版本变化很大,重点是结构性的调整及核心组件的处理的变化。接口将向V1.x版本进行兼容。 在V2版中,SagooIoT将在全局统一使用分布式的任务队列处理方式,对数据进行统一实时的处理。采用具备跨线程、跨计算机分配工作的一种机制。支持分布式任务,支持定时任务,支持后台任务,支持解耦任务,支持实时处理任务。

在V2.0.0版本中,我们将会对以下内容进行调整:

  1. 重构设备数据上报处理链路,增加中间缓存队列,提高数据上报处理效率。
  2. 重构缓存处理,统一使用方式。并对多处频繁调用的数据进行了缓存处理,提高数据处理效率。
  3. 重构消息队列及定时任务的处理,改为分布式的任务队列处理方式,提高消息队列的处理效率及可靠性,并提供可视化的消息队列监控界面。
  4. 重构部分代码的编写方式,规范入参及接口处理方式,提高代码可读性及可维护性。产品与设备,所涉及调用统一为key的方式。
  5. 插件的编写方式进行了调整,独立出来,方便插件的编写及维护,并简化主工程的代码量。
  6. 增加模块化的开发方式,进行模块功能与核心功能分离,方便功能的扩展及维护,并简化主工程的代码量。
  7. 调整目录结构,公共处理统一到pkg目录中,方便其它功能开发调用及代码的维护管理。
  8. 增加核心处理程序、web服务程序、任务队列处理程序分离单独运行的支持,提高程序的稳定性及可靠性。
  9. 强化性能分析及监控功能,方便对系统进行性能分析及监控。并提供可视化的性能分析及监控界面。

启用新的文档站

· One min read
佳雨
Team leader

今天将SagooIoT的文档站重构,使用了Docusaurus3,这是一个React静态站点生成器,用于构建开源项目的文档站点。

对于SagooIoT的文档站,我希望它能够更加简洁,更加易于维护,更加易于阅读。Docusaurus3提供了很多功能。我将逐步使用这些功能来完善SagooIoT的文档站。