从零到百万级iot系统架构演进(会不断更新

简介: 2年从单应用架构,到现在基础中台的iot架构,从零到现在注册用户百万

2017年6月第一版本,采用的是单体结构进行开发,全部业务功能和通讯功能都集中在一个项目中,由于一开始只在香港地区运作,系统没有做国际化处理,时间都是东八区时间;机柜的通讯方式为WebSocket和Netty,其中主要以WebSocket为主,下面是第一版本架构图:图片 1.png

2018年1月,项目开始需要往国际化方向发展,开始了第一次重构。此次重构,主要从粗粒度的拆分原有系统的角度,把相对独立的功能模块抽取出来。原有项目CMS管理后台,APP接口,机柜WebSocket和Netty服务都跑在一个项目中,功能复杂,且难维护,所以次把原有项目拆分为cdb-admin(CMS管理平台),cdb-api(APP接口),cdb-task(任务调度服务),cdb-websocket(机柜通讯服务),cdb-server-monitor(服务健康监控服务)等五个服务,服务之间,通过RabbitMQ通讯,把功能从业务中抽离出来,Netty服务由于机柜原因,不在使用,下面是第一次重构后的版本架构图:
图片 1.png

2018年7月,我们正式取消websocket和netty服务,全面拥抱阿里的iot平台,下面是iot的对接逻辑:
图片 1.png

2018年12月,由于销售及维护人员业务需求,在年中增加BD相关业务和app(cdb-sale),12月增加BO相关业务和APP(cdb-bo),运营报表业务服务(cdb-report)以及年中更换换代的全新三代机柜,开始大量回收市面上一二代机柜(使用WebSocket的机柜,但还是有少量在市面上运行)。新换代的三代机柜,通讯方式采用阿里云的IOT平台,阿里云的IOT平台会将机柜上报的数据保存到阿里云IOT产品下,对应名称的队列中,因此,增加一个cdb-mns服务,对IOT平台的消息队列进行消费。也随着服务量的增加,对日志查询的需求日益增长,所以我们开始搭建了ELK日志收集平台,下面是新增业务需求后的系统架构图:图片 1.png

2019年7月,由于现有系统无法满足日益增长的业务量,对现有项目进行第二次重构,这次重构的目标是实现大中台,小前端。为了快速把公用或核心的业务沉淀到中台中,我们第一步考虑把机柜相关的核心业务逻辑,从现有项目中抽离出来,搭建机柜中心,沉淀到中台能力中去。这又是对于iot独立部署重大尝试,对于现有服务中原先与机柜业务耦合在一起的业务逻辑,我们会提供一个机柜能力聚合层,让现有项目直接使用能力聚合层的Restfull Api接口,调用机柜中心的服务,完成相关的业务功能,下面是抽离出来机柜中心后,原有项目中cdb-api和cdb-admin,与机柜中心的混合架构图:
图片 1.png

我们在搭建业务中台的各个中心,同时基于阿里iot的平台进行了融合,搭建了双通道的iot平台,就是我们在机柜里面会用MQTT连着两个服务,一个是阿里iot平台,一个是我们的自己平台,一旦阿里iot平台出现国外断服务的情况下,能无感切换到自己的服务平台,并且异步不断尝试连接阿里iot的服务,随时切换回阿里iot服务

目录
相关文章
|
2月前
|
Kubernetes 物联网 数据中心
大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad
大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad
|
7月前
|
存储 物联网 数据管理
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(12)
现在到了使用Apache IoTDB进行IoT相关开发的架构设计与功能实现的最后一个环境,在本文中我将向大家介绍IoTDB的查询语言。IoTDB为咱们广大开发者提供了类似SQL的查询语言,用于与IoTDB进行交互,查询语言可以分为4个主要部分:架构语句、数据管理语句、数据库管理语句、功能。
132 0
|
7月前
|
SQL 物联网 Apache
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(11)
目前,IoTDB中不存在冲突的权限,因此用户的真正权限是用户自身权限和用户角色权限的结合。也就是说,要确定用户是否可以执行操作,取决于用户自己的权限之一或用户角色的权限是否允许该操作。用户自己的特权和用户角色的特权可能会重叠,但这并不重要。
117 1
|
7月前
|
SQL 传感器 物联网
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(10)
物联网提供限制/限制条款和偏移/偏移子句,以使用户对查询结果有更多的控制权。使用 LIMIT 和 SLIMIT 子句允许用户控制查询结果的行数和列数,使用 OFFSET 和 SOFSET 子句允许用户设置结果的起始位置进行显示。
|
2月前
|
存储 边缘计算 Kubernetes
大规模 IoT 边缘容器集群管理的几种架构 -6- 个人体验及推荐
大规模 IoT 边缘容器集群管理的几种架构 -6- 个人体验及推荐
|
2月前
|
边缘计算 Kubernetes 物联网
大规模 IoT 边缘容器集群管理的几种架构 -0- 边缘容器及架构简介
大规模 IoT 边缘容器集群管理的几种架构 -0- 边缘容器及架构简介
|
2月前
|
运维 Kubernetes 物联网
大规模 IoT 边缘容器集群管理的几种架构 -1-Rancher+K3s
大规模 IoT 边缘容器集群管理的几种架构 -1-Rancher+K3s
|
2月前
|
Kubernetes 安全 物联网
大规模 IoT 边缘容器集群管理的几种架构 -3-Portainer
大规模 IoT 边缘容器集群管理的几种架构 -3-Portainer
|
2月前
|
边缘计算 运维 Kubernetes
大规模 IoT 边缘容器集群管理的几种架构 -4-Kubeedge
大规模 IoT 边缘容器集群管理的几种架构 -4-Kubeedge
|
2月前
|
运维 Kubernetes 物联网
大规模 IoT 边缘容器集群管理的几种架构 -5- 总结
大规模 IoT 边缘容器集群管理的几种架构 -5- 总结

热门文章

最新文章