1 背景
2 策略中心
3 系统设计
3.1 LiteFlow
3.2 策略执行流程
3.3 画布
3.4 节点
4 未来规划
1 背景
回收业务发展日益壮大,我们在邮寄、上门、门店三大履约模式下的业务逻辑日益复杂。同样都是在做回收这一个业务,即便履约方式不同,也有很多业务概念是一致的。为了避免各个业务闷头造轮子,同时又能拉齐三端的业务标准,故成立了业务中台。其中的一部分便是策略中心,希望即能够统一管理各个业务的策略流程,也能够满足不同的个性化策略配置。
2 策略中心
回收业务长期以来存在保价补贴策略,对于订单的成交率和NPS都有提升。所以不同的履约业务都陆续接入了订单保价能力。而回收订单是否能够满足保价策略,需要经历一系列的校验,这些校验通常由通常由一个个相互独立的功能节点组成。
我们的目标是,希望能够借助策略中心,下沉补贴策略逻辑,并能跨多个业务线复用,可热插拔,降低开发成本。并从收拢补贴策略开始,最终实现一个在回收业务体系下,标准能力即通用又能满足业务个性化的业务流程的配置平台。
3 系统设计
为了方便我们管理策略流程,选择了LiteFlow这款技术框架。
3.1 LiteFlow
LiteFlow是一款拥有编排式特性的规则引擎,我们可以将各个模块定义为一个独立的组件,这样我们可以任意编排我们的流程,组件与组件之间是解耦的。
组件:组件即为我们流程中的Node节点。v2.12.0版本更新后有三种组件:普通组件、选择组件、布尔组件。 流程:通过EL规则对组件节点编排后的流程。
LiteFlow其它的优点:
完善的官方文档:官方文档精致简洁。 热插拔:随时随地更改我们配置的el表达式,动态调整业务流程,也支持平滑热刷新。 数据源配置灵活:支持大多数常用的一些数据配置源比如Apollo、MySQL等。 活跃的社区:作者每天都会在群里回答开发者遇到的问题,较为活跃。
3.2 策略执行流程
借助LiteFlow,我们可以针对不同的业务场景制定不同的补贴策略,例如在和外部合作商合作进行回收的场景,我们不想校验用户历史订单的补贴次数,以此来提高补贴率,那我们只需要针对这条的业务线单独配置一条不包含此校验的流程即可。
3.3 画布
为了能够更方便的管理我们的策略流程,我们希望通过后台来操作变更策略流程,但是LiteFlow不支持可视化编排,所以单独开发设计了一套画布功能来满足我们的诉求。
3.4 节点
在不同的策略流程中,不同的节点的业务配置也有可能不相同。例如:我们的保价时效一般是七天,但部分业务流程希望能延长此时效,所以针对不同的策略流程我们需要能够单独对某个节点进行特殊的业务配置,为此我们实现了对节点的编辑能力,来方便调整业务策略。
当我们需要变更配置时,只需找到对应的策略链路,点击对应的节点即可变更对应的节点策略配置。
4 未来规划
数据字典:接下来即将开始设计数据字典的部分,希望能够帮助我们更方便的定义策略的出入参。 安全性:因为涉及核心策略,一旦改错可能会造成不必要的损失,所以需要从监控、版本链、审批流几个方面开始加强对于策略的管理。 可视化配置后台:对于节点配置,目前都是针对特殊节点单独开发的,新增节点配置无法做到零开发。而公司现在支持两套可视化配置后台easyui和candy,所以需要探索一个合适的方式将现有的架构能力接入进来。
关于作者
多斯,转转C2B业务研发工程师
转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~