物联网连接管理平台架构的参考设计

序言


  通常情况下,物联网平台可以按业务划分为以下几个子平台:

平台 说明
连接管理平台CMP(Connectivity Management Platform) 应用于网络通信,通过联网,该平台可以对物联网设备进行连接管理、故障管理、网络资源用量管理、资费管理、 账单管理以及服务托管等
设备管理平台DMP(Device Management Platform) 对物联网终端进行远程监控、 配置调整、软件升级、故障排查以及生命周期管理等功能,并通过提供开放的API调用接口帮助客户实现系统集成和增值开发等,所有设备的数据存储在云端。
业务分析平台BAP(Business Analytics Platform) 该层包括基础大数据服务和机器学习等两大功能。大数据服务是指将数据的采集、分析、处理,并实现可视化的过程。而机器学习是将数据进行训练,形成具有预测性功能的业务分析逻辑。
应用使能平台AEP(Application Enablement Platform) 该层是能够快速开发部署物联网应用的云平台,同时能够为客户提供完整、具有动态扩展、按需服务以及高可用性的物联网应用,是一个结合应用场景的系统开发平台。

  很显然,物联网设备连接管理平台是物联网平台的基石,那么,连接管理平台的架构设计就尤为重要。

需求

  设计一个支持高可用,高并发,高吞吐,灵活扩展,弹性伸缩,不限协议的物联网连接管理平台。

方案

设计原则

  必须坚持高内聚,低耦合,可演进的设计原则。

如何支持灵活扩展和弹性伸缩

  弹性伸缩可以使用当下热门的微服务架构来实现,功能上的灵活扩展可以通过支持插件的方式实现,不限协议的方式可以通过动态配置文件的形式来实现。这几个都不是本文的重点,这里就不赘言了。

如何解决三高问题

  毫无疑问,解决三高问题的方案必须是分布式加集群。那么,先重新认识一下什么是分布式(distributed),什么是集群(cluster):分布式是指将同一条请求或者消息的处理拆分成多个子业务进行处理(男女搭配,干活不累),集群是指将同一个业务部署多个机器上(男男搭配,你行我行他也行)。分布式服务间是有通信的,而集群服务是各自独立的,也可以简单理解为集权是服务的部署方式,分布式是服务的协作方式。废话不多说,上才艺

物联网连接管理平台(CMP)分布式集群架构的原理图

  1. 整个系统将一条物联网终端的消息拆分成异步化的3个处理环节,接收消息,分发消息,处理消息。
  2. 为了解决高可用问题,当设备发起连接是,可通过负载均衡的方式实现,负载均衡的方案下面再细讲。
  3. 为了解决高吞吐问题,将TCP Gateway部署成集权,再通过负载均衡的方式将设备分配到不同的服务。
  4. 为了解决高并发问题,但消息量瞬间剧增时,将消息加入到消息中间件的消息队列中,然后由消息路由服务决定这条消息投递到哪一个业务服务订阅的队列。这里产生了两个异步,消息路由服务既是消费者也是生产者,当上游消息量剧增时,通过弹性新增下游消费服务,能够起到消息削峰填谷的作用。
  5. 将设备的回话缓存到Redis集群,例如key是clientId,value是serviceId,这样消息路由服务便可以通过该映射得知消息应该路由到哪一个服务。这个可以更具具体需求来,订阅树结构是方案也不错。
  6. 各个分布式服务通过Nacos作为服务发现中心和配置管理中心。
  7. CMP Manager 通过RPC对服务进行管理,例如获取实例允许的具体情况等,统一对外开放RPC接口。

分布式服务的管理

  • 服务发现(zookeeper,nacos,consul,eureka)
  • 实时事务处理(akka)

分布式RPC服务的通信

  • 远程调用(gRPC,Dubbo,RESTful)
  • 消息中间件(RabbitMQ,KafaKa,ActiveMQ)
  • 群组多播(JGroups)

分布式长连接服务的负载均衡

  • 基于域名+端口+LVS的负载均衡,常见的算法有轮询、随机、最小响应时间、最小并发数、哈希等。
  • 基于固定API+IP的弹性分配。
  • 基于Nginx+一致性哈希的连接代理。

分布式服务的存储

  • HBase
  • InfluxDB

高并发消息的削峰填谷方案

  • 对生产进行流控,自定义拒绝策略,匀速消费的方案。
  • 业务上游队列缓冲,限速发送;业务下游队列缓冲,限速执行的方案
  • 将服务接收请求、处理请求和返回请求进行异步处理的方案

总结

  分布式架构有利也有弊,架构设计应当结合实际,但也要高瞻远瞩。以上架构仅仅是一种常见的方案,具体的落地过程又可能千差万别,因为需求万变才是最大的不变,所以架构应当是以不变应万变。

  愿每一位程序员都能被温柔以待。

参考文档

今日诗词

作者信息