物联网平台之单体架构

介绍
本文主要介绍平台的单体架构,包括各个组件之间的数据流描述以及所做的一些架构选择。
在单体架构模式下,所有 ThingsKit 组件都在单个 Java 虚拟机 (JVM) 中启动,并共享相同的操作系统资源。由于 ThingsKit 是用 Java 编写的,因此整体架构的明显优势是最小化运行 ThingsKit 所需的内存。您可以在受限环境中使用 512 MB RAM 启动并运行 ThingsKit 进程。明显的缺点是,如果一个组件的消息过载(例如 MQTT 传输),它也可能会影响其他组件。
架构图

c19ffed67c3bd50925cf7c1c51aacbc0.jpeg

传输组件

ThingsKit提供基于 MQTT、HTTP 和 CoAP 的 API,可用于您的设备应用程序/固件。每个协议 API 均由单独的服务器组件提供,并且是 ThingsKit “传输层”的一部分。下面列出了组件的完整列表和相应的文档页面:

  • HTTP 传输组件,平台提供了设备 API 接入;
  • MQTT 传输组件,平台提供了直连设备 API接入,请参考;还有网关设备 API接入;
  • CoAP 传输组件,平台提供了设备 API 接入,;
  • TCP/UDP 传输组件,平台提供TCP设备 API接入;还有UDP设备 API接入;

每个传输组件将数据推送到规则引擎,并且还可以使用核心服务向数据库发出请求以验证设备凭证等。

由于 ThingsKit 在传输和核心服务之间使用非常简单的通信协议,因此很容易实现对自定义传输协议的支持,例如:通过JT808、HJ212、IEC104等,都可以在传输层写脚本来完善。

数据库组件

数据库组件,主要由PostgreSQL 数据库,再加上TimescaleDB时序数据库插件或者Cassandra分布式数据库插件构造而成。

核心服务组件

核心服务组件主要功能:

  • REST API 调用
  • 设备遥测数据的订阅
  • 监控设备的连接状态

ThingsKit节点使用 Actor System 来实现租户、设备、规则链和规则节点 Actor。平台节点可以加入集群,每个节点都是平等的。服务发现是通过 Zookeeper完成的。ThingsKit节点使用基于实体ID的一致哈希算法在彼此之间路由消息。因此,同一实体的消息将在同一 ThingsKit 节点上处理。平台使用gRPC在 ThingsKit 节点之间发送消息。

外部系统组件

数据库组件,主要由PostgreSQL数据库,再加上TimescaleDB时序数据库插件或者Cassandra分布式数据库插件构造而成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688631.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux安装配置Docker保姆级教程

Docker到底是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间…

远程智控BACnet/IP I/O模块助力Metasys系统无缝对接

江森自控的Metasys系统以其强大的综合管理能力成为众多楼宇自控项目的首选平台。然而,面对日益增长的个性化需求与复杂多变的设备接入挑战,如何高效、灵活地扩展其I/O控制能力成为关键。在此背景下,BACnet/IP分布式远程I/O模块的出现&#xf…

使用Remix部署智能合约到币安链(Remix的操作介绍 币安链合约的部署) 点赞收藏哦

大家好,我是程序员大猩猩呀。 据我所知,很多人进入币圈之后,想要通过炒币一夜暴富!另一部分人呢他们希望自己能创建一个项目,然后发行自己的数字货币然后暴富。 不管是什么方式吧,只要不违法,…

weditor安装的时候产生的问题

先放出来github的地址https://github.com/alibaba/web-editor,这个上面给了两种安装方式一种是: pip3 install -U weditor 这种方式会报错误, 具体原因我也不知道。那就采用第二种方式 git clone https://github.com/openatx/weditor pip3…

连锁收银系统的五大功能

连锁收银系统是零售行业中不可或缺的工具,它为连锁店铺提供了必要的管理和运营支持。一个完善的连锁收银系统应当具备以下五大功能,以满足不断发展的零售业务需求。 1. 进销存管理 进销存管理是连锁店铺运营的核心,也是连锁收银系统不可或缺…

docker runc升级1.1.12

上传runc-1.1.12制品至中控机 874e970eaa932a97de9888344ae08f24 runc.arm64 将所有节点的runc文件备份 所有节点(包括master+node) vim host [all] 10.1.0.183 ansible_password=Bigdata@Ksyun123 ansible_user=root ansible_port=22 10.1.0.249 ansible_password=Bigdata…

K8S搭建

文章目录 K8S搭建配置要求 安装 Kuboard-Spray加载离线资源包规划并安装集群访问集群重启Kubernetes集群Worker节点不能启动许多Pod一直Crash或不能正常访问 containerd配置网络代理 常用的 kubectl 命令: K8S搭建 安装高可用的Kubernetes集群 配置要求 对于 Kub…

个人网站快速搭建手册:低成本,高效率,轻松发布

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来-快速构建个人站|博客|系统,低成本发布上线 目录 前言 博主主页搭建案例 虚拟主机|服务器|域名 使用免费二级…

[每周一更]-(第96期):Rsync 用法教程:高效同步文件与目录

文章目录 一、引言二、rsync 基本概念三、介绍rsync 是什么?四、安装五、rsync 基本语法常见示例(默认ssh协议): 六、常用选项1. -a 或 --archive2. -v 或 --verbose3. -z 或 --compress4. --delete5. --exclude6. --exclude-from…

maven远程仓库访问顺序

首先需要了解一下各个配置文件,主要分为三类: 全局配置文件(${maven.home}/conf/settings.xml),maven安装路径下的/conf/settings.xml用户配置文件(%USER_HOME%/.m2/settings.xml),windows用户文件夹下项目配置文件:p…

探索国外静态住宅代理:保护网络安全与隐私的利器

随着互联网的日益发展,网络安全和隐私保护成为越来越多用户关注的焦点。在这个信息爆炸的时代,如何确保网络活动的匿名性和安全性成为了我们必须面对的问题。国外静态住宅代理作为一种新兴的网络技术,为我们提供了有效的解决方案。 &#xf…

人类将会永生?谷歌 DeepMind重磅发布Alphafold 3 ——天花板级别的AI系统

当地时间 5 月 8 日,顶级科学期刊《Nature》发表了一份重磅研究论文。谷歌 DeepMind 发布了其生物学预测工具 AlphaFold 的最新版本——AlphaFold 3。 这个革命性的新模型,能以前所未有的精度预测所有生命分子的结构和相互作用。作为一个以整体方式计算…