各位伙伴好,欢迎关注「美团技术团队」微信公众号。在这里,已经有30万小伙伴与大家一起学习成长。本文系后端系列文章汇总,我们也会不断更新这里的内容,点击下面的各个标题就可以查看原文了,Enjoy! TensorFlow在推荐系统中的分布式训练优化实践
美团内部深度定制的TensorFlow版本,基于原生TensorFlow 1.x架构与接口,从大规模稀疏参数的支持、训练模式、分布式通信优化、流水线优化、算子优化融合等多维度进行了深度优化。在推荐系统场景中,分布式扩展性提升10倍以上,单位算力性能也有显著提升,并在美团内部业务中大量使用,本文介绍了相关的优化与实践工作。 如何优雅地记录操作日志?
操作日志几乎存在于每个系统中,而这些系统都有记录操作日志的一套 API。操作日志和系统日志不一样,操作日志必须要做到简单易懂。所以如何让操作日志不跟业务逻辑耦合,如何让操作日志的内容易于理解,如何让操作日志的接入更加简单?上面这些都是本文要回答的问题。我们主要围绕着如何“优雅”地记录操作日志展开描述,希望对从事相关工作的同学能够有所帮助或者启发。 新一代CTR预测服务的GPU优化实践
CTR模型在互联网的搜索、推荐、广告等场景有着广泛的应用。近年来,随着深度神经网络的引入,CTR模型的推理对硬件算力的要求逐渐增加。本文介绍了美团在CTR模型优化的实践。通过分析模型结构特点,结合GPU硬件架构,我们设计了一系列流程对模型进行定制优化,达到了降低延迟、提高吞吐、节省成本的目标。 美团终端消息投递服务Pike的演进之路
Pike 2.0致力于为美团提供一套易接入、高可靠、高性能的双向消息投递服务。本文首先从系统架构升级、工作模式升级、长稳保活机制升级等方面介绍了Pike 2.0的技术演进,然后介绍了Pike 2.0在直播、游戏等新业务场景下的特性支持。希望本文能给对消息投递服务感兴趣或者从事相关工作的读者一些帮助和启发。 百亿规模API网关服务Shepherd的设计与实现
在微服务架构下,服务拆分会让API的规模成倍增长,使用API网关来管理API逐渐成为一种趋势。美团统一API网关服务Shepherd就是在这种背景下应运而生,适用于美团业务且完全自研,用于替换传统的Web层网关应用,业务研发人员通过配置的方式即可对外开放功能和数据。本文将介绍美团统一API网关诞生的背景、关键的技术设计和实现,以及API网关未来的规划,希望能给大家带来一些帮助或者启发。 算法平台在线服务体系的演进与实践
图灵平台是美团配送技术团队搭建的一站式算法平台,图灵平台中的在线服务框架——图灵OS主要聚焦于机器学习和深度学习在线服务模块,为模型和算法策略的线上部署和计算提供统一的平台化解决方案,能够有效提升算法迭代效率。本文将与大家探讨图灵OS在建设和实践中的思考和优化思路,希望能对大家有所帮助或者启发。 GraphQL及元数据驱动架构在后端BFF中的实践
GraphQL是Facebook提出的一种数据查询语言,核心特性是数据聚合和按需索取,目前被广泛应用于前后端之间,解决客户端灵活使用数据问题。本文介绍的是GraphQL的另一种实践,我们将GraphQL下沉至后端BFF层之下,结合元数据技术,实现数据和加工逻辑的按需查询和执行。这样不仅解决了后端BFF层灵活使用数据的问题,这些字段加工逻辑还可以直接复用,大幅度提升了研发的效率。本文介绍的实践方案已经在美团部分业务场景中落地,并取得不错效果,希望这些经验能够对大家有帮助。 美团Serverless平台Nest的探索与实践
Serverless是目前比较热门的技术话题,各大云平台以及互联网大厂内部都在积极建设Serverless产品。本文将介绍美团Serverless产品在落地过程中的一些实践经验,其中包括技术选型的考量、系统的详细设计、系统稳定性优化、产品的周边生态建设以及在美团的落地情况。虽然各个公司的背景不尽相同,但总有一些可以相互借鉴的思路或方法,希望能给大家带来一些启发或者帮助。 美团图数据库平台建设及业务实践
图数据结构,能够更好地表征现实世界。美团业务相对较复杂,存在比较多的图数据存储及多跳查询需求,亟需一种组件来对千亿量级图数据进行管理,海量图数据的高效存储和查询是图数据库研究的核心课题。本文介绍了美团在图数据库选型及平台建设方面的一些工作。 美团弹性伸缩系统的技术演进与落地实践
弹性伸缩具有应突发、省成本、自动化的业务价值。平台侧将各业务零散、闲置资源进行整合,形成一个大规模资源池,通过弹性调度、库存管控技术在公司运营成本和业务体感中寻求较好的平衡。
本文将介绍美团弹性伸缩系统落地过程中面临的技术挑战、推广以及在运营层面的一些思考。在美团这种多样化的业务场景中落地弹性伸缩,与业界公有云、自建私有云的公司相比,既有共性又有自己的特点,希望能为大家提供新的思路或者启发。 OCTO 2.0:美团基于Service Mesh的服务治理系统详解
OCTO 2.0是美团下一代分布式服务治理系统,它基于美团现有服务治理系统OCTO 1.0与Service Mesh通信基础设施层的结合,是命名服务、配置管理、性能监控、限流鉴权等服务治理功能的全新演进版本。本文主要讲述OCTO 2.0的重要功能及实现思路,希望能对从事相关开发的同学有所帮助或者启发。 Java 线程池实现原理及其在美团业务中的实践
随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。
本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。 Java 中 9 种常见的 CMS GC 问题分析与解决
目前,互联网上 Java 的 GC 资料要么是主要讲解理论,要么就是针对单一场景的 GC 问题进行了剖析,对整个体系总结的资料少之又少。前车之鉴,后事之师,美团的几位工程师历时一年多的时间,搜集了内部各种 GC 问题的分析文章,并结合个人的理解做了一些总结,希望能起到“抛砖引玉”的作用。 Java 即时编译器原理解析及实践
跟其他常见的编程语言不同,Java将编译过程分成了两个部分,这就对性能带来了一定的影响。而即时( Just In Time, JIT )编译器能够提高Java程序的运行速度。本文会先解析一下即时编译器的原理,然后再分享一些在美团实践的经验,希望能对大家有所帮助或者启发。 美团万亿级 KV 存储架构与实践
KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量。在 2019 年 QCon 全球软件开发大会( 上海站 )上,美团高级技术专家齐泽斌分享了《美团万亿级 KV 存储架构与实践》,本文系演讲内容的整理,第一部分讲述了美团 KV 存储的发展历程;第二部分阐述了内存 KV Squirrel 架构和实践;第三部分介绍了持久化 KV Cellar 架构和实践;最后分享了未来的发展规划和业界新趋势。
美团配送 A/B 评估体系建设实践
本文从评估体系建设的原因开始入手,重点阐述了美团配送技术团队在A/B评估体系构建过程中的一些思考和具体的实践,包括如何建立完备的指标体系、如何建立科学权威的评估方式等等。希望能够给大家一些启发和帮助。 新一代垃圾回收器 ZGC 的探索与实践
很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰,作为新一代的低延迟垃圾回收器,ZGC在大内存低延迟服务的内存管理和回收方面,有着非常不错的表现。
本文从GC之痛、ZGC原理、ZGC调优实践、升级ZGC效果等维度展开,详述了ZGC在美团低延时场景中的应用,以及在生产环境中取得的一些成果。希望这些实践对大家有所帮助或者启发。 设计模式在外卖营销业务中的实践
业务策略多变导致需求多变,是业界很多技术团队面临的最具挑战的问题之一。那么如何设计一套易于扩展和维护的营销系统呢?
今天的文章来自美团外卖营销技术团队,他们分享了从领域模型到代码工程之间的转化,从DDD引出了设计模式,并详细介绍了工厂方法模式、策略模式、责任链模式以及状态模式这四种模式在美团营销业务中的具体实现,将理论与实践进行了一次深度结合。 美团命名服务的挑战与演进
命名服务主要解决微服务拆分后带来的服务发现、路由隔离等需求,是服务治理的基 石。美团命名服务(以下简称 MNS)作为服务治理体系 OCTO 的核心模块,目前承 载美团上万项服务,日均调用达到万亿级别。为了更好地支撑美团各项飞速发展的业 务,MNS 开始从 1.0 向 2.0 演进。本文将围绕本次演进的初衷、实现方案以及落地 的效果等方面进行展开,同时本文还介绍了命名服务作为一个技术中台组件,对业务 的重要价值以及推动业务升级的一些成果。希望本文对大家能够有所启发。 复杂环境下落地 Service Mesh 的挑战与实践
在私有云集群环境下建设 Service Mesh ,往往需要对现有技术架构做较大范围的改造,同时会面临诸如兼容困难、规模化支撑技术挑战大、推广困境多等一系列复杂性问题。本文会系统性地讲解在美团在落地 Service Mesh 过程中,我们面临的一些挑战及实践经验,希望能对大家有所启发或者帮助。 美团 MySQL 数据库巡检系统的设计与应用
巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团的巡检系统架构是如何设计的,以及巡检系统是如何保障MySQL服务稳定运行的。 Kubernetes 如何改变美团的云基础设施
Kubernetes 是让容器应用进入大规模工业生产环境的开源系统,也是集群调度领域 的事实标准,目前已被业界广泛接受并得到了大规模的应用。Kubernetes 已经成为 美团云基础设施的管理引擎,它带来的不仅仅是高效的资源管理,同时也大幅降低了 成本,而且为美团云原生架构的推进打下了坚实的基础,支持了 Serverless、云原 生分布式数据库等一些平台完成容器化和云原生化的建设。 MyBatis 版本升级引发的线上告警回顾及原理分析
本文从一次MyBatis版本升级引发的线上告警开始讲起,然后针对告警定位过程、源码原理进行了深入的分析,并加入了不同版本的类比分析,最后结合实际工作做了一些经验总结,希望能对大家的工程实践有一定的帮助。 C++ 服务编译耗时优化原理及实践
美团搜索与NLP部为公司提供基础的搜索平台服务,出于性能的考虑,底层的基础服务通过C++语言实现,其中我们负责的深度查询理解服务(Deep Query Understanding,下文简称DQU)也面临着编译耗时较长这个问题,整个服务代码在优化前编译时间需要二十分钟左右(32核机器并行编译),已经影响到了团队开发迭代的效率。
在这样的背景下,我们针对DQU服务的编译问题进行了专项优化。在这个过程中,我们也积累了一些优化的知识和经验,在这里分享给大家。 速度与压缩比如何兼得?压缩算法在构建部署中的优化
压缩在数据传输和存储过程中经常扮演着十分重要的角色,因此提高压缩的效率可以帮助我们节省时间和降低存储成本。本文介绍了压缩算法的优化在构建部署平台的应用,能够帮助研发团队提高研发和交付效率。 美团 OCTO 万亿级数据中心计算引擎技术解析
美团自研的 OCTO 数据中心(简称 Watt)日均处理万亿级数据量,该系统具备较好 的扩展能力及实时性,千台实例集群周运维成本低于 10 分钟。本文将详细阐述 Watt 计算引擎的演进历程及架构设计,同时详细介绍其全面提升计算能力、吞吐能力、降 低运维成本所采用的各项技术方案。希望能给大家一些启发或者帮助。 Intel PAUSE 指令变化影响到 MySQL 的性能,该如何解决
MySQL 得益于其开源属性、成熟的商业运作、良好的社区运营以及功能的不断迭代 与完善,已经成为互联网关系型数据库的标配。可以说,X86 服务器、Linux 作为基 础设施,跟 MySQL 一起构建了互联网数据存储服务的基石,三者相辅相成。本文将 分享一个工作中的实践案例:因 Intel PAUSE 指令周期的迭代,引发了 MySQL 的 性能瓶颈,美团 MySQL DBA 团队如何基于这三者来一步步进行分析、定位和优化。希望这些思路能对大家有所启发。 Netty堆外内存泄露排查盛宴
Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
最近在做一个基于 Websocket 的长连中间件,服务端使用实现了 Socket.IO 协议( 基于WebSocket协议,提供长轮询降级能力 ) 的 netty-socketio 框架,该框架为 Netty 实现,鉴于本人对 Netty 比较熟,并且对比同样实现了 Socket.IO 协议的其他框架,Netty 的口碑都要更好一些,因此选择这个框架作为底层核心。
APPKIT打造稳定、灵活、高效的运营配置平台
美团App、大众点评App都是重运营的应用。对于App里运营资源、基础配置,需要根据城市、版本、平台、渠道等不同的维度进行运营管理。如何在版本快速迭代过程中,保持运营资源能够被高效、稳定和灵活地配置,是我们团队面临的重大考验。
在这种背景下,大众点评移动开发组必须要打造一个稳定、灵活、高效的运营配置平台。本文主要分享我们在建设高效的运营配置平台过程中,积累的一些经验,以及面临的挑战和思考。 Oceanus:美团HTTP流量定制化路由的实践
Oceanus是美团基础架构部研发的统一HTTP服务治理框架,基于Nginx和ngx_lua扩展,主要提供服务注册与发现、动态负载均衡、可视化管理、定制化路由、安全反扒、session ID复用、熔断降级、一键截流和性能统计等功能。
本文主要讲述Oceanus如何通过策略抽象、查询、渲染和分组动态更新,实现HTTP请求的定制化路由。 美团服务体验平台对接业务数据的最佳实践-海盗中间件
移动互联网时代,用户体验为王。美团服务体验平台希望能够帮助客户解决在选、购、用美团产品过程中遇到的各种问题,真正做到“以客户为中心”,为客户排忧解难。但服务体验平台内部只维护客户的客诉数据,为了精准地预判和更好地解决客户遇到的问题,系统必须依赖业务部门提供的一些业务数据,包括但不限于订单数据、退款数据、产品数据等等。
本文会着重讲一下在整个系统交互过程中遇到的一些问题,然后分享一下在实践中探索出来的经验和方法论,希望能够给大家带来一些启发。
UAS-点评侧用户行为检索系统
大众点评在精细化运营层面进行了很多深度的思考,我们根据用户在App内的操作行为的频次和周期等数据,给用户划分了不同的生命周期,并且针对用户所处生命周期,制定了不同的运营策略,比如针对成长期的用户,主要运营方向是让其了解平台的核心功能,提高认知,比如写点评、分享、收藏等。同时,我们还需要为新激活用户提供即时激励,这对时效性的要求很高,从用户的行为发生到激励的下发,需要在毫秒级别完成,才能有效提升新用户的留存率。
所以,针对这些精细化的运营场景,我们需要能够实时感知用户的行为,构建用户的实时画像。此外,面对大众点评超大数据流量的冲击,我们还要保证时效性和稳定性,这对系统也提出了非常高的要求。在这样的背景下,我们搭建了一套用户行为系统( User Action System )。 大众点评账号业务高可用进阶之路
在任何一家互联网公司,不管其主营业务是什么,都会有一套自己的账号体系。账号既是公司所有业务发展留下的最宝贵资产,它可以用来衡量业务指标,例如日活、月活、留存等,同时也给不同业务线提供了大量潜在用户,业务可以基于账号来做用户画像,制定各自的发展路径。因此,账号服务的重要性不言而喻,同时美团业务飞速发展,对账号业务的可用性要求也越来越高。本文将分享一些我们在高可用探索中的实践。
服务的高可用是每个业务方都极力追求的事,本文将详细讲讲大众点评账号团队在高可用方面的思考和实践,看看我们的实现有什么不一样。 美团数据平台Kerberos优化实战
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户端、服务器端的应用程序提供强大的认证服务。作为一种可信任的第三方认证服务,Kerberos是通过传统的密码技术( 如:共享密钥 )执行认证服务的,被Client和Server同时信任。
KDC是对该协议中第三方认证服务的一种具体实现,一直以来都是美团数据平台的核心服务之一。但随着平台业务的快速增长,当前线上KDC的处理能力不足和不能可靠监控的问题被凸显的日益严重:线上单台KDC服务器最大承受QPS是多少?哪台KDC的服务即将出现压力过大的问题?为什么机器的资源非常空闲,KDC的压力却会过大?如何优化?优化后瓶颈在哪儿?如何保证监控指标的全面性、可靠性和准确性?这都是本文需要回答的问题。 美团广告实时索引的设计与实现
传统的CTR/CVR预估,典型的机器学习方法包括人工特征工程 + LR( Logistic Regression )、GBDT( Gradient Boosting Decision Tree ) + LR、FM( Factorization Machine )和FFM( Field-aware Factorization Machine )等模型。相比于传统机器学习方法,深度学习模型近几年在多领域多任务( 图像识别、物体检测、翻译系统等 )的突出表现,印证了神经网络的强大表达能力,以及端到端模型有效的特征构造能力。同时各种开源深度学习框架层出不穷,美团集团数据平台中心也迅速地搭建了GPU计算平台,提供GPU集群,支持TensorFlow、MXNet、Caffe等框架,提供数据预处理、模型训练、离线预测、模型部署等功能,为集团各部门的策略算法迭代提供了强有力的支持。
美团海量的用户与商家数据,广告复杂的场景下众多的影响因素,为深度学习方法的应用落地提供了丰富的场景。本文将结合广告特殊的业务场景,介绍美团搜索广告场景下深度学习的应用和探索。 美团智能支付核心交易系统的可用性实践
每个系统都有它最核心的指标。比如在收单领域:进件系统第一重要的是保证入件准确,第二重要的是保证上单效率。清结算系统第一重要的是保证准确打款,第二重要的是保证及时打款。
美团智能支付的核心链路,承担着智能支付100%的流量,内部习惯称为核心交易。因为涉及美团所有线下交易商家、用户之间的资金流转,对于核心交易来说:第一重要的是稳定性,第二重要的还是稳定性。 每天数百亿用户行为数据,美团怎么实现秒级转化分析?
用户行为分析是数据分析中非常重要的一项内容,在统计活跃用户,分析留存和转化率,改进产品体验、推动用户增长等领域有重要作用。美团每天收集的日志达到数百亿条,如何在海量数据集上实现对用户行为的快速灵活分析,成为一个巨大的挑战。为此,我们提出并实现了一套面向海量数据的用户行为分析解决方案,将单次分析的耗时从小时级降低到秒级,极大的改善了分析体验,提升了分析人员的工作效率。
本文以有序漏斗的需求为例,详细介绍了问题分析和思路设计,以及工程实现和优化的全过程。本文根据2017年12月ArchSummit北京站演讲整理而成。 境外业务性能优化实践
应用性能是产品用户体验的基石,性能优化的终极目标是优化用户体验。当我们谈及性能,最直观能想到的一个词是“快”,Strangeloop在对众多的网站做性能分析之后得出了一个著名的3s定律“页面加载速度超过3s,57%的访客会离开”,可见页面加载速度对于互联网产品的重要性。
速度在Google、百度等搜索引擎的PR评分中也占有一定的比例,会影响到网站的SEO排名。“天下武功,唯快不破”,套在性能上面也非常适用。 卫星系统——酒店后端全链路日志收集工具介绍
随着酒店业务的高速发展,我们为用户、商家提供的服务越来越精细,系统服务化程度、复杂度也逐渐上升。微服务化虽然能够很好地解决问题,但也有副作用,比如问题定位。
本文介绍了如何通过日志收集、绘制调用链路图并在图上展示相关日志,解决微服务拆分过细的情况下,全链路排查问题的痛点。 从实际案例聊聊Java应用的GC优化
当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。
即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例。 领域驱动设计在互联网业务开发中的实践
至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计( Domain-Driven Design,简称DDD )。
在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开发中所面临的问题。本文就先来讲一下这些问题,然后再尝试在实践中用DDD的思想来解决这些问题。 流计算框架 Flink 与 Storm 的性能对比
Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架。其中 Apache Storm(以下简称“Storm”)在美团实时计算业务中已有较为成熟的运用( 可参考 Storm 的可靠性保证测试 ),有管理平台、常用 API 和相应的文档,大量实时作业基于 Storm 构建。
而 Apache Flink在近期倍受关注,具有高吞吐、低延迟、高可靠和精确计算等特性,对事件窗口有很好的支持,目前,在美团实时计算业务中也已有一定应用。 大圣魔方——美团酒旅BI报表工具平台开发实践
当前的互联网数据仓库系统里,数据中心往往存放了大量Cube化或者半Cube化的数据。如果需要将这些数据的内在关系体现出来,需要写大量的程序和SQL来发现数据之间的内在规律,往往会造成用户做非常多的重复性工作;而且由于没有数据校验的机制,还容易出错,无法直观查看各种数据( 没有可视化的UI图表 )。
这时就急需一款基于Cube的报表工具快速为用户提供报表服务,可以完成多维查询、上卷、下钻等各种功能。为此,美团酒旅技术团队开发了大圣魔方。 人工智能在线特征系统中的生产调度
本文将以美团酒旅在线特征系统为原型,介绍特征生产调度的架构演进及核心技术。架构演进共包含三个阶段,不同阶段面临的需求痛点和挑战各有不同,包括导入并发控制、特征变更原子切换、实时特征计算框架涉及、实时与离线调度融合等。
本文我们将从业务需求角度出发,介绍系统演进的三个阶段所解决的主要问题和技术手段,然后把系统演化过程中的一些常见问题和解决方案抽象出来,放在特征生产技术章节统一讨论。 美团数据平台融合实践
互联网格局复杂多变,大规模的企业合并重组不时发生。原来完全独立甚至相互竞争的两家公司,有着独立的技术体系、平台和团队,如何整合,技术和管理上的难度都很大。2015年10月,美团与大众点评合并,成为全球规模最大的生活服务平台。主要分布在北京和上海两地的两支技术团队和两套技术平台,为业界提供了一个很好的整合案例。
本文将重点讲述数据平台融合项目的实践思路和经验,并深入地讨论Hadoop多机房架构的一种实现方案,以及大面积SQL任务重构的一种平滑化方法。最后介绍这种复杂的平台系统如何保证平稳平滑地融合。