京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?

京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?(图1)

作者|王晓忠

编辑|穆欢、郭雷

京东整个电商系统中,交易系统占据了半壁江山,包括购物车、结算、库存、价格等相关环节。 可以说,交易系统的高可用性基本上决定了整个京东商城的高性能。 可用的功能。 过去一年,京东交易系统进行了哪些迭代和优化? 今年有哪些创新? 交易系统的整体规划是怎样的?

受访嘉宾介绍

王晓忠,京东交易平台高级总监,掌舵京东黄金交易流程和智能营销生态。 他领导的产品和研发团队为京东提供核心交易的系统保障。

InfoQ:您能整体介绍一下交易平台目前的架构吗?

王晓忠:交易平台负责产品、价格、用户、库存、订单等核心电商基础信息的集中管理,以及购物车、商品等黄金交易流程的管控和平台化。结算页面、优惠券/礼品卡和订单中心。 服务。 交易平台致力于科技改变生活,打造智能营销的交易平台。 为用户提供黄金交易流程; 为客户提供智能营销解决方案,包括促销建议、智能库存定位等智能营销工具; 为研发团队提供稳定可靠的交易服务。

京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?(图2)

渠道是交易的流量入口来源,目前主要包括PC、APP、微信、手机QQ等几部分,目前APP入口已占整体流量的70%以上。

组件完成对现有基础服务的抽象和集成,以多元化的方式向外界展示现有的服务资源,灵活组织和支持多种协议的交互,最终实现系统的模块化、服务平台化和功能化。 配置。 组件最大限度地减少外部与内部逻辑的耦合,从而能够快速响应需求。

基础服务位于整个黄金流程的最底层,发挥着交易平台心脏的作用。 其中,商品服务、价格服务、库存服务、用户服务、购物车等是核心中的核心。

中间件和基础设施是基础服务的基石,为业务系统提供高性能、高可用性的技术支撑。

InfoQ:过去一年交易平台做了哪些工作来保证底层平台的稳定性? 有哪些值得读者参考和学习的地方吗?

王晓忠:这一年除了我们一直在做的线上压测、性能优化、扩容、故障转移、限流、降级等常规工作外,我们在系统稳定性维护方面也做了一些细化。 工作。

核心调用链监控。 共同监控黄金交易过程中的各个服务入口点、服务相关依赖、调用者等。 当服务性能和可用性下降时,可以快速定位故障点。 联动监控和故障解决方案,如一键切换、服务降级、限流等,可以快速发现并解决问题。

自动切换。 对于成熟的切换流程,如数据库、缓存、服务等节点客户端,当检测到故障时,可以根据策略自动切换到健康节点,同时故障后可以自动切换回来节点恢复,减少人工操作错误和耗时,提高系统可用性。

异步编程模型。 有些服务完全异步改造,提高吞吐量,还是有一定效果的。 但由于纯异步化对于现有系统的改造还是相当大的,目前还处于尝试推进的阶段。

共享资源池。 提前准备一些资源共享池,混合使用各种服务,平时设置较低的权重。 当某个服务的常规资源组不足时,会增加其在共享池中的权重,以便快速使用资源,无需临时扩容。

全链路压力测试。 从入口开始,模拟用户行为进行压力测试。 流量通过依赖传递,从浏览搜索到订单提交和最终生产,自动覆盖链接中的所有链接。 再加上上面提到的核心调用链监控,解决了以往仅对单一服务进行压力测试覆盖率不够的问题。

随着业务的发展,功能的复杂度也不断增加,故障原因定位变得困难。 很多时候,当线上出现故障时,大部分时间都花在了定位问题上。 只要有计划,故障就能很快解决。 。 调用链监控非常重要。 它可以从全局的角度快速定位问题,并结合故障规划来解决我们的痛点。

随着业务的不断扩展,机器数量的增加,当出现问题时,故障修复的速度变得更慢。 自动故障转移可以解放人类去处理更重要的事情,让大家不用半夜起床去处理故障。 。

