「衍化」与「蜕变」 | 京东金融财富营销系统的进阶之路

2024-02-09 06:40

本文主要是介绍「衍化」与「蜕变」 | 京东金融财富营销系统的进阶之路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击「京东金融技术说」可快速关注

-财富营销系统项目组小伙伴们

「摘要」京东金融财富营销系统万有引力平台,始终贯彻执行财富运营的本质:用户第一,为用户在理财、投资、保值、增值等方面提供服务。

万有引力在第一颗苹果落下所产生的构想中茁壮成长,从衍化到蜕变一直在不断的创造与创新。第一期开发过程中,可支持活动推送,定向产品推荐,交易返利等多维度营销需求。为了很好的服务于财富市场日益加快的规划脚步,万有引力本次从返利模块设计和自动化营销两大版块入手改造,旨在提高用户推送内容准确性及实时性,加快业务系统接入速度和活动类型扩展灵活性,并降低运营小伙伴的学习成本和操作难度,提供友好的营销活动配置通道。

项目背景

万有引力系统定位于支持财富市场各理财业务线日常基本的营销活动,支持定向推送理财产品,推送活动信息,多维度返利等功能。其中推荐模块架构图如下:

在第一版设计中,推送活动需要运营人员手动操作,且返利活动的条件选择种类也比较局限,若想在一次活动中设置多种条件和返利内容,需要反复配置活动信息和返利规则,无形中增加了运营人员的工作负担,对运营人员操作要求也较高。因此,拥有一个可灵活配置,易操作,体验好的营销活动系统成为财富市场十分迫切的需求。除此之外,日益增长的营销数据量给现有系统带来了负担,系统处理速度会影响用户体验,故本次升级包含业务,功能和技术多方面优化。

 

系统进阶

1、业务架构升级:

「接入标准化」设计消息标准化处理模板。新业务线按统一流程接入,具有特异性的部分,根据业务线数据特征特殊处理即可。

「服务统一化」业务线消息接入后,将后续的处理流程封装成统一服务。把剩下的事情交给统一服务(后面即将介绍的返利决策引擎)来完成,无需做额外判断或逻辑处理。

「主流程切分」考虑到现在接收的MQ消息可能由业务系统的定时任务触发,所以我们将主业务流程切分处理,尽量缩短主线处理流,降低处理耗时,提高系统的性能和可用性。除此以外,为了排除系统内处理和系统间交互可能造成所有"失踪事件",让用户稳稳的享受到我们献上的”厚礼”,分段处理方式可以使返利流程中每个节点都有迹可寻。这里,我们将系统处理流分为两段,一段是经过引擎决策后把返利内容拆成一条条返利任务落库,一段是扫出“躺在”库里的返利任务,执行返利发放。

2、功能升级:

「机动化策略」以往一个活动只能配一个规则和返利内容,如果涉及多种约束条件和多种返利形式,活动配置工作量则会成倍增加。本次改造增加了配置策略组的功能,目的在于避免重复劳动,一次活动可配多类规则,指定目标人群,设置递进条件,灵活选择活动产品类型,任意指定返利方式等等。如下图:

 

「返利决策引擎」决策引擎集成了判断用户交易行为,筛选营销活动,匹配规则,优选返利内容等功能,帮助系统完成返利工作。交易数据进入返利决策阶段后,引擎会根据交易数据的特征,匹配与之符合的活动。如果该笔交易触发多个返利活动,引擎会分析活动间的共性,择优选取一种给用户返利。这种做法保证了用户的利益,有益于提高后续用户对营销活动的积极性和参与度,而且极大地将营销活动资源合理分配。

 

「自动化营销」活动期间,运营小伙伴只需简单配置营销规则,系统就可以定向将推荐的产品,活动消息,返利通知等营销内容及时传送到目标用户手中,鼓励用户交易,参与活动或者是查看奖励,而且还会控制打扰用户的次数。

 

3、技术优化:

