前言
MQTT 协议早已是物联网领域当之无愧的主流协议,其凭借轻巧高效、可靠安全、双向通讯等特性在诸多行业物联网平台搭建中得到了广泛的应用。那么 MQTT 协议在车联网场景中的应用情况如何呢?
本文将从 EMQ 车联网行业用户实际案例经验出发,对比不同物联网通信协议在车联网平台搭建应用中的利弊,分享企业该如何基于自身情况选择合适的 MQTT 消息接入产品与服务,以及当前在数据传输安全、数据集成等方面的最热门技术方案。
MQTT 协议适合车联网吗?
整个车联网业务架构复杂,涉及多个通信环节,在本文中我们讨论的是车联网平台主要负责的云-端消息接入模块。
MQTT 是基于发布/订阅模式的物联网通信协议,具有简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。在车联网场景中,MQTT 依然能够胜任海量车机系统灵活、快速、安全接入,并保证复杂网络环境下消息实时性、可靠性, 其主要应用优势如下:
- 开放消息协议,简单易实现。市场上有大量成熟的软件库与硬件模组,可以有效降低车机接入难度和使用成本;
- 提供灵活的发布订阅和主题设计,能够通过海量的 Topic 进行消息通信,应对各类车联网业务;
- Payload 格式灵活,报文结构紧凑,可以灵活承载各类业务数据并有效减少车机网络流量;
- 提供三个可选的 QoS 等级,能够适应车机设备不同的网络环境;
- 提供在线状态感知与会话保持能力,方便管理车机在线状态并进行离线消息保留。
综上,如果配以具备海量车端连接、软实时、高并发数据吞吐以及多重安全保障能力的消息中间件产品,MQTT 协议无疑是将为车联网平台的搭建带来便利。
相比于 MQTT,其他协议差在哪里?
目前为止大多数车联网客户首选的都是 MQTT 协议,我们也遇到过一些客户曾选择其他诸如私有 TCP、HTTP 协议,但从最终结果来看,MQTT 都是车联网场景下的最佳选择。
在没有接触过 MQTT 协议之前,华南某大型主机厂采用了私有化的 TCP 协议(ACP 协议)构建车联网服务平台。经过长周期的协议规范设计和开发,基本实现了车联网平台的主要功能。但随着车联网业务场景的不断增加和车机数量的不断增长,私有化的 TCP 的弊端逐渐凸显:协议私有化定义与版本维护困难、所有的协议功能(如保活、断线重连、离线消息等)都需要定制开发,私有的协议也导致终端硬件适配都需要定制开发,成本高、周期长,更新迭代慢等问题突出。随着 MQTT 协议生态不断完善和在车联网平台通讯协议选型中被广泛采用,该主机厂在新一代车联网平台的开发中开始采用 MQTT 协议,基于 EMQX 物联网接入平台为其提供的完善 MQTT 协议支持,不仅降低了开发成本、缩短了开发周期,同时实现了更多的功能场景和运维手段。
华东某大型主机厂现有一百多万的存量车机,之前的车联网平台采用私有的 TCP 协议构建,面对百万车机海量的消息通信,私有化的 TCP 协议维护成本高,消息可靠性无保障,日常系统维护和功能扩展开发工作量大。随着 MQTT 协议在集团内部车联网平台广泛采纳,该主机厂也开始启动 MQTT 协议的改造升级工作,目前针对部分车型已经通过 OTA 升级的方式完成了升级,未来他们计划分阶段逐步完成所有车型的升级改造工作。
还有一个车企客户早期与我们接触过,但考虑到初期业务比较简单以及自身技术选型问题,最终使用了自建 HTTP 服务的形式接入车机。随着业务发展,传统的请求-响应模式通信已经无法满足新增业务需求,同时随着功能与终端数量增多,整个平台通信量成倍增加,使用 HTTP 接入出现了性能瓶颈。该客户最终还是选择了 MQTT 作为接入协议,使用 EMQX 提供的数据接入方案很好地解决了之前的业务难题。
总体来看,私有协议具有封闭性、排他性等特点,在制定初期是为了解决特定的问题而设计导致缺乏灵活性,往往在业务调整之后难以满足新的需求,企业不得不在协议中加入更多的特性;又或者因为接入量的增多,私有协议 Server 端过早达到了性能和扩展性的瓶颈。以上种种原因最终导致用户工作的重心从业务开发转移到接入层、中间件的开发,无形中增加了平台项目成本。因此 MQTT 协议顺理成章地成为最适合车联网领域的主流协议。
如何选择 MQTT 消息接入产品/服务?
平台设计中,系统架构设计与产品选型是一个严谨的过程。用户首先要结合应用场景,评估产品功能是否满足业务需求,性能与可扩展性能否能够支撑平台短期的设计容量以及未来可能的增长;产品使用成本也是一个重要的考量,产品本身的成本、IaaS 基础设施、开发集成和维护工作这些都会影响客户的总体拥有成本;此外还应当结合产品全球化能力进行评估,对于有海外业务的项目,产品能否支持全球部署、是否满足各个地区的合规性、能否避免云计算提供商锁定这些都是选择产品的依据。
EMQ 的车联网客户在选型过程中经常会与云计算提供商的物联网消息接入 SaaS 服务进行对比。相比之下 EMQX 的优势主要在于私有部署和标准化能力 —— 支持私有部署到任意云平台,无平台锁定,提供标准 MQTT 协议,这也是车联网客户普遍看重的一点。
避免云计算供应商锁定有助于企业用户获得竞价优势,可以减少企业与云计算供应商中止合作关系而带来的影响。另一方面多云支持也可以充分使用不同云计算提供商的技术与商业优势,比如一些全球运营的企业可以在国内和海外选择不同的云计算提供商。
此外还有相当一部分客户看中 EMQX 较低的使用成本,根本原因是由于计费方式不同,往往业务规模越大,云计算提供商的接入服务成本越高。
不过从成本考量也有例外。之前曾有车企用户评估了云提供商的接入服务和 EMQX 后,考虑到自身的运维成本和风险后最终放弃私有部署,选择了云提供商的接入服务。而随着 EMQ 的全托管 MQTT 消息服务 - EMQX Cloud 的上线,这个问题也得到解决。通过 EMQX Cloud,现在用户可以在免除基础设施管理维护负担的同时,保持了同私有部署一致的成本预算清晰可控、跨云跨平台等优势,没有后顾之忧地开展车联网平台建设。
对于有私有部署需求的客户,EMQX 也有其独有的优势。EMQX 提供全球性的商业支持,较高的产品性能可带来海量连接和吞吐能力,规则引擎与数据桥接则提供快速集成能力。同时针对车联网领域,高可靠和易扩展架构能力以及云边一体的 V2X 信息交互能力也让 EMQX 在支持私有部署的同类产品中脱颖而出。
2018 年上汽大众在设计研发新一代车联网系统时,SC 部门考虑到新型车联网大并发、低时延、高吞吐的场景需求,参考了国内外主流新型车联网系统架构,最终采用了基于 MQTT 协议建设新一代车联网平台。
该项目中,MQTT 的特性与 EMQX 强大规则引擎数据集成能力和通用型总线能力有效满足了客户对复杂网络下消息实时性可靠性的要求,并解决了项目时间紧、任务重,需要快速开发对接的需求。
查看客户成功故事: 上汽大众联合 EMQ 打造新一代智慧车联网系统
大家都在使用什么技术方案?
作为消息中间件,EMQX 提供了丰富且灵活的集成能力,且每个功能都提供了不同的技术方案以供用户选择,经过长期使用总结,比较热门的技术方案如下:
安全保障
在传输链路层上我们均推荐用户启用 TLS 加密传输,但是多数云计算提供商的负载均衡产品不支持 TLS 终结,生产部署时需要额外部署 HAProxy 等组件来卸载 TLS 证书。另外有部分客户需要国密算法 TLS 加密传输,我们也专门定制提供了方案。
TBox 接入最常见的是使用证书认证,EMQX 提供可扩展的认证链,支持第三方认证平台扩展(如 PKI 系统),基于用户名/密码的外置数据源和内部数据库认证其次。
此外绝大部分用户都启用了 EMQX 鉴权功能,为不同 TBox 终端分配相应的发布、订阅权限以有效保护数据安全。
数据集成
将流经 EMQX 的海量车联网数据与业务系统连接是客户最重视的能力,EMQX 内置了规则引擎和数据桥接能力,可以将 MQTT 数据流式传输到 Kafka、各类 SQL / NoSQL / 时序数据库中,而实际项目中绝大多数客户都使用 Kafka 作为后端流处理组件。
Kafka 专注于数据的存储和读取,而 EMQX 则侧重于客户端和服务器之间的通信,EMQX 用来快速接收和处理来自大量物联网设备的消息,Kafka 可以收集并存储这些数据并将其发送给后端程序来分析和处理,这个架构是目前应用最广的数据集成方案。
写在最后
目前汽车电子发展迅速,助推车联网行业技术升级,智能交通及汽车行业未来市场前景可观,可以预见有更多的车主消费者和骑车厂家将从中收益。基于完善的 MQTT 协议和 EMQX 强大的产品能力可以帮助车联网平台开发者快速构建健壮、灵活的车联网平台。EMQ 也将紧跟行业发展趋势,推进消息传输和边缘计算相关的技术发展和落地,为自动驾驶、车辆协同、车联网用户提供更快、更好、更智能的消息服务基础设置。