营销权益平台春晚技术探究
导读
在当前快速发展的互联网环境中,许多企业和服务都面临着高并发场景的挑战。随着用户规模不断增长,对于同一时间内大量用户请求的处理能力、系统性能、稳定性和容错性的要求也日益提高。高并发场景对系统架构设计、数据库设计、缓存策略、自动化运维、安全防护、成本、效率等方面提出了重大挑战,需要综合考虑各项因素并采取有效的措施。本次分享将结合春晚案例,剖析如何应对高并发问题,以确保系统的稳定性和可扩展性。
导读
在当前快速发展的互联网环境中,许多企业和服务都面临着高并发场景的挑战。随着用户规模不断增长,对于同一时间内大量用户请求的处理能力、系统性能、稳定性和容错性的要求也日益提高。高并发场景对系统架构设计、数据库设计、缓存策略、自动化运维、安全防护、成本、效率等方面提出了重大挑战,需要综合考虑各项因素并采取有效的措施。本次分享将结合春晚案例,剖析如何应对高并发问题,以确保系统的稳定性和可扩展性。
01 背景
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
营销权益平台在2024春晚期间,主要承接抽奖场景支付券的投放和裂变互动场景主态、客态钱包余额的发放。为晚会活动提供科技券权益验资、权益领取、权益查询能力。
1、权益验资流程
验资的主要功能是判定用户是否可以领取指定权益,当用户点击“开始刮奖”时零售UMC会调用验资接口,批量获取当前用户可领的权益。该过程会对运营投放的每个活动进行基础信息的校验、库存校验、领取规则校验、资格校验、风控校验等,最后返回用户可领的权益集合,具体流程如下:
2、权益发放流程
验资流程结束后,零售umc会拿到用户可领的所有权益,包含支付券、红包、东券、实物等,umc会根据策略下发本次抽奖用户具体命中的权益给SOA,SOA发起权益的领取操作,如命中支付券,此时会调用权益发放接口,权益发放接口会对当前要领取的活动进行基础校验、规则校验、风控校验、完成以上校验后,进行活动库存扣减、用户资格扣减、权益入账(写库),并返回最终的领取结果。
02
挑战
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
1、成本与服务
既要考虑成本,又要考虑服务质量,还要考虑业务创新,在这种复杂的情况下,成本与服务的平衡成为架构设计中最大的挑战。
2、三高保障
同时满足高性能、高并发、高可用要求,中间件、数据等依赖服务达到瓶颈,加机器也不能解决的问题,如何破局?
03 实现
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
1、限流
1)基于业务需求分析
明确业务玩法:C端视角的交互流程,主要考虑限流发生时对用户体验的影响。
明确业务目标:春晚期间业务计划发放的券总数。
活动流量特点:口播轮次及时间的确认,对于峰值的趋势预测,考虑舍弃峰值流量对目标达成的影响。
2)基于历史数据分析
以数据驱动,参考营销日常、大促、跨晚、会场活动等发放数据情况,结合业务目标,评估合理的限流值。
2、重缓存
使用缓存可以显著提高系统性能,降低数据源压力,改善用户体验,是保障系统高性能的有效方式。营销系统大量使用本地及redis缓存,缓存架构如下:
本地缓存的构建的两种方式:
一级缓存:本地+mysql+推模式更新。
两级缓存:本地+r2m+mysql+推模式更新。
3、合并
合理的业务流程设计,将能够并行处理的逻辑通过多线程进行并行处理,通过批量请求的方式降低网络开销减少IO操作,保障系统性能的同时能有有效保护下游系统。
4、拆分
1)传统方式(日常领券链路)
优点:简单、性能有保障、强一致性。
缺点:单节点并发瓶颈。
2)本地库存方式(收银台链路)
优点:读链路可实现横向扩展、强一致性。
缺点:库存较少时可能会产生单节点瓶颈。
3)分片库存(春晚版本)
优点:读写高并发。
缺点:弱一致性,少卖,库存和流量的量级要求要达标。
5、隔离
同机房调用:jsf、jmq、r2m尽可能做同机房调用。春晚期间jmq跨零售和金融机房,与Jmq运维在金融机房搭建服务,降低跨机房耗时。
数据隔离:对用户数据、系统数据进行隔离、营销系统将用户资格数据、用户权益记录、用户领取记录分别存储,同时针对春晚券状态单独存储。
读写分离:对核心r2m、cds做读写分离,以降低主节点压力,提升系统性能。
业务隔离:对异步落库消息实现业务隔离,避免春晚期间券发放消息积压导致线上其他活动券到账延时。
04 总结
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
高并发场景下的解决方案往往需要综合考虑系统架构、技术选型、性能优化和容量规划等方面的问题,需要对业务和系统的整体情况有较深入的理解和把握。另外,高并发下的系统设计不是一成不变的,需要不断地根据业务发展和系统性能进行优化和调整,以适应不断变化的需求。同时,高并发场景下的系统设计需要注重容错和安全性,充分考虑异常情况下的应对措施,保障系统的稳定性和可靠性。综上所述,高并发场景下的系统设计需要综合考虑技术、业务和运维等多方面因素,是一个具有挑战性但又充满乐趣的工作。
京东广告研发——效率为王:广告统一检索平台实践京东中台化底层支撑框架技术分析及随想AIGC在保险场景中的视觉应用