转转回收业务策略中心的实践

2024-06-05 21:52

本文主要是介绍转转回收业务策略中心的实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 背景

回收业务发展日益壮大,我们在邮寄、上门、门店三大履约模式下的业务逻辑日益复杂。同样都是在做回收这一个业务,即便履约方式不同,也有很多业务概念是一致的。为了避免各个业务闷头造轮子,同时又能拉齐三端的业务标准,故成立了业务中台。其中的一部分便是策略中心,希望即能够统一管理各个业务的策略流程,也能够满足不同的个性化策略配置。

2 策略中心

回收业务长期以来存在保价补贴策略,对于订单的成交率和NPS都有提升。所以不同的履约业务都陆续接入了订单保价能力。而回收订单是否能够满足保价策略,需要经历一系列的校验,这些校验通常由通常由一个个相互独立的功能节点组成。

保价补贴校验简易流程

我们的目标是,希望能够借助策略中心,下沉补贴策略逻辑,并能跨多个业务线复用,可热插拔,降低开发成本
并从收拢补贴策略开始,最终实现一个在回收业务体系下,标准能力即通用又能满足业务个性化的业务流程的配置平台

策略中心架构

3 系统设计

为了方便我们管理策略流程,选择了LiteFlow这款技术框架。

3.1 LiteFlow

LiteFlow是一款拥有编排式特性的规则引擎,我们可以将各个模块定义为一个独立的组件,这样我们可以任意编排我们的流程,组件与组件之间是解耦的。

  • 组件:组件即为我们流程中的Node节点。v2.12.0版本更新后有三种组件:普通组件、选择组件、布尔组件。
  • 流程:通过EL规则对组件节点编排后的流程。

LiteFlow架构

LiteFlow其它的优点:

  • 完善的官方文档:官方文档精致简洁。
  • 热插拔:随时随地更改我们配置的el表达式,动态调整业务流程,也支持平滑热刷新。
  • 数据源配置灵活:支持大多数常用的一些数据配置源比如Apollo、MySQL等。
  • 活跃的社区:作者每天都会在群里回答开发者遇到的问题,较为活跃。

3.2 策略执行流程

借助LiteFlow,我们可以针对不同的业务场景制定不同的补贴策略,例如在和外部合作商合作进行回收的场景,我们不想校验用户历史订单的补贴次数,以此来提高补贴率,那我们只需要针对这条的业务线单独配置一条不包含此校验的流程即可。

策略执行流程

3.3 画布

为了能够更方便的管理我们的策略流程,我们希望通过后台来操作变更策略流程,但是LiteFlow不支持可视化编排,所以单独开发设计了一套画布功能来满足我们的诉求。

后台画布

3.4 节点

在不同的策略流程中,不同的节点的业务配置也有可能不相同。例如:我们的保价时效一般是七天,但部分业务流程希望能延长此时效,所以针对不同的策略流程我们需要能够单独对某个节点进行特殊的业务配置,为此我们实现了对节点的编辑能力,来方便调整业务策略。

编辑节点属性

当我们需要变更配置时,只需找到对应的策略链路,点击对应的节点即可变更对应的节点策略配置。

变更流程节点配置

4 未来规划

  • 数据字典:接下来即将开始设计数据字典的部分,希望能够帮助我们更方便的定义策略的出入参。
  • 安全性:因为涉及核心策略,一旦改错可能会造成不必要的损失,所以需要从监控、版本链、审批流几个方面开始加强对于策略的管理。
  • 可视化配置后台:对于节点配置,目前都是针对特殊节点单独开发的,新增节点配置无法做到零开发。而公司现在支持两套可视化配置后台easyui和candy,所以需要探索一个合适的方式将现有的架构能力接入进来。

关于作者

多斯,转转C2B业务研发工程师

转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。
关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

这篇关于转转回收业务策略中心的实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1034273

相关文章

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re

JVM垃圾回收机制之GC解读

《JVM垃圾回收机制之GC解读》:本文主要介绍JVM垃圾回收机制之GC,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、死亡对象的判断算法1.1 引用计数算法1.2 可达性分析算法二、垃圾回收算法2.1 标记-清除算法2.2 复制算法2.3 标记-整理算法2.4

Redis中6种缓存更新策略详解

《Redis中6种缓存更新策略详解》Redis作为一款高性能的内存数据库,已经成为缓存层的首选解决方案,然而,使用缓存时最大的挑战在于保证缓存数据与底层数据源的一致性,本文将介绍Redis中6种缓存更... 目录引言策略一:Cache-Aside(旁路缓存)策略工作原理代码示例优缺点分析适用场景策略二:Re

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命