北海市住建局官方网站,网站的框架,创业加盟,erp管理软件开发公司本文根据美团资深技术专家宋斌在ArchSummit架构师峰会上的演讲整理而成。 背景 美团外卖已经发展了五年#xff0c;即时物流探索也经历了3年多的时间#xff0c;业务从零孵化到初具规模#xff0c;在整个过程中积累了一些分布式高并发系统的建设经验。最主要的收获包括两点即时物流探索也经历了3年多的时间业务从零孵化到初具规模在整个过程中积累了一些分布式高并发系统的建设经验。最主要的收获包括两点 即时物流业务对故障和高延迟的容忍度极低在业务复杂度提升的同时也要求系统具备分布式、可扩展、可容灾的能力。即时物流系统阶段性的逐步实施分布式系统的架构升级最终解决了系统宕机的风险。围绕成本、效率、体验核心三要素即时物流体系大量结合AI技术从定价、ETA、调度、运力规划、运力干预、补贴、核算、语音交互、LBS挖掘、业务运维、指标监控等方面业务突破结合架构升级达到促规模、保体验、降成本的效果。 本文主要介绍在美团即时物流分布式系统架构逐层演变的进展中遇到的技术障碍和挑战 订单、骑手规模大供需匹配过程的超大规模计算问题。遇到节假日或者恶劣天气订单聚集效应流量高峰是平常的十几倍。物流履约是线上连接线下的关键环节故障容忍度极低不能宕机不能丢单可用性要求极高。数据实时性、准确性要求高对延迟、异常非常敏感。美团即时物流架构 美团即时物流配送平台主要围绕三件事展开一是面向用户提供履约的SLA包括计算送达时间ETA、配送费定价等二是在多目标成本、效率、体验优化的背景下匹配最合适的骑手三是提供骑手完整履约过程中的辅助决策包括智能语音、路径推荐、到店提醒等。 在一系列服务背后是美团强大的技术体系的支持并由此沉淀出的配送业务架构体系基于架构构建的平台、算法、系统和服务。庞大的物流系统背后离不开分布式系统架构的支撑而且这个架构更要保证高可用和高并发。 分布式架构是相对于集中式架构而言的一种架构体系。分布式架构适用CAP理论Consistency 一致性Availability 可用性Partition Tolerance 分区容忍性。在分布式架构中一个服务部署在多个对等节点中节点之间通过网络进行通信多个节点共同组成服务集群来提供高可用、一致性的服务。 早期美团按照业务领域划分成多个垂直服务架构随着业务的发展从可用性的角度考虑做了分层服务架构。后来业务发展越发复杂从运维、质量等多个角度考量后逐步演进到微服务架构。这里主要遵循了两个原则不宜过早的进入到微服务架构的设计中好的架构是演进出来的不是提前设计出来的。 分布式系统实践 上图是比较典型的美团技术体系下的分布式系统结构依托了美团公共组件和服务完成了分区扩容、容灾和监控的能力。前端流量会通过HLB来分发和负载均衡在分区内服务与服务会通过OCTO进行通信提供服务注册、自动发现、负载均衡、容错、灰度发布等等服务。当然也可以通过消息队列进行通信例如Kafka、RabbitMQ。在存储层使用Zebra来访问分布式数据库进行读写操作。利用CAT美团开源的分布式监控系统进行分布式业务及系统日志的采集、上报和监控。分布式缓存使用SquirrelCellar的组合。分布式任务调度则是通过Crane。 在实践过程还要解决几个问题比较典型的是集群的扩展性有状态的集群可扩展性相对较差无法快速扩容机器无法缓解流量压力。同时也会出现节点热点的问题包括资源不均匀、CPU使用不均匀等等。 首先配送后台技术团队通过架构升级将有状态节点变成无状态节点通过并行计算的能力让小的业务节点去分担计算压力以此实现快速扩容。 第二是要解决一致性的问题对于既要写DB也要写缓存的场景业务写缓存无法保障数据一致性美团内部主要通过Databus来解决Databus是一个高可用、低延时、高并发、保证数据一致性的数据库变更实时传输系统。通过Databus上游可以监控业务Binlog变更通过管道将变更信息传递给ES和其他DB或者是其他KV系统利用Databus的高可用特性来保证数据最终是可以同步到其他系统中。 第三是我们一直在花精力解决的事情就是保障集群高可用主要从三个方面来入手事前较多的是做全链路压测评估峰值容量周期性的集群健康性检查随机故障演练服务、机器、组件。事中做异常报警性能、业务指标、可用性快速的故障定位单机故障、集群故障、IDC故障、组件异常、服务异常故障前后的系统变更收集。事后重点做系统回滚扩容、限流、熔断、降级核武器兜底。 单IDC的快速部署容灾 单IDC故障之后入口服务做到故障识别自动流量切换单IDC的快速扩容数据提前同步服务提前部署Ready之后打开入口流量要求所有做数据同步、流量分发的服务都具备自动故障检测、故障服务自动摘除按照IDC为单位扩缩容的能力。 多中心尝试 美团IDC以分区为单位存在资源满排分区无法扩容。美团的方案是多个IDC组成虚拟中心以中心为分区的单位服务无差别的部署在中心内中心容量不够直接增加新的IDC来扩容容量。 单元化尝试 相比多中心来说单元化是进行分区容灾和扩容的更优方案。关于流量路由美团主要是根据业务特点采用区域或城市进行路由。数据同步上异地会出现延迟状况。SET容灾上要保证同本地或异地SET出现问题时可以快速把SET切换到其他SET上来承担流量。 智能物流的核心技术能力和平台沉淀 机器学习平台是一站式线下到线上的模型训练和算法应用平台。之所以构建这个平台目的是要解决算法应用场景多重复造轮子的矛盾问题以及线上、线下数据质量不一致。如果流程不明确不连贯会出现迭代效率低特征、模型的应用上线部署出现数据质量等障碍问题。 JARVIS是一个以稳定性保障为目标的智能化业务运维AIOps平台。主要用于处理系统故障时报警源很多会有大量的重复报警有效信息很容易被淹没等各种问题。此外过往小规模分布式集群的运维故障主要靠人和经验来分析和定位效率低下处理速度慢每次故障处理得到的预期不稳定在有效性和及时性方面无法保证。所以需要AIOps平台来解决这些问题。 未来的挑战 经过复盘和Review之后我们发现未来的挑战很大微服务不再“微”了业务复杂度提升之后服务就会变得膨胀。其次网状结构的服务集群任何轻微的延迟都可能导致的网络放大效应。另外复杂的服务拓扑如何做到故障的快速定位和处理这也是AIOps需要重点解决的难题。最后就是单元化之后从集群为单位的运维到以单元为单位的运维业给美团业务部署能力带来很大的挑战。 作者简介 宋斌美团资深技术专家长期参与分布式系统架构、高并发系统稳定性保障相关工作。目前担任即时物流团队后台技术负责人。2013年加入美团参与过美团外卖C端、即时物流体系从零搭建。现在带领团队负责调度、清结算、LBS、定价等业务系统、算法数据平台、稳定性保障平台等技术平台的研发和运维。最近重点关注AIOps方向探索在高并发、分布式系统架构下如何更好的做好系统稳定性保障。招聘信息 美团配送技术团队诚招LBS领域、调度履约平台、结算平台、AIOps方向、机器学习平台、算法工程方向的资深技术专家和架构师。共建全行业最大的单一即时配送网络和平台共同面对复杂业务和高并发流量的挑战迎接配送业务全面智能化的时代。欢迎感兴趣的同学投送简历至 songbinmeituan.comchencheng13meituan.com。