CN112581045A - 一种基于微服务的数据风控系统及其方法 - Google Patents
一种基于微服务的数据风控系统及其方法 Download PDFInfo
- Publication number
- CN112581045A CN112581045A CN202110207556.8A CN202110207556A CN112581045A CN 112581045 A CN112581045 A CN 112581045A CN 202110207556 A CN202110207556 A CN 202110207556A CN 112581045 A CN112581045 A CN 112581045A
- Authority
- CN
- China
- Prior art keywords
- data
- wind control
- service
- service module
- transaction request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063114—Status monitoring or status determination for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0635—Risk analysis of enterprise or organisation activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开涉及一种基于微服务的数据风控方法,包括:在微服务架构环境中,根据数据风控系统的功能划分将所述数据风控系统的各模块拆分成相应的服务模块;针对每个服务模块,在所述微服务架构的服务注册中心处进行注册以便运行交互;接收来自主系统的交易请求数据,并根据业务类型将所述交易请求数据转发给风控服务模块;根据所述交易请求数据,获取风控规则配置数据并对所述风控服务模块进行配置;所述风控服务模块对所述交易请求数据进行风控业务分析以生成响应结果;将响应结果返回给所述数据分发服务模块以告知用户。
Description
技术领域
本公开主要涉及对数据的风险控制领域,具体而言,涉及在交易数据进入主支付系统之前,利用微服务对其进行风险控制、分析及过滤的方法和系统。
背景技术
随着信息技术的进步,支付结算工具的创新以及结算渠道日益扩展,支付结算操作越来越趋向于自动化、信息化、电子化方向发展。与此同时,支付结算风险也随之增加,并出现新的形式、新的特点,直接威胁着用户、商家、银行以及第三方金融机构等的账户和资金安全。举例而言,所述支付风险可能包括但不限于:电信诈骗风险、信用卡犯罪风险、电子支付风险、系统漏洞风险等等。
为了避免出现上述各种支付风险,技术人员已经开发出各种防范交易数据风险的风控系统。传统的风控系统一般都有属于自己的风控体系,即各个实体基本都是独自开发其自己的支付风控系统。并且,从安全角度来讲,实体也很少会对外披露自己采用的风控系统的架构及设计理念。因此,现有的风控系统基本都是基于闭源的架构,导致研发和维护成本高昂。因此,缺少一种基于开源架构的便捷低成本的风控技术。
从总体上来说,按照风控的业务需求,所述传统的风控系统大致可以分为以下几种功能模块:
数据分发,数据的入口同时也是数据风控的控制中心,可将数据分发到数据处理中心做相应的处理,最终将处理结果同步给主系统;
数据处理,对数据做规则匹配、业务风险控制、数据分析过滤及风险数据预警等,数据处理完成后会将结果同步返回给数据分发中心;以及
数据统计,对处理完的数据做统计,方便后续查询与分析。
但这些现有的数据风控系统还存在很多缺陷,例如:数据高并发性能问题、风控种类复杂性的问题以及系统冗余问题等等。
为此,存在一种需求,希望能够提供一种能够灵活有效地防范支付风险的数据风控方案。
发明内容
本公开涉及一种基于微服务的数据风控系统及其方法。
根据本公开的第一方面,提供了一种基于微服务的数据风控系统,包括:数据分发服务模块,被配置为根据从主系统接收到的交易请求数据将所述交易请求数据分发给数据处理服务模块,以及从所述数据处理服务模块接收响应结果并告知所述用户;风控服务模块,被配置为根据接收到的所述交易请求数据从规则配置表中获取相应的规则配置数据并进行配置,以及对所述交易请求数据进行风控业务分析并将响应结果返回给所述数据分发服务模块;以及数据统计服务模块,被配置为对处理完的数据进行统计;其中,所述数据分发服务模块、风控服务模块和数据统计服务模块是通过对所述数据风控系统的相应模块进行微服务化来构建的。
根据本公开的第二方面,提供了一种基于微服务的数据风控方法,包括:在微服务架构环境中,根据数据风控系统的功能划分将所述数据风控系统的各模块拆分成相应的服务模块;针对每个服务模块,在所述微服务架构的服务注册中心处进行注册以便运行交互;接收来自主系统的交易请求数据,并根据业务类型将所述交易请求数据转发给风控服务模块;根据所述交易请求数据,获取风控规则配置数据并对所述风控服务模块进行配置;所述风控服务模块对所述交易请求数据进行风控业务分析以生成响应结果;将响应结果返回给所述数据分发服务模块以告知用户。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1示出了根据本公开的一个实施例的基于微服务的数据风控系统的示例框图。
图2示出了根据本公开的一个实施例的数据分发服务模块的示例服务流程。
图3示出了根据本公开的一个实施例的数据处理服务模块的示例服务流程。
图4示出了根据本公开的一个实施例的基于微服务的数据风控方法的示例流程图。
具体实施方式
如前所述,传统的支付风控系统存在很多缺陷,因此,在本公开中针对现有几类主流风控技术存在的缺陷提供了相应的解决方式。
总体上来说:
1. 对于数据高并发性能问题:在支付数据高并发的场景下,如支付业务场景,商品秒杀场景等等,支付风控系统如果搭建在主系统上,会对主系统性能及效率产生较大影响,影响主系统正常运行。对此,本公开采用了微服务模式,即将风控系统从主系统上独立出来并将其各个功能模块拆分成相应的微服务。这样,所述支付风控系统就不再需要搭载在主系统上,并且能实现毫秒级响应机制,减轻了主系统的负担,提高主系统的性能。并且,服务异常或者服务停止都不会对业务主系统的正常使用产生任何影响。
2. 对于风控种类复杂性的问题:数据的风控种类有很多,如数据过滤的规则、数据业务规则以及数据预警规则等。这些规则本身具有一定的复杂性且种类多又导致复杂性加剧。本公开提供了一种规则配置的解决方式,即建立一个规则配置表,将各种种类的风控规则都写入到所述规则配置表中。随后,根据业务不同和风控处理的不同来配置所述规则,例如可以将每种规则配置与一个key值相关联。这样,只需要根据接收到的数据请求中包含的风控配置参数key,就能从所述规则配置表中检索并调用相应的规则配置。并且,在支付风控系统运行期间,可以将所述规则配置表加载到缓存中,这样,调用、新增和更新规则都更加地方便和快捷。
3. 对于系统冗余问题:如果风控业务处理都在一个系统上,会对系统造成冗余及系统性能的损耗。本公开通过将风控业务处理按模块独立拆分成相应的微服务,使得整个风控系统可以由一个或者多个微服务组成,而每个微服务都能独立完成对业务需求的处理,同时服务与服务之间也能相互做多重数据处理,从而提高了服务之间的灵活性,高效性,解决了系统冗余的问题。
下面就参考各附图来说明本公开的具体方案。
首先,如图1所示,示出了根据本公开的一个实施例的基于微服务的数据风控系统100的示例框图。
如前所述,当前的支付交易存在数据量大、高并发、实时性等特点,因此,所述支付交易在支付吞吐量、支付效率和支付的实时性等方面都有很高的要求。更进一步,随着恶意攻击的日益增多,导致交易数据的传输存在较高的风险,即容易出现脏数据(例如攻击者恶意发送的大批量无用交易数据)致使主交易系统超荷负载从而造成响应迟缓、宕机等风险。
为此,本公开针对支付数据的高并发、配置灵活性、数据的实时性以及安全性等问题对现有的支付风控系统做了改造和优化。
所述改造和优化主要利用了微服务技术。微服务:是高性能和透明化的远程服务调用解决方案,主要通过资源调度和服务治理来解决分布式架构下服务资源浪费以提高集群的使用率。在本公开中使用分布式应用程序协调服务(Zookeeper)作为服务发现与注册中心。将支付风控系统所涉及的各个功能模块分别拆分成多个(微)服务。这些服务通常具有以下优点:有自己的堆栈,包括数据库和数据模型;通过REST API,事件流和消息代理的组合相互通信;它们是按业务能力组织的,分隔服务的线通常称为有界上下文。
由于微服务架构中的各服务的规模较小且可独立部署,因此,可以将原本部署在主系统上的风控系统分散到其他次系统上进行部署。而且,由于服务之间的独立性,可以轻松地更新所需服务的代码来升级系统的某个功能,而无需针对整个系统应用进行修改。更进一步,各服务可以彼此独立地进行缩放,从而减少了因必须缩放整个系统应用而产生的浪费和成本。例如,如果实现某个功能的服务负载过大,则可以通过注册更多的相同服务来将数据分流到新服务中,这都无需对系统应用做出实质性修改。还有,在微服务架构中,服务是独立部署的,并通过REST API、事件流和消息代理的某种组合相互通信,因此,可以方便地实现各服务之间的相互协作和互动。微服务的这些特点可以很好地满足数据风险控制的各种需求。
具体而言,本公开的基于微服务的数据风控系统(也可简称为“风控系统”)可包括:数据分发服务模块102、风控服务模块104以及数据统计服务模块106。如上所述,在本公开中,利用微服务技术,原本被集中部署在主系统108上的数据风控系统的各主要功能模块被拆分成相应的可独立部署的服务模块,因此,上述这些服务模块并不需要被集中部署在一起,而是可以分布到各个次系统上以尽可能地利用好资源。这些独立部署的服务一起组成了一种具有微服务架构的数据风控系统。而各个服务模块之间可以通过例如有线或无线通信技术(例如电缆、USB、数据线、蓝牙、NFC、蜂窝、局域网、广域网以及互联网等等通信技术)来彼此通信。并且,每个服务模块都使用微服务搭建,例如,用户只需要在Zookeeper注册中心注册成为消费者就可以调用已作为提供者服务注册的各服务模块,方便了服务的接入、使用和扩展,每个服务模块都是独立系统,都能单独提供服务,也能互相协作,所以,采用这种微服务架构的系统的灵活性很高,接入效率快。
具体而言,如图所示,数据风控系统100从主系统108接收交易数据和向其输出风控响应结果。原本用于部署风控系统的主系统在本公开的方案仅仅负责运行各种应用110(a)、110(b)、……、110(n),并将应用中涉及到交易数据转发给数据风控系统100。因此,即使当风控系统发生故障,也不会影响主系统108和其上运行的应用
其中,数据分发服务模块102是交易数据的入口也是数据的控制中心。主要负责接收数据,解析数据,分发数据(即根据请求所涉及的业务类型将数据分发到与该业务类型相关的风控服务模块104处,例如数据处理服务模块,以进行相应的风控处理以及将返回的响应结果输出给主系统。
风控服务模块104是风控系统的核心风控处理中心,主要负责对数据的风控处理,包括:在接收数据分发服务模块的指令后执行相应的数据处理。在接收到交易请求之后,所述风控服务模块104首先根据所述交易请求从缓存的规则配置表中获取与所请求业务类型匹配的规则配置并进行相应的配置。其中缓存使用的是本地缓存(存放于服务器的内存中)。由于风控配置数据比较稳定,数据量不大,不会经常做更新等操作,因此,使用本地缓存能极大地减少数据库的压力且提高查询配置的响应速度。在一个实施例中,当数据量大时,也可以使用Redis缓存来存储所述配置数据。
并且,所述风控服务模块104可以由一个或者多个微服务模块组成,多个服务模块之间也能按需求相互协作或者以责任链的模式协作。由于风控服务类型多样,为了便于理解,在本实施例中以数据处理服务模块为例进行说明,在其中的风控处理一般包括数据过滤,数据风险识别,数据风控预警等。当风险识别数据超过设置的阀值,就会触发预警服务,并把响应结果经由数据分发服务模块102通过消息平台或者邮件的形式发送给主系统侧的请求者,如果处理过程中出现异常则会吞并异常,并向数据分发服务模块102返回异常作为响应结果,接着由数据分发服务模块102将所述响应结果转发给主系统以告知请求者。这样,所述异常不会影响到主系统的正常业务,且响应速度都是毫秒级,大大提高了主系统的性能及效率。
数据统计服务模块106是数据的后勤保障中心,该服务模块主要负责数据的收集,分析,统计,存储等工作,实现整个系统中的后勤保障功能。收集的数据包括正常请求数据、结果数据、异常数据、日志数据。然后,对数据进行分析归档,更新设置预警参数,以及做出相应的统计报表数据。最后,将数据存储到数据库中方便后续的回溯查询等。具体而言,按功能划分其可以包括统计预警数据、统计报表数据、统计查询频次和存储历史数据等模块。它与数据分发服务模块102、风控服务模块104共同构建出一套完整的数据风控处理链。
在介绍了本公开的数据风控系统100的基本框架之后,再对所述风控系统中的各个服务模块的具体服务流程进行下介绍。
首先,参考图2来介绍下根据本公开的一个实施例的数据分发服务模块的示例服务流程。
如图所示,在步骤202,所述数据分发服务模块通过主系统侧的应用接收来自用户的交易请求。所述交易请求中可以包括与支付有关的数据,例如机构号,商户号,订单号,订单金额,目标路由,交易代码等必要的参数。所述交易请求可以来自在主系统上运行的各种应用,例如电商软件、银行网站、游戏应用、支付终端应用等等。或者,所述交易请求也可以来自诸如手机、平板之类的移动端上安装的相应的各种APP。在支付场景下,风控系统与接入主系统定义了各种交互方式来交换数据,例如可以采用以bean反序列化的方式传递交互信息,也可以采用其他方式传递信息,如:json、xml的格式。
在一些实施例中,交易请求还可以包括风控配置参数key,所述key作为从缓存中获取配置信息的唯一标识。如前所述,为了解决风控种类复杂性问题,可以建立一个规则配置表,将各种种类的风控规则都写入到所述规则配置表中。随后,根据业务不同和风控处理的不同来配置所述规则生成多种规则配置,例如可以将每种规则配置(value)与一个key值相关联。并且,在支付风控系统运行期间,可以将所述规则配置表加载到缓存中。缓存可采用本地缓存的方式,缓存数据存储在服务器的内存中,由于规则配置数据比较稳定,数据量小,更新删除操作少,所以,存储在内存中更方便写入和取出。使用键值对的方式对数据进行写入和取出。在交易请求中提供风控配置参数方便了之后的对风控服务模块(例如数据处理服务模块或数据查询服务模块)的配置。
在接收到交易数据之后,针对各种应用的交易数据的不同,所述数据分发服务模块可以对所述交易请求进行预处理以进行格式化,所述预处理包括对必要的参数做弱校验、数据类型校验转换,由分发后的服务做数据强校验等等。
在步骤204,初始化请求参数并根据应用选择的风控服务类型将请求数据发送给相应的风控服务模块,在本实施例中为数据处理服务模块。具体而言,用户通过应用可以根据需求选择相应的数据(风控)服务,例如商户交易权限风控服务、交易类型风控服务等等。而每种风控服务可以由相应的风控服务模块来提供。另一方面,如果风控业务复杂度高,存在更多类型的风控服务需求,则可以在该风控服务模块的基础上使用并列(或子)服务形式来协作,各并列(子)服务之间可相互调用并动态控制。例如,如果所述交易类型是“交易权限”,则可以将所述交易请求数据转发给数据处理服务模块;而如果所述交易类型是“交易查询”,则可以将所述交易请求数据转发给数据查询服务模块。
在本实施例中,数据分发服务模块根据所述交易请求中的参数初始化风控服务的请求数据,将所述请求数据发送给提供相应的风控服务的风控服务模块。分发服务与风控服务之间可采用接口(例如,dubbo服务接口)的形式。
在步骤206,所述数据分发服务模块接收来自风控服务模块的针对该交易请求数据的响应结果,并将所述响应结果返回给主系统的应用,从而告知作出交易请求的用户风控结果。
所述响应结果包括有应答码和风控是否通过的标记,其中:
如果响应结果为失败(应答码为100001)则表示交易请求存在风险,并被风控。这时,所述数据分发服务模块通过向主系统上的应用发送报告或消息来告知用户交易被拒,并描述详细的风控原因,并且风控标记为不通过;
如果响应结果为超时(应答码为100002)或者系统异常(应答码为999999),数据风控系统(具体为数据处理服务模块)会吞掉异常,也即如果调用的服务中出现任何异常,所述异常都会被数据风控系统捕获而不会直接返给主系统,从而不影响主系统的正常运行。这样,就避免了影响正常交易的进行。同时,所述数据分发服务模块也会通过向主系统上的应用发送报告或消息来告知用户应用超时或者系统异常的原因,此时,风控标记为通过;
如果响应结果为成功(应答码为000000),所述数据分发服务模块通过向主系统上的应用发送报告或消息来告知用户交易未被风控,可正常交易,这时,风控标记为通过。
数据分发服务和数据(风控)处理服务间处理和响应速度都是毫秒级,不会影响交易的正常耗时。
接着,在图3中示出了根据本公开的一个实施例的风控服务模块(以数据处理服务模块为例)的示例服务流程。
如图所示,在步骤302,数据处理服务模块从数据分发服务模块接收交易请求数据并初始化风控服务参数。所述交易请求可以例如包括机构号,商户号,订单号,订单金额,目标路由,交易代码等必要的参数。
随后,在步骤304,根据交易请求(例如包含的配置key值),获取缓存中的规则配置表中的相应的风控规则配置数据并对其进行配置。在一个支付场景下的实施例中,所述规则配置一般包括有订单号风控规则,订单业务类型规则,订单所属机构识别规则,支付限额规则等等。
如前所述,风控的规则配置可以被预先存放在数据库的规则配置表中,每个风控规则都有相应的标记字段,例如可以使用0和1表示是否需要做相应的风控及相应的开关字段,达到动态控制风控规则的目的。所述规则配置数据通过本地缓存的方式,将数据存储在服务器的内存中。因为规则配置数据比较稳定,数据量小,更新删除操作少,所以存储在内存中可以更方便其写入和读取。这样,可以根据所接收的交易请求中的配置key从缓存中的规则配置表中取得与所述配置key相匹配的规则配置信息,例如可以使用键值对的方式对所述风控规则配置数据进行写入和取出,即key=value,其中使用机构号+业务代码作为key,value中包括具体风控规则的整个配置信息。配置的更新可根据更新时间作为条件加上定时任务机制使配置数据更新到缓存中。
在获取了与交易请求数据相关联的风控规则配置之后,基于所述配置对数据处理模块进行规则配置以符合交易请求的风控种类的要求。
随后,在步骤306中,对所述交易请求数据进行风控业务分析,对于数据处理服务模块来说,所述分析可以包括数据过滤、对支付交易的业务数据执行风控处理以及被风控的数据触发预警及推送预警信息等方面,其中:
数据过滤服务:数据过滤服务可对基础数据过滤。在支付场景下,过滤服务可以基于,例如:订单号前缀后缀组成规则、商户所属区域组成规则、商户风险等级识别(通过风险库获取等级)、商户交易金额上限下限规则、订单描述中的敏感词句规则等等,对接收的交易请求数据进行过滤。所述规则可以从上一步骤获取并配置的规则配置数据中获取,并且可使用正则表达式,规则配置表,风险数据库等形式来构建。如果交易请求数据过滤的结果为失败(例如,应答码为100001),则直接返回响应结果给数据分发服务模块,并告知失败原因,将风控标记为不通过。另一方面,如果过滤结果为超时(例如,应答码为100002)或者系统异常(例如,应答码为999999),则所述数据处理服务模块会吞并异常并直接将响应结果返回给数据分发服务模块,告知异常原因,同时将风控标记为通过。再者,如果过滤结果为成功(例如,应答码为000000),则根据风控配置继续调用风控业务处理服务,由风控业务服务继续往下执行;
风控业务处理服务:如前所述,风控业务可以涉及各种类型,例如:商户交易权限风控,交易类型风控等等,如果风控业务复杂度高,可以在该服务的基础上使用子服务或并列服务形式来协作,各服务之间可相互调用,并进行动态控制。服务也可变成横向扩展,使业务更加细化,业务流程更加清晰明了。例如,使用子服务也只需在Zookeeper注册中心注册,提供对应的服务即可,定义方式如下:
<dubbo:registry address="http://********.com" />
<dubbo: service interface="com.***.***.***.***ServiceMng" retries="0"group="***subService1" ref="***subService1" check="false"/>
<dubbo: service interface="com.***.***.***.***ServiceMng" retries="0"group="***subService2" ref="***subService2" check="false"/>
<dubbo: service interface="com.***.***.***.***ServiceMng" retries="0"group="***subService3" ref="***subService3" check="false"/>
例如,以商户交易权限风控为例,商户交易权限风控主要有银联,微信,支付宝,翼支付等,这些支付通道下则又可细分为:刷卡支付,扫码支付,退款等具体的支付类型。这些支付类型的规则存储在商户交易权限配置表中,并根据商户的配置交易权限开关进行风控。有权限则通过风控,否则不通过风控。而响应结果中同样会有一个风控是否通过的标记,例如,所述标记可以是应答码,其中:
如果响应结果为失败(应答码:100001)则表示商户没有相应的交易权限,被风控了。因此,可以将交易被拒的响应结果返回给数据分发服务模块,并在响应结果中描述具体哪种权限被风控了,风控标记为不通过;
如果响应结果为超时(应答码:100002)或者系统异常(应答码:999999),则数据处理服务模块会吞掉异常,避免影响正常交易,并在给数据分发服务模块的响应结果中描述超时或者系统异常的原因,风控标记为通过;
如果响应结果为成功(应答码:000000),则商户交易权限未被风控,可以正常交易,风控标记为通过;由风控业务服务继续往下执行。
风控预警服务:该服务主要负责对被风控的数据触发预警,例如可以采用定时任务机制来轮循金融机构或者商户存在的风控数据以设置预警阈值参数。而预警阀值参数设置也都可以存储于缓存中。而且,风控预警服务可以在不同场景进行多维度配置,例如预警阀值、预警消息、预警类型等都可以自定义。在支付场景中,可以例如设置订单金额上限/下限阀值。当商户交易金额超过每日或者每月的上限/下限阀值则会触发预警,并将预警信息通过消息或者邮件等各种方式通过数据分发服务模块转发给主系统处的作出交易请求的请求者,使请求者能快速了解情况并做出相应的处理。
在步骤308中,判断在步骤306中的对所述交易请求数据的风控业务分析是否出现异常(例如根据应答码);
如果出现异常,则行进至步骤310,所述数据处理服务模块吞并该异常并将包含异常原因的响应结果返回给数据分发服务模块,再由该数据分发服务模块将异常告知主系统处的应用以通知请求者(用户)。
如果未出现异常(也即风控业务分析正常),则行进至步骤312,所述数据处理服务模块将包含风控成败结果的响应结果返回给数据分发服务模块,风险结果标记为通过,从而不影响正常的交易。随后,再由该数据分发服务模块将响应结果告知主系统处的应用以告知请求者交易请求是否被风控。
在一些实施例中,如果对风控数据不需要主动预警或者无需主动推送的,则可以忽略所述风控预警服务,当然也可以在数据处理服务模块中增加和预警服务一样的功能,使其能替代单独的风控预警服务模块,不过对一个完整的系统来说,该风控预警服务也是非常重要的组成部分。
可以理解,尽管在图1、2和3中针对数据风控系统的各个服务模块仅仅示出一个相应的服务模块,但应该理解,如果待处理的交易数据量巨大,本方案完全可以利用微服务架构的服务注册登记机制简单灵活的特点进行扩展,为各个模块多注册几个服务模块或如上所述在服务模块下面注册几个子服务来分散风控系统的压力。
另外,尽管本公开的上述实施例是结合支付场景中的交易数据的风控应用进行说明的,但也可以理解,本公开的数据风控方案也同样适用于其他类型的数据的风控应用。具体而言,只需要根据其他数据类型的特点修改规则配置和参数,就能将本公开的数据风控方案扩展到其他数据领域,这种扩展和修改也属于本公开所要保护的范畴。
如前所述,本公开的主要改进在数据风控系统的数据分发服务模块和数据处理服务模块。通过所述改进,本方案可以实现下述优点:
1、实现了数据实时同步处理。具体而言,本方案将整个数据风控系统全部拆分成微服务,使每个服务模块之间的部署更加灵活,每个服务模块负责自己的功能。一个服务模块出现问题不会影响其他模块和整个系统的正常运行,降低每个服务模块之间的依赖性,并提高系统的响应效率。采用分布式微服务模式也能使每个服务模块之间能够方便地实现相互协作和横向扩展,且接入简单,一套微服务系统能够供多种风控系统使用。
2、动态配置风控规则。具体而言,可根据机构或者商户的维度对其数据过滤、交易权限、支付类型等进行动态配置,每个配置都有开关标记,可通过动态开启或者关闭该开关标记,来调用相应的配置,这使得对系统的配置更灵活、更高效。
3、当风控分析出现异常时,所述异常会被数据风控系统捕获而不会直接返给主系统,这样,不会影响主系统的正常运行。
由于微服务化是本公开的重要改进,因此,下面专门针对微服务化进行更详细的介绍,以便技术人员能够充分理解如何实现数据风控系统的微服务化。
具体而言,微服务化可分为两部分:微服务的拆分以及微服务间的运行交互;
1)微服务拆分:根据数据风控系统的功能划分利用微服务架构将所述数据风控系统拆分成相应的微服务。例如,如图1所述,可将数据风控系统拆分成数据分发服务模块、风控服务模块和数据统计服务模块。并且所述拆分还可以包括基于风控业务逻辑对风控处理进行拆分,也即将交易系统中的风控业务按照业务类型范围进行拆分,例如交易订单风控分析服务(数据处理服务模块)和交易查询风控服务(数据查询服务模块)。虽然,在前述的实施例中,仅仅以用于实现风控分析的数据处理服务模块作为风控服务模块104的示例,但可以理解风控业务类型不仅仅只包括风控分析服务,其还可以包括诸如交易查询风控服务等其他业务类型。因此,可以为每种业务类型提供一个单独的服务模块以作为一个独立的微服务。并且,可以为针对不同业务类型的各种服务模块配置一个统一的入口服务(即使用统一的数据分发服务模块),交易系统通过该入口服务来调用相应的经拆分的微服务,其中每个微服务的拆分可分为如下几个部分:
①API接口:对外服务的接口定义都在这里,接口请求以及响应都采用序列化和反序列化实体bean交互,调用者只需赋值给bean调用接口方法即可,就能完成相应的需求,接口的实现调用业务逻辑层。
②数据库访问及缓存:负责访问数据库的逻辑,查询数据并缓存相关数据。
③业务逻辑:主要是具体的业务逻辑,每个微服务对应一种类型的风控业务,例如风控分析、交易查询等等。
④调用其他服务:如需其他业务处理可调用与所述其他业务处理相关联的其他微服务。
⑤数据配置:包含业务相关数据配置、微服务相关的数据配置等等。如前所述,这些数据配置可以以规则配置表形式按照不同的业务类型被存储或缓存。
2)微服务之间的运行交互:本公开采用了dubbo框架,利用分布式应用程序协调服务Zookeeper作为载体,来实现分布式微服务架构。具体而言,首先每个具有相应功能的微服务模块在服务注册中心(Zookeeper)注册,服务端会把所有接口注册到注册中心,本公开中的数据分发服务属于服务提供者,提供对外入口的服务,同时也是服务消费者,消费数据处理模块中的服务。数据查询和数据处理服务模块都属于服务提供者,提供相应的业务服务给数据分发服务模块,具体的运行交互流程如下:
①配置zookeeper注册中心服务器地址:
②数据分发微服务,作为对外服务提供者,需要对服务提供者协议进行配置:
<dubbo:protocol name="dubbo" port="9090" host="127.0.0.1"/>
然后是服务提供者暴露服务配置:
<dubbo:service interface="com.***.***.***.ScanRiskDistributeMng" ref="scanRiskDistributeImpl" retries="0" group="scanRisk"/>
作为对内服务消费者,需要对服务消费者引用服务进行配置,如调用数据处理微服务:
<dubbo:reference interface="com.***.***.***.ScanOrderRiskMng" group="scanOrderRisk" id="scanOrderRisk" check="false"/>
③数据查询微服务,提供服务给数据分发的服务提供者,需要对服务提供者协议进行配置:
<dubbo:protocol name="dubbo" port="9090" host="127.0.0.1"/>
然后是服务提供者暴露服务配置:
<dubbo:service interface="com.***.***.***.ScanRiskQueryMng" ref="scanRiskQueryImpl" retries="0" group="scanRiskQuery"/>
④数据处理微服务,提供服务给数据分发的服务提供者,需要对服务提供者协议进行配置:
<dubbo:protocol name="dubbo" port="9090" host="127.0.0.1"/>
然后是服务提供者暴露服务配置:
<dubbo:service interface="com.***.***.***.ScanOrderRiskMng" ref="scanOrderRiskImpl" retries="0" group="scanOrderRisk"/>
如果数据处理风控复杂度高,可以在该服务的基础上使用子服务来协作,也可变成横向扩展,使业务更加细化,业务流程更加清晰明了,使用子服务也只需在Zookeeper注册中心注册,提供对应的服务即可,定义方式如下:
<dubbo: service interface="com.***.***.***.***ServiceMng" retries="0"group="***subService1" ref="***subService1" check="false"/>
<dubbo: service interface="com.***.***.***.***ServiceMng" retries="0"group="***subService2" ref="***subService2" check="false"/>
<dubbo: service interface="com.***.***.***.***ServiceMng" retries="0"group="***subService3" ref="***subService3" check="false"/>
⑤数据统计微服务,提供服务给数据分发的服务提供者,需要对服务提供者协议进行配置:
<dubbo:protocol name="dubbo" port="9090" host="127.0.0.1"/>
然后是服务提供者暴露服务配置:
<dubbo:service interface="com.***.***.***.ScanDataStatisticsMng" ref="scanDataStatisticsImpl" retries="0" group="scanDataStatistics"/>
如上所述,利用上述一整套微服务拆分和交互技术,可以将原本集中部署在主系统上的数据风控系统拆分成能够单独分散部署的多个服务模块,并且利用微服务架构的扩展性能够对每个服务独立地进行缩放,从而减少了因必须缩放整个系统应用而产生的浪费和成本。并且通过REST API、事件流和消息代理的某种组合在服务之间相互通信,可以方便地实现各服务之间的相互协作和互动。解决了现有的数据风控系统存在的各种问题。
在了解了如何基于微服务构建本公开的数据风控系统的各服务模块的内容之后,结合附图4,来详细描述一下根据本公开的一个实施例的基于微服务的数据风控方法的示例流程图。
如图4所示,在步骤402,在微服务架构环境中,根据数据风控系统的功能划分将所述数据风控系统的各模块拆分成相应的微服务(模块)。并且,所述拆分还可以包括基于风控业务的类型拆分出多个单独处理相应风控业务的微服务。例如如果所述数据风控系统能够提供交易订单风控分析服务和交易查询风控服务这两种风控业务服务,则可以将其风控服务模块分别拆分成相应的数据处理服务模块和数据查询服务模块(虽然在图1中的风控服务模块104中未示出数据查询服务模块,但如前所述,由于微服务架构的便利性,只需要通过向例如Zookeeper服务中心进行注册登记就能为每种风控业务类型提供一个相应的服务模块)。
更进一步,针对不同业务类型的各种服务模块,配置一个数据分发服务模块以提供统一的入口服务。交易系统通过所述数据分发服务模块提供的入口服务来调用相应的经拆分的服务模块。这样,根据用户通过主系统上的应用发出的请求中的风控业务类型,可以通过统一的数据分发服务模块将所述请求分发给相应的能提供所请求的风控业务的服务模块。例如,如果用户使用主系统上的应用发出交易请求,则该交易请求通过数据分发服务模块的分析处理(如在图2的数据分发服务模块的服务流程中所述),将交易请求数据转发给相应的数据处理服务模块。而如果用户发出的是交易查询请求,则数据分发服务模块通过对请求的分析将交易查询数据转发给相应的数据查询服务模块,等等。
在步骤404,针对每个服务模块,在微服务架构的服务注册中心(例如Zookeeper)为其进行注册以便运行交互。如前所述,在微服务架构中,服务模块是独立部署的,并通过REST API、事件流和消息代理的某种组合相互通信,因此,可以方便地实现各服务之间的相互协作和互动。当每个服务模块都在服务注册中心注册成功之后,所述基于微服务的数据风控系统也被顺利构建,可以开始进行风控操作。
随后,在步骤406,所述数据分发模块接收来自主系统的应用的交易请求数据,并根据业务类型将其分发给相应的风控服务模块,例如数据处理服务模块。
在步骤408,风控服务模块根据交易请求数据(例如配置key),从例如缓存中获取风控规则配置数据并进行相应的配置。
在步骤410,对所述交易请求数据进行风控业务分析,所述分析可以包括数据过滤,数据风险识别,数据风控预警等等。
在步骤412,将响应结果返回给数据分发服务模块以通过其告知给作出请求的用户。其中,如果所述风控业务分析出现异常(例如参考应答码),则该异常会被数据处理服务模块捕获而不会直接返给主系统,这样,所述异常被数据风控系统给吞并,而不会影响主系统的正常运行。
在步骤414,数据统计服务模块根据搜集到的各种数据对处理完的数据进行统计,以方便后续查询与分析。当然,所述数据统计服务模块在某些情况下下可以省略,并非本方案的必要特征。
可以理解,步骤406、410到414属于传统的数据风控方法中经常使用的处理流程,但在对数据风控系统进行微服务化(步骤402-404)之后,各步骤之间可以彼此独立部署和扩展,并通过例如REST API、事件流和消息代理的组合相互通信和交互,因此,一个服务模块出现问题不会影响其他模块和整个系统的正常运行,降低每个服务模块之间的依赖性,并提高系统的响应效率。采用分布式微服务模式也能使每个服务模块之间能够方便地实现相互协作和横向扩展,且接入简单,一套微服务系统能够供多种风控系统使用。
而且,当风控分析出现异常时,所述异常会被数据处理服务模块捕获而不会直接返给主系统,这样,不会影响主系统的正常运行。
并且,在步骤408中,通过在缓存中预先存储规则配置表,可根据机构或者商户的维度对其数据过滤、交易权限、支付类型等进行动态规则配置,每个配置都有开关标记,可通过动态开启或者关闭该开关标记,来调用相应的配置,这使得对系统的配置更灵活、更高效。
本公开所述的数据风控系统和方法可主要应用于支付类,电商类,金融类产品,如:POS机、支付终端、电商平台、金融APP等。
上述内容对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。而且,相关领域的技术人员将领会,在不偏离如所附权利要求书所定义的本公开的精神和范围的情况下,所述实施例可以在形式和细节方面进行各种修改。因此,此处所公开的本公开的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。
Claims (10)
1.一种基于微服务的数据风控系统,包括:
数据分发服务模块,被配置为根据从主系统接收到的交易请求数据将所述交易请求数据分发给数据处理服务模块,以及从所述数据处理服务模块接收响应结果并告知用户;
风控服务模块,被配置为根据接收到的所述交易请求数据从规则配置表中获取相应的规则配置数据并进行配置,以及对所述交易请求数据进行风控业务分析并将响应结果返回给所述数据分发服务模块;以及
数据统计服务模块,被配置为对处理完的数据进行统计;
其中,所述数据分发服务模块、风控服务模块和数据统计服务模块是通过对所述数据风控系统的相应模块进行微服务化来构建的。
2.如权利要求1所述的数据风控系统,其特征在于,所述风控业务分析包括:数据过滤,数据风险识别,数据风控预警。
3.如权利要求1所述的数据风控系统,其特征在于,如果所述风控业务分析出现异常,则所述异常会被所述数据风控系统捕获而不会直接返给所述主系统。
4.如权利要求1所述的数据风控系统,其特征在于,所述风控服务模块可包括数据处理模块和数据查询服务模块,所述数据处理模块被配置为提供交易订单风控分析服务,而所述数据查询服务模块被配置为提供交易查询风控服务,其中:
如果所述交易请求数据的业务类型是“交易查询”,则所述数据分发服务模块就将所述交易请求数据分发给所述数据查询服务模块;
如果所述交易请求数据的业务类型是“交易权限”,则所述数据分发服务模块就将所述交易请求数据分发给所述数据处理服务模块。
5.一种基于微服务的数据风控方法,包括:
在微服务架构环境中,根据数据风控系统的功能划分将所述数据风控系统的各模块拆分成相应的服务模块;
针对每个服务模块,在所述微服务架构的服务注册中心处进行注册以便运行交互;
接收来自主系统的交易请求数据,并根据业务类型将所述交易请求数据转发给风控服务模块;
根据所述交易请求数据,获取风控规则配置数据并对所述风控服务模块进行配置;
所述风控服务模块对所述交易请求数据进行风控业务分析以生成响应结果;
将响应结果返回给所述数据分发服务模块以告知用户。
6.如权利要求5所述的方法,其特征在于,其中所述服务模块包括:数据分发服务模块、风控服务模块以及数据统计服务模块。
7.如权利要求6所述的方法,其特征在于,其中所述风控服务模块可包括:被配置为提供交易订单风控分析服务的数据处理服务模块和被配置为提供交易查询风控服务的数据查询服务模块,其中:
如果所述交易请求数据的业务类型是“交易查询”,则所述数据分发服务模块就将所述交易请求数据分发给所述数据查询服务模块;
如果所述交易请求数据的业务类型是“交易权限”,则所述数据分发服务模块就将所述交易请求数据分发给所述数据处理服务模块。
8. 如权利要求5所述的方法,其特征在于,所述服务模块是独立部署的,并通过RESTAPI、事件流和消息代理的组合相互通信。
9.如权利要求5所述的方法,其特征在于,如果所述风控业务分析出现异常,则所述异常会被所述数据风控系统捕获而不会直接返给所述主系统。
10.如权利要求5所述的方法,其特征在于,所述方法还包括:对处理完的数据进行统计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110207556.8A CN112581045A (zh) | 2021-02-25 | 2021-02-25 | 一种基于微服务的数据风控系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110207556.8A CN112581045A (zh) | 2021-02-25 | 2021-02-25 | 一种基于微服务的数据风控系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112581045A true CN112581045A (zh) | 2021-03-30 |
Family
ID=75113970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110207556.8A Pending CN112581045A (zh) | 2021-02-25 | 2021-02-25 | 一种基于微服务的数据风控系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112581045A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592471A (zh) * | 2021-07-29 | 2021-11-02 | 中国人民银行清算总中心 | 支付交易应用系统及方法 |
CN114884964A (zh) * | 2022-07-11 | 2022-08-09 | 上海富友支付服务股份有限公司 | 基于Tuxedo架构的业务风控方法和系统 |
CN116578600A (zh) * | 2023-05-19 | 2023-08-11 | 广州经传多赢投资咨询有限公司 | 一种微服务数据聚合方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612955A (zh) * | 2016-07-12 | 2018-01-19 | 深圳市远行科技股份有限公司 | 微服务提供方法、装置及系统 |
CN112015578A (zh) * | 2020-10-26 | 2020-12-01 | 上海富友支付服务股份有限公司 | 基于事前同步处理和事后异步处理的风控系统和方法 |
CN112231115A (zh) * | 2020-09-27 | 2021-01-15 | 中国建设银行股份有限公司 | 一种执行动态插入算子的方法以及装置 |
-
2021
- 2021-02-25 CN CN202110207556.8A patent/CN112581045A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612955A (zh) * | 2016-07-12 | 2018-01-19 | 深圳市远行科技股份有限公司 | 微服务提供方法、装置及系统 |
CN112231115A (zh) * | 2020-09-27 | 2021-01-15 | 中国建设银行股份有限公司 | 一种执行动态插入算子的方法以及装置 |
CN112015578A (zh) * | 2020-10-26 | 2020-12-01 | 上海富友支付服务股份有限公司 | 基于事前同步处理和事后异步处理的风控系统和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592471A (zh) * | 2021-07-29 | 2021-11-02 | 中国人民银行清算总中心 | 支付交易应用系统及方法 |
CN114884964A (zh) * | 2022-07-11 | 2022-08-09 | 上海富友支付服务股份有限公司 | 基于Tuxedo架构的业务风控方法和系统 |
CN116578600A (zh) * | 2023-05-19 | 2023-08-11 | 广州经传多赢投资咨询有限公司 | 一种微服务数据聚合方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112581045A (zh) | 一种基于微服务的数据风控系统及其方法 | |
CN107135188B (zh) | 金融信息交换fix协议的业务实现方法、装置及系统 | |
CN110570282A (zh) | 跨区域资源转移方法、装置、设备及存储介质 | |
US20100211938A1 (en) | Schema-based dynamic parse/build engine for parsing multi-format messages | |
KR102417742B1 (ko) | Api 데이터 수집시스템 및 그에 관한 방법 | |
HRP20030164A2 (en) | Multifunctional mobile banking system | |
CN110764881A (zh) | 分布式系统后台重试方法及装置 | |
CN110675159A (zh) | 金融市场交易事前风险控制方法、系统及电子设备 | |
CN112015578B (zh) | 基于事前同步处理和事后异步处理的风控系统和方法 | |
US20150074684A1 (en) | Techniques for enabling inter-process communication (ipc) among multiple personas in a mobile technology platform | |
US11665247B2 (en) | Resource discovery agent computing device, software application, and method | |
CN112035303B (zh) | 一种数据测试方法、装置、计算机及可读存储介质 | |
CN110287266A (zh) | 一种分布式系统及数据处理方法 | |
CN115695139A (zh) | 一种基于分布式鲁棒增强微服务系统架构的方法 | |
CN116134798A (zh) | 基于mqtt协议的通信方法及设备 | |
US10269073B1 (en) | Systems and methods for interpreting exchange data packets using a lookup table | |
CN116647552A (zh) | 异构微服务集群中服务处理方法及系统、终端及存储介质 | |
CN114884964A (zh) | 基于Tuxedo架构的业务风控方法和系统 | |
CN114331382A (zh) | 批量文件处理方法、处理装置、处理器与批量处理系统 | |
JP7338847B2 (ja) | Sms詐欺対策システム、sms詐欺対策方法、およびsms詐欺対策プログラム | |
CN111523872A (zh) | 交易处理方法、装置、移动终端及计算机可读存储介质 | |
CN107402752B (zh) | 应用的定时触发方法和装置 | |
US20200167788A1 (en) | Fraudulent request identification from behavioral data | |
CN110399409A (zh) | 交易异常监测方法及装置 | |
CN113269547B (zh) | 数据处理方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210330 |
|
RJ01 | Rejection of invention patent application after publication |