共计 4288 个字符,预计需要花费 11 分钟才能阅读完成。
简介: 在放弃对业界趋势调度关注的同时,始终选用最适宜本身的技术,这可能是中瑞能在车联网畛域引领行业的重要起因之一,正如中瑞 CTO 所说“阿里云云原生产品体系带给咱们的,不是单纯的 IT 工具,而是整个团队战斗力的晋升”。
作者 | 山猎
中瑞团体成立于 2011 年,是一家青岛外乡的物联网独角兽企业。中瑞团体致力于利用物联网和人工智能技术,交融智慧交通、智慧城管、智慧出行、智慧物流、智慧风控、智慧审计、智慧车险、智慧校园、智慧批发等业务场景,为数万家政府和企业客户提供资产数字化治理解决方案。自 2015 年以来,团体业务营收年均复合增长率超过 100%,2019 年营收超过 20 亿人民币。中瑞团体累计服务 7000 余家汽车经销商、200 余家金融机构、20 多家出名出行机构。2020 年 10 月平台累计在线车联网终端设备超过 678 万台,是全国车联网在线终端规模 No.1 的利用平台。
商用车辆数字化治理是中瑞团体的外围业务之一,在这个畛域,中瑞团体已联动包含整车厂、银行、汽车金融机构、保险公司、根底技术提供方等十数家机构,造成以传感器、人工智能算法、数据管理平台为外围的整体解决方案,为客户提供高度定制个性化服务,同时辅以汽车金融、保险、规范制订、平台经营等衍生性能板块,业务能力涵盖数字化治理我的项目设计、建设和经营的各个阶段。
商用车辆数字化治理,通过车联网技术连贯大量终端配备,实时收集并解决海量数据。智能车载传感设施会依据不同行业属性,如物流、出行、工程作业、农业作业等,产生人、车、货、设施等数据。中瑞团体基于对车联网行业实际的深度积攒,将物联网与挪动互联网技术相结合,依附云计算、大数据等技术的反对,自主研发中瑞车联云平台。通过对在线经营车辆数据的收集、解决和剖析,反馈到整车厂研发、设计、洽购、生产、销售及售后各个环节,无效改善了整车设计程度,晋升了零部件品质,优化了销售策略,进步了售后实时性及准确度。
车联网智能设施实时上报的数据,会同步流转到多个业务零碎进行解决,其中包含中瑞自建的在线业务平台、离线剖析平台和实时计算平台,还有一部分数据会通过 API 的形式进行透出,提供给配备所属机构和政府监管部门应用。中瑞团体依据政府监管政策要求,承建智慧城市出行平台,通过部署车载联网终端设备,会集合乎当地监管要求和技术标准的车辆作业数据,上传归集至当地政府数据中心,同时建设遵循国家标准的凋谢数据接口,提供给各部委调用。
对于中瑞的技术团队而言,每一条通过车联网上报的数据都是十分宝贵的,其背地蕴藏着微小的业务价值。因而,在进行零碎架构设计的时候,须要思考到如下几个重要的业务诉求:
1、对于上报的数据,通过一个两头模块进行音讯散发,交给不同的零碎进行解决,缩小音讯复制的老本。
2、当上游业务模块的音讯处理速度比拟快的时候,要确保音讯流转的低时延。这个需要对于大多数在线业务场景都是十分重要的,比方当车联网用户发动一个新的指令的时候,云端须要尽可能快的对指令进行解决,并及时给予回复。
3、当上游业务模块的音讯处理速度跟不上数据上报速度的时候,须要音讯能尽可能多的在两头模块进行暂存,并在单方速度拉平的时候,让之前暂存的音讯可能失去正确的解决。这是一种典型的异步化通信思路,在绝大多数的离线剖析场景,以及局部在线业务场景中被宽泛的应用,可能显著晋升零碎整体的稳定性和吞吐量。
通过引入音讯队列,可能比较顺利的实现这几大业务诉求,音讯散发、暂存的工作都能够交给音讯队列来实现,不须要在具体的业务模块中自行实现。
在整个零碎架构中,所有音讯的流转都须要通过音讯队列来实现。在业务高峰期,会有超过 100 万台车联网设施同时在线,每秒的产生的音讯数量,也会达到百万级别,因而音讯队列的稳定性以及吞吐能力至关重要。在音讯队列的选型上,中瑞的技术团队针对业界支流的产品进行了深刻摸索。
在音讯队列产品选型过程中,咱们排除了是无奈通过程度扩大的形式线性晋升整体性能的音讯队列产品。这类产品以 ActiveMQ 和 RabbitMQ 为代表,尽管在业界失去了宽泛应用,但无奈撑持来自于海量设施的大吞吐量需要。最实质的起因是这类产品并不是依照原生的分布式理念进行设计,当性能无奈满足业务需要的时候,只有通过垂直晋升硬件性能的形式实现,降级过程中对业务有感知,而且性能晋升的水平无限,不具备可操作性。
Kafka 是一个比拟好的抉择,其原生的分布式设计理念能确保性能能够通过程度扩容而实现线性的晋升。中瑞的技术团队对 Kafka 进行了大量技术预研,心愿可能通过 Kafka 的程度扩大能力撑持起中瑞的高并发业务场景。但随着钻研的深刻,中瑞的技术团队发现 Kafka 也存在肯定的局限性。对于流转到在线业务模块以及第三方合作伙伴的音讯,须要确保音讯的可达性,也就是说不论零碎的哪个环节呈现了异常情况,都应该确保重要的音讯不失落。这一点 Kafka 没有方法在协定层提供保障,并在测试过程中也失去了验证:过后 Kafka 与在线业务模块之间的网络呈现了短暂抖动,这原本应该是一个很常见的异常情况,零碎能够比拟快的工夫内复原运行。但理论应用过程中,这次网络抖动造成了一批音讯的永久性失落,这在一些金融风险管制相干的要害业务场景中是不能被承受的。
在测试的过程中,中瑞还发现往 Kafka 集群退出新的节点的时候,会造成集群的性能呈现抖动状况,通常会继续 1 小时以上。这个过程中尽管集群层面能确保高可用,但对于业务仍然会造成肯定的影响,这是由 Kafka 底层的 ISR 机制的实现原理导致的,整个技术界都没有太好的优化方向。
通过深刻的评估,中瑞最终决定采纳 RocketMQ 来建设音讯队列集群。RocketMQ 是阿里巴巴在历年双 11 业务的积淀下,构建的低提早、高并发、高可用、高牢靠的分布式消息中间件。最后 RocketMQ 的诞生,也参考了 Kafka 的分布式模型,但在 Kafka 的根底上围绕在线交易类业务场景进行了多项优化。对于中瑞来说,RocketMQ 建设在协定层的音讯必达性保障能够避免重要的数据在流转的过程中失落,这种必达性保障通过了各种刻薄场景的验证,齐全能够应用在金融相干业务中。对于每一个发往 RocketMQ 的音讯,只有发送方收到了来自于 RocketMQ 的回执,就能确保这条音讯肯定会被对应的生产方接管并正确的解决。
早在 2012 年,RocketMQ 就被募捐给了开源组织,并在随后成为 Apache 的顶级我的项目,因而 RocketMQ 在整个业界具备十分高的影响力,对于 RocketMQ 的实现原理、优化计划,都能在技术论坛找到大量的材料。但在到底应用开源 RocketMQ 进行自建,还是应用云上商业版 RocketMQ 的问题上,中瑞的技术团队倒是很快达成了统一:对于一只以业务倒退为第一导向的技术团队而言,云上商业版在老本和效率上体现进去的劣势是不言而喻的。
RocketMQ 人造具备高可用性,不论是 Name Server 集群还是 Broker 集群,当有节点宕机的时候,整个集群仍然能够对外提供服务,不会对业务造成影响。但在这种状况下,RocketMQ 集群处于一种比拟软弱的状态,须要使用者想方法进行系统性的补救,以确保在下一次呈现节点宕机的时候,RocketMQ 集群仍然可能稳固得运行。比方当一个 Master Broker 节点呈现故障后,尽管 Slave Broker 节点仍然能够承当音讯收发的工作,而且 RocketMQ 的音讯同步机制确保了这个过程中的音讯不失落,但使用者须要尽快将 Slave 节点降级为 Master 节点,并引入新的 Slave 节点。否则当原有的 Slave 节点再次遇到故障的时候,整个集群将进行工作,这会对业务造成十分重大的影响。在开源 RocketMQ 的实现中,并没有提供欠缺的机制来实现主从 Broker 的互相切换,须要使用者自行实现计划,危险十分大。在前期的版本中,尽管提供了 Dledger 多正本机制实现主从切换,但操作难度很大,切换的过程中也并不能保障平滑过渡,会使业务造成肯定的抖动。
RocketMQ 集群的扩容也是一项十分有挑战性的工作,在引入新节点的过程中,须要投入大量运维工作量,扩容所须要的工夫也比拟长。每一步的操作都必须小心谨慎,一旦呈现操作失误,就会导致整个集群不可用。在中瑞的业务场景中,因用户流量的突增而引发零碎紧急扩容的需要比拟频繁。音讯队列是整个零碎的外围,必须保障每一次扩容都能够在保障业务不中断的前提下疾速实现。
阿里云版本的 RocketMQ 完满的解决了高可用和弹性伸缩这两个方面的挑战。这样的能力来自于阿里巴巴本身业务场景的积淀和历练,也就是每年双 11 流动的极其考验。随着阿里云的飞速发展,RocketMQ 成为了阿里云音讯队列产品家族的最重要组成部分。云上的商业版 RocketMQ 残缺保留了在阿里团体本身业务场景中积淀的高吞吐量、沉积能力、高可用性、高安全性、低提早性,并针对云上的使用者在易用性方面进行了大量加强。中瑞的技术团队在零碎架构中全面应用阿里云版 RocketMQ 作为音讯队列后,对集群进行了屡次程度扩容,以满足更大用户量更高并发的需要。在业务值峰期间,数百万台车联网设施同时在线,给零碎带来了微小的压力,但阿里云版 RocketMQ 作为音讯流转的外围组件,始终保持稳定进行,至今为止 0 故障。
当一支技术团队的工作内容从简单的底层技术细节中解放出来后,他们就有了更多的精力来实现业务畛域的翻新。这也是云计算以及云原生理念为宽广企业带来的微小价值,随着业务的飞速发展,中瑞的技术团队还会持续围绕云原生技术,摸索更多节俭 IT 老本、晋升业务效率的新方向。以后,中瑞正在将现有的微服务利用进行容器化革新,并全面接入阿里云实时利用监控 ARMS,以实现全栈式的性能监控和端到端的全链路追踪诊断。此外,他们还踊跃尝试通过函数计算 FC 的形式对局部业务零碎进行 Serverless 化革新,从而全面的升高计算资源老本,更充沛的利用云计算的弹性能力。
在放弃对业界趋势调度关注的同时,始终选用最适宜本身的技术,这可能是中瑞能在车联网畛域引领行业的重要起因之一,正如中瑞 CTO 杨少杰所说:“阿里云云原生产品体系带给咱们的,不是单纯的 IT 工具,而是整个团队战斗力的晋升”。
版权申明: 本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。