现有系统复杂的困境
如今,优惠计算系统面临两大难题。一方面,系统在优惠计算时需解析【优惠对象】符号背后的业务语义,然后判断买家是否符合条件。随着业务规则不断升级,系统变得极其复杂,可扩展性差。比如某电商平台,促销活动规则频繁变动,系统因承载过多判断逻辑,维护难度直线上升。
每次优惠查询都要访问用户的关注、购买等关系,查询过程漫长,系统性能低下。在大流量购物节时,如双十一,系统甚至会陷入瘫痪,严重影响用户体验。原来的系统已难以满足业务发展需求,变革迫在眉睫。
创新解决思路探索
为摆脱当前困境,我们有了新想法。想让优惠计算不再理解【优惠对象】的语义,判定过程也不再查询各业务系统。经过分析,发现优惠对象判定都是在回答“用户是否属于某个群体”,于是可以把这种关系抽象出来,提前制备并存储。虽然这只是简易实现,但为解决问题指明了方向。
中台架构的实际状况
实际上,基于中台的解决方案一开始就是类似架构,不过实际中台架构更复杂。以大型企业的中台建设为例,涉及多个部门和多种业务,数据交互频繁。在这个过程中,核心问题是将业务系统里的关注和购买关系同步到人群中,还要保证数据一致。这就像搭建一座数据桥梁,连接不同系统,让数据顺畅流通。
数据同步的具体方式
数据同步有两种方式。一是离线同步,把离线业务数据通过T+1的方式同步到人群服务中。比如每天晚上服务器空闲时,将前一天的业务数据进行整理和同步,确保数据全面更新。二是实时同步,把当天实时产生的关注、取消关注等行为变动,及时同步更新到人群服务中,保证数据时效性。
数据冲突现象及处理
两种同步方式在实施中会出现数据冲突。例如用户A原本关注用户B,某天较早时取消关注,若离线数据还没同步完,全量同步会再次写入关注关系,造成数据与实际不一致。不过离线T+1的全量同步能及时纠正实时同步产生的不一致,保障数据最终一致。通过全量和实时同步相互配合,不断调整和修正,让数据逐渐趋于准确和统一。
不同场景的数据保障
对于搜索、推荐等大流量导购场景,现有同步方案提供了充分数据一致性保障。绝大多数情况下,数据能实时一致,小概率的实时同步不一致也可通过全量同步解决,满足导购场景需求。而针对交易这种强一致性、访问规模小的场景,我们在下单前对人群同步的数据进行核对,保障数据实时完全一致。像在购买高价值商品时,数据一致能确保交易顺利,避免纠纷。架构选型也不是一刀切,若在小范围快速验证优惠能力,最初架构也许更合适,一切要结合实际情况。
你觉得自己所在行业的系统架构在数据同步方面会遇到哪些独特问题?记得点赞和分享本文!