在前两篇文章中,我们介绍了车联网场景中的通信协议选择以及千万级车联网消息平台的架构设计。在本期文章中,现中科创达汽车云技术负责人田桢将结合其多年在上汽大众的车联网平台设计经验,分享车联网业务场景下的 MQTT 消息主题设计思路。
什么是 MQTT 协议的主题
。
车联网 TSP 平台主题设计原则最佳实践
前文中我们提到在车联网场景中 MQTT 主题定义了业务与数据的通道,主题定义的核心是区分业务场景。
如何合理的定义主题,需要根据一定原则来设计。我们可以从以下几个维度来设计与定义主题:
在车联网场景中,不同车型意味着车辆产生的数据不完全相同,车机能力不完全相同,对接的业务应用也不尽相同。我们可以根据车型型号对差异化的车辆数据以及业务进行主题上的区分。
当然,同一个主机厂下的不同车型也会有相同的业务和数据,这些业务可以通过跨车型的主题来定义。
在车联网场景中,如车控等安全等级较高的业务场景往往需要一对一的主题作为数据通通道。一方面通过主题来隔离车辆与车辆之间的业务信息,另一方面保证数据可以点对点的交互。
在主题设计中,有时需要将车辆的唯一标识符作为主题的一部分来实现一对一的消息通道。常见的方案有使用车辆 VIN 码作为主题的一部分。
在实际使用场景中,也存在需要根据用户(而非车辆)实现车云的一对一的消息通道,此类需求经常发生在用户促销、运营、ToB 业务等场景中。
在主题设计时,常见的方案有两种,一是使用用户 ID 作为主题的一部分;二是通过人-车关系转换成车辆级主题,但由于消息时效性、车内用户登录状态等原因,此方案下生产端及消费端均需要添加额外的设计及处理,相对复杂。
从项目工程实施角度出发,一般在主题设计时同时会添加环境变量,通过配置实现不同研发环境下的资源复用以及正确性检查。
■ 海量主题支持
■ 强大规则引擎
■ 代理订阅功能
■ 丰富的主题监控与慢订阅统计
■ 通配符使用与主题数层级
■ 主题与内存的消耗
随着 MQTT 协议在车联网业务中的广泛普及,车联网 TSP 平台的 MQTT 消息主题设计将是各主机厂与 TSP 平台方案供应商必须面对的课题。
本文是我们结合多年 TSP 平台建设经验,针对车联网业务从多维度总结的 MQTT 主题设计思路,希望能够在平台前期设计与业务扩展阶段给行业同仁一些帮助与启发。
田桢,前上汽大众车联网云平台资深架构专家,现为中科创达汽车云技术负责人
We are hiring! Join us and Code the Future together.
联系客服