「cds结合r2m」营销系统设计了多种类别的配置表与流水表,因每类表的数据量和增长量均不同,需要恰到好处的使用分表技术来提升系统的读写效率和承压能力。我司研发的cds技术,可以提供适应业务场景的自主切分方案。在本次系统改造中,将配置属性相关的表设置为孤立表,而像交易流水,营销明细这种成倍递增的数据表,水平拆分,并根据自身增速定义多种切分策略。采用全局唯一sequence,并针对表自身特点设置不同的启动步长。除了选择最适应业务的表配置方案,规范sql语句也是重点改造内容。因cds在语法解析后有缓存功能,改造中我们也规范了分表查询语法结构。在高并发场景下,像消息防重这种简单结构的查询工作尽量打到缓存上,降低数据库访问次数,达到分散压力的效果,保证系统的处理速度和效率。

「任务回调」因本次改造做了主流程切分,需要设置回调任务处理躺在表里的返利内容。我们使用了部门内的调度服务,持续处理待执行的任务。服务时刻监控各任务的节点状态,处理失败的任务会实时告警给系统运维人员,标记失败状态并等待二次处理。

「节点序列标识」消息在进入处理流程后,需要给各节点做唯一标识。如果把这件事情交给数据库去做,未来如果数据迁移,可能会面临很多麻烦,因此系统引入序列号服务,给数据的每个节点做唯一标记。

「容错方案」系统运行中,可能会遇到网络抖动,调用超时,内部异常等情况,因此设计中重点考虑了一些容错方案。目前,凡是单向无必须反馈结果的部分,系统均采用异步处理方式,利用jmq的高可用性和高性能保证消息持久化,也便于容错。如果出现内部错误,系统会抛异常重试,因之前记录了各节点的处理状态,重试消息再次进入系统处理流程时,会直接进入上次出现异常的环节继续处理。当调用接口遇到异常,设置应急开关也很有必要。交互过程中检测到异常,启动开关,如果是消息,则进入等待队列,既不会丢失,还能很好的给任务系统减压。如果是任务,就延迟执行,不会影响处理结果。

「并发处理」系统处理交易消息的过程中存在并发的情况,为避免重复处理,会首先读取消息的处理状态,如果没有状态记录,则标记其为处理中,被标记的消息后续不会被重复处理。同时在消息落库时,用订单流水作为唯一索引。

 

新老系统兼容及切换

「新老系统兼容」本次改版不但要支持新的功能,保证现有功能稳定运行也是改造重点考虑因素。因此在数据库表设计上,兼容老系统所有的属性,在此基础上扩展新的字段,增加新表。在代码中,对新功能处理流程打标,区分新老入口的处理方式,从而保证新功能正常支持,老功能稳定运行。

「切换方案」本次改造上线后,后续的营销活动,用户通知等日常营销手段均从新入口配置,业务数据也接入新流程处理。当前在线的活动在活动到期后,迁移到新库中。

 

往期活动效果分析

运营人员通过财富营销系统更好的建立、配置和管理自己的营销活动,最终支持我们的活动达到想要的效果。以下是我们支持过的项目的效果分析数据:

「案例一」下图是近期的A活动,由数据统计得出,活动上线后,召回的人数、金额均提高近8个百分点,活动对于用户保有量提升具有积极的影响。

「案例二」在之前的B活动中,单笔投资金额在1万以上的占比有所提升,可见活动除了影响保有量外,也提升了客单价。

备注:对比数据为活动期内统计数据和非活动期数据比较。

 

畅想

一颗苹果创造一个定律,引领、开拓了一个时代

万有引力平台的衍化与蜕变离不开每一位同事的辛勤付出

如何适应高速变化的营销需求,是万有引力系统设计和下阶段规划的方向

为了系统未来能更好地为用户提供服务,随时欢迎有想法的各位给出建议

金融财富营销系统系统本次升级点

本次升级内容主要分为业务架构、产品功能和技术升级三方面:

  • 业务角度,重新分析各业务线交易数据差异性及日常营销活动需求,统一业务入口,分离业务处理流程;

  • 功能模块,增加多条件灵活配置策略组,设计返利决策引擎,优化策略筛选方式,增加自动化营销模块;

  • 技术方面:原系统中,使用单库单表结合缓存技术,在当前营销数据增速过快的情况下很容易出现性能瓶颈,因此本次延用原系统设计中采用缓存策略的同时,引入cds技术(分库分表),将数据分散存储,优化索引,提高数据读写效率。


京东金融技术说

   ▼▼▼     

原创·实用·技术·专业

不只一技之长

我有N技在手

你看,我写,共成长!

这篇关于「衍化」与「蜕变」 | 京东金融财富营销系统的进阶之路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693423

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题