如果决策引擎是风控的大脑,那么规则引擎则是大脑内的重要构成,其编排了各种对抗黑产的规则,是多年对抗黑产的专家经验的累计,本文将向你介绍规则引擎的构成及实现。
规则引擎可以帮助企业将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务规则。这使得企业可以更灵活地管理和修改业务规则,而无需修改应用程序代码。
规则引擎可以接受数据输入,并根据业务规则解释数据,做出业务决策。这些业务决策可以是自动的,也可以是人工干预的。
规则引擎通常包含如下几个部分:
规则引擎可以帮助企业更有效的管理和执行业务规则,提高决策的质量、效率和可靠性。
特点如下:
在选择规则引擎时,需要考虑如下几点:
当然,如果人力足够,可以考虑自己实现规则引擎亦可,自实现版本的规则引擎肯定灵活性更高,但是在性能和稳定性上需要较长时间的验证和考验。
如下是市场上热门的开源规则引擎:
| 规则引擎 | 简介 |
|---|---|
| JBoss Drools | JBoss Drools 是一款开源的规则引擎,支持 Java 和其他语言。 |
| OpenRules | OpenRules 是一款开源的规则引擎,支持 Java 和其他语言。 |
| Hippo Rules Engine | Hippo Rules Engine 是一款开源的规则引擎,支持 Java 和其他语言 |
| Apache Flink | Apache Flink 是一款开源的流处理框架,也可以用作规则引擎 |
| Easy Rules | Easy Rules 是一个基于 Java 的开源规则引擎框架,它提供了简单易用的 API,使得开发人员可以轻松地使用规则引擎。 |
| 基于 Groovy 实现规则引擎 | Groovy 是一种动态语言,可以运行在 Java 平台上。由于 Groovy 的语法简单,因此可以通过使用 Groovy 来实现规则引擎。 |
规则引擎最终是需要交付给运营人员去配置使用的,所以必须能满足灵活的配置编排,且易懂,才能最大发挥它的威力。

说明:

说明:
决策引擎每天承载企业业务全部的风险决策,峰值 QPS 基本过万,但是风控的决策耗时需要足够的短,在不影响业务的情况下,尽可能快的返回决策结果,这是一大挑战。
从以往的调优经验来看,可以从以下几点来优化规则引擎:
warm up 一下,这样在流量进来后,即可立即执行,但是使用预编译可能会增加系统的启动开销时间,需要做好相应的平衡工作与或 及 顺序 关系,尽可能的把大耗时和大成本的指标放在最后面执行,优先执行内存指标,万一命中则直接断言,后续指标则不会再执行,节省了时间。要做到这一点,需要对指标进行较为详细的归类及元数据管理,需要全域的数据配合,对风控这种需要大数据的接口来说是一大挑战。规则引擎在风控整体架构内的重要性毋庸置疑,它的稳定性直接关系到风控决策的性能、数据质量。同时,对运营来说,好的决策引擎是足够灵活,足够智能,满足规则数据编排需求,且能立即生效上线,这是保障他们对抗黑产的前提,希望本文对构建高效的规则引擎又较好的启发。
往期精彩
●性能优化必备——火焰图
●我是怎么入行做风控的
●Flink 在风控场景实时特征落地实战
欢迎关注公众号:咕咕鸡技术专栏
个人技术博客:https://jifuwei.github.io/

我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame
我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们有以下(以及更多)系统,我们将数据从一个应用推送/拉取到另一个:托管CRM(InsideSales.com)Asterisk电话系统(内部)横幅广告系统(openx,我们托管)潜在客户生成系统(自行开发)电子商务商店(spree,我们托管)工作板(本土)一些工作网站抓取+入站工作提要电子邮件传送系统(如Mailchimp,自主开发)事件管理系统(如eventbrite,自主开发)仪表板系统(大量图表和
随着ruby被引入为新的编程救世主,我想知道是否有人基于易用性、运行所需的资源、可用性和易定制性而有偏好。两者有更好的吗? 最佳答案 好吧,任何基于Rails的社交网络应用程序的比较都应该包括insoshi(http://portal.insoshi.com/)。话虽这么说,这三个都非常相似,区别在于实现细节。Lovd和Insoshi都是完整的Rails应用程序;它旨在供您将它们用作入门工具包,并使用您自己的自定义功能对其进行扩展。另一方面,CommunityEngine是一个Rails插件。这意味着您可以更轻松地向现有Rail
一般来说,我是Middleman和ruby的新手。我已经安装了Ruby我已经安装了Middleman和gem以使其运行。我需要使用slim而不是默认的模板系统。所以我安装了Slimgem。Slim的网站只说我需要'slim'才能让它工作。中间人网站说我只需要在config.rb文件中添加模板引擎,但是没有给出例子...对于没有ruby背景的人来说,这没有帮助。我在git上找了几个config.rb,它们都有:require'slim'和#Setslim-langoutputstyleSlim::Engine.set_default_options:pretty=>true#Se