InfoQ:目前的交易平台服务是从哪些维度来划分的?

王晓忠:目前交易平台主要根据业务能力划分服务:购物车、结算页、促销、价格、库存、产品、用户等,为PC、手机提供高可靠的大中型平台服务、微信等渠道。

这种划分模型的好处是:

架构稳定是因为业务能力相对稳定且相互独立。

开发团队是自主的,并围绕提供业务价值而不是技术功能进行组织。

服务协同工作并且松散耦合。

InfoQ:您能从业务、系统和基础设施三个层面谈谈您的监控系统解决方案吗?

王晓忠:面对京东这样的大规模分布式系统,服务器随时可能宕机,网络随时可能出现晃动,大量的接口调用平均每天过亿次,而且每天都有几场具有流量聚集效应的促销活动。 博,如果没有强大的监控系统,我们就会盲目。 经过多年的努力,京东目前已经形成了多重监控体系,建立了较为完善的监控体系,时刻监控系统的健康状况,发现问题及时预警:

1)业务层面的监控主要是核心业务指标,如实时订单量等,并按渠道、省份、运营商、机房、品类、活动等进行细分,以便核心业务指标的变化可以及时发现。 能够快速定位、排查问题、做出应急响应。

2)系统级监控,主要是方法或代码块的调用次数、成功率和响应时间。 同时,不同的语言平台都有特定的监控指标,比如Java应用程序,我们也非常关心JVM GC的情况。 我们会按照实例、集群、机房等一步步总结和计算这些指标。关于响应时间,我们更关心TP99甚至TP999。 任何指标低于预设阈值都会触发警报。 在采集单个接口性能数据的基础上,我们将请求访问链所经过的一系列子调用串起来,包括RPC服务之间、访问缓存、访问数据库等,实现快速发现、快速解决调用链中的薄弱环节。

3)基础设施监控,主要监控网络质量和机器健康状况,比如常规带宽、丢包率、重传、连通性、CPU、内存、磁盘等。网络方面,除了内网,我们也非常关注关于公共网络的质量。 一旦发现运营商或区域故障,我们将立即做出响应并制定计划,以确保用户24/7的购物体验。

在监控指标不断提升的同时,我们也在解决监控本身的延迟问题。 京东本身访问量较大,如何在不影响业务本身性能的情况下改善监控的延迟,本身就是一个挑战。 目前我们在业务层面和系统层面都实现了秒级粒度,基础设施中的重要指标也有了秒级数据。 在预警方面,除了传统的邮件、短信之外,我们还集成了京东内部的IM工具,以及手机语音通话。

面对如此多的指标、如此精细的数据,传统的监控仪表板会让我们再次迷失。 因此,我们开发了天眼系统,进一步整合各个监控子系统,结合前面提到的调用链,将多个监控系统展示在大屏幕上。 核心主流程各环节、各调用级别当前健康状况一目了然。 一旦出现故障,我们可以快速响应并在短时间内恢复。

InfoQ:针对恶意流量攻击,京东做了哪些准备? 如何做好预防准备?

王晓忠:恶意流量攻击是每个互联网企业都必须面对的问题。 目前我们将流量攻击分为两类:网络协议层和应用逻辑层。

在网络协议层,针对这些四层或七层协议的各种流量攻击主要集中在带宽或服务资源消耗上。 目前,我们可以通过京东云平台开发的流量分析和清洗系统来防御主流的恶意流量攻击。 此外,信息安全部门还将联合外部力量进行数百GB流量攻防演练,确保协作联动等实用能力。

应用逻辑层恶意流量的范围和影响比较广泛。 狭义上,恶意流量是指利用应用系统的软件漏洞进行拒绝服务攻击; 从广义上讲,恶意流量攻击可以利用应用程序实现逻辑或规则的漏洞来非法实现各种商业利益,无论流量大小。 此次大型攻击由京东多个部门全面防御。

1)信息安全部门开展安全自查和对外配合漏洞报告,各业务研发部门落实安全漏洞消除,如SQL注入、代码执行、横向越权访问、信息泄露等。 2)风控部门通过数据分析,建立各级风控模型,形成不同风险等级的动态账户池,供业务系统使用。 3)业务研发部门根据业务特点、用户风险等级、系统压力等因素,提供不同策略的限流实施。

InfoQ:以商品实时价格为例,谈谈您的读逻辑和写逻辑流程?

王晓忠:京东实时价格面临几大挑战:一是数据量大,产品有数十亿种; 二是通话量大,日峰值达到数百亿; 第三,实时性要求高; 最后,业务复杂度高,这不是单一的京东价格,不仅要综合计算各种促销规则,还要对PC、手机、第三方合作渠道和地区进行差异化运营。 在这里,我们采用读写分离和异步策略,并选择支持大并发和高性能的开源组件进行设计,保证水平扩展性和高稳定性。

京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?(图3)

1)编写逻辑流程:当采购和营销在后端调整价格或创建促销时,同步写入MySQL数据库,然后通过异步任务更新促销主Redis数据,同时更新促销的过期时间戳价格主Redis,并通过Redis本身的复制机制将数据传播到从节点。 2)读取逻辑流程:当用户浏览前端的商品列表、详情等页面时,异步访问实时价格服务。 此时Nginx内嵌的Lua程序直接读取本地Redis(从机)中的价格数据。 如果未过期,则直接返回给用户; 如果过期或者不存在,则返回源接入实时计价服务,立即将最新价格返回给用户。 3)回源写入逻辑:实时价格计算服务读取促销主Redis,在将最新价格返回给用户的同时,异步写入价格主Redis集群。 价格主Redis将数据同步到前端Nginx节点的从Redis节点。

InfoQ:今年618期间京东交易平台做了哪些技术改进或创新,未来会考虑哪些优化升级方向?

王晓忠:除了上面提到的技术改造主要用于维护系统稳定性之外,今年交易平台还投入了更多的精力进行改进和创新,以提高用户体验和GMV。 例如,利用大数据技术和机器学习模型,可以提供千人、千价、千人、千促销的体验。

我们也在尝试利用大数据和机器学习来做一些系统稳定性方面的工作,比如:

1)在SQL注入和恶意代码执行方面,引入机器学习模型,从现有攻击行为中学习和训练特征。 引入半监督学习,使模型能够通过学习自动发现新型攻击。 大大提高攻击发现的效率和识别新攻击的能力。 各项指标已经完全超越了传统的规则识别。

2)利用有向图模型来检测恶意攻击的来源,更加准确、快速地进行来源分析,取得了非常好的效果。

接下来我们会继续尝试在这个方向上做一些创新,比如:

1)优化人机行为检测。 利用聚类和NLP模型来识别恶意刷单行为,提高恶意刷单行为的验证水平,从而大大减轻后端接口的压力。

2)评论价值评估模型,识别真实评论和刷评论。 让评论更有价值。

3)探索智能故障预测。 目前很多监测预警都是事后做的。 我们希望能提前做好。 通过分析历史和周期性故障数据,结合当前实时健康状况,可以快速识别“死亡”机器和实例,真正实现智能监控和预警。

技术会议建议

百度AI开发者大会——7月5日,百度2017百度AI开发者大会将在北京国家会议中心举行。 百度创始人、董事长兼首席执行官李彦宏和百度集团总裁兼首席运营官陆奇将发布针对开发者和生态合作伙伴的重要计划。 开放平台、开放平台等百度AI生态系统的重要战略、技术、业务进展、解决方案也将首次向各行业的开发者和合作伙伴展示,释放生态潜力。 详情请点击“阅读原文”!

京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?(图4)

今天的推荐

点击下图阅读

京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?(图5)

道哥:我的人生有两个重大的选择,但都是为了同一件事。

京东商城交易平台高级总监王晓钟:整体的交易系统规划是怎么样的?(图6)

部分文章来自互联网,如有侵权请联系删除。发布者:28预订网,转转请注明出处:https://www.28368.cn/dianshang/8293.html