上一节讲了工程师们在遇到突如其来的变化时会变成地中海的问题。这对每家公司的工程师来说都是一个不可回避的挑战。毕竟,谁都不愿意自己做的产品被人给薅秃了还干瞪眼解决不了。那现在,我们先看看怎么解决规则变化的问题。

由于运行规则总是会变来变去,而技术同学又不想每次规则变化就改一次代码然后变成地中海。也就是说,必须有一种技术手段,将活动规则和代码进行解耦,不管规则怎么变,代码都不用改。真有可以这么神奇么?——确实有一种这样的「解耦」技术,那就是「规则引擎」。

所谓「规则引擎」,根据某百科的解释是:「是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。它接受数据输入,解释业务规则,并根据业务规则做出业务决策」。

规则引擎起源于较早的专家系统,它可以分离业务逻辑和具体执行规则,例如「下订单增加积分」业务逻辑和「不同金额增加不同的积分」这类规则就可以进行分离。虽然这种场景可以用策略模式或者其他技术手段解决,但使用规则引擎来实现它扩展性可能会更好:它把约束、完整性、校验、分支等都算到业务规则里,并且在能运行时动态地管理和修改。

目前,基于Java开源的规则引擎有:Drools、Easy Rules、Mandarax、IBM ILOG,其中影响力最大并且使用最的就是Drools。Drools是用Java编写的开源规则引擎,它使用Rete算法对规则执行逻辑求值。它由几个主要部分组成:

规则引擎与风控系统02:规则引擎相关推荐

  1. esxi root 密码规则_陌陌风控系统静态规则引擎aswan

    陌陌风控系统静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为. [名词解释] 策略原子:基于用户行为数据进行异常判断的基础元素,如设备黑名单.手机号黑名单等 管控原子:用户命中 ...

  2. php cms 路由规则,如何设置PhpCms系统URL规则管理 phpcms教程

    一.URL规则管理 URL规则使用说明: PHPCMS2008url规则定义 一.模块 模块分:PHPCMS.问吧.专题.会员.等等 首先URL规则是要应用在模块上,所以必须选择模块. 二.名称 名称 ...

  3. 在线支付之风控系统架构选型

    http://www.infoq.com/cn/articles/risk-management-analysis-system 风控系统介绍 伴随着互联网的发展,游戏.商贸.慈善.博彩.餐饮等各行各 ...

  4. 搭建风控系统道路上踩过的坑合集

    作者前言 从业近10年,大大小小参与了3家公司不同领域的风控系统的设计,从前到后把风控系统所有环节都细细的琢磨过,然而至今仍然感觉刚刚一只脚踏进门而已. 大多数人做的产品都是目的明确的,比如订单支付. ...

  5. 大数据时代--风控系统

    基于第三方支付的风控系统的设计与实现 基于第三方支付的风控系统的设计与实现 - 豆丁网 实时业务风控系统 实时业务风控系统 - 简书 在线支付之风控系统架构选型 在线支付之风控系统架构选型 - 云+社 ...

  6. 互联网风控系统架构分析

    本文简单介绍风控具体是做什么的,以及一些常见的风控系统实现的架构. 文章目录 前言 一.互联网风控是做什么的? 风控的定义 二.常见风控系统的实现架构 1.风控系统的架构 2.风控的系统流程 三.核心 ...

  7. 反洗钱检验java_从Drools规则引擎到风控反洗钱系统V0.2.3.pdf

    本文档持续更新中,QQ 技术交流群:593177274,作者邮箱:secbro2@ 从Drools 规则引擎到风控反洗钱 -- <Drools7.0.0.Final 规则引擎教程> 修订日 ...

  8. 规则引擎 drools_网易考拉规则引擎平台架构设计与实践

    背景 考拉安全部技术这块目前主要负责两块业务:一个是内审,主要是通过敏感日志管理平台搜集考拉所有后台系统的操作日志,数据导入到es后,结合storm进行实时计算,主要有行为查询.数据监控.事件追溯.风 ...

  9. drools规则引擎技术指南_物联网规则引擎技术

    物联网应用程序设计与典型的IT解决方案大不相同,因为它将物理操作技术(OT)与传感器.致动器和通信设备连接起来,并将数字信息技术(IT)与数据.分析和工作流连接起来. 在企业环境中,物联网非常复杂,这 ...

最新文章

  1. OpenCV 2.4.9-2.4.13各个版本附加依赖项Lib文件汇总
  2. (补充)常用端口大全
  3. 2017校招真题在线编程-幸运的袋子
  4. 三种监控平台配置及其整合(cacti nagios ganglia)
  5. 论文笔记(Neural Graph Collaborative Filtering)
  6. arcengine遍历属性表_Excel催化剂-遍历文件夹内文件信息特别是图像、音视频等特有信息...
  7. vue3 编译很慢_Vue 项目编译时间过长问题
  8. php下xmlwriter,PHP实现基于XMLWriter操作xml的方法
  9. MySQL中事务的分类
  10. 对称加密之AES算法的python实现
  11. SpringBoot通用的敏感词拦截
  12. 关于AD9371FilterWizard无法运行问题
  13. 如何构建自定义人脸识别数据集?本文介绍了三种训练方法
  14. solidworks新建工程图默认单位为毫米
  15. Apache服务器与Tomcat服务器的区别
  16. 【WIN10】PS/2 标准键盘鼠标带感叹号(代码10,39)(适用于红米G)
  17. 在Redhat9下安装Oracle9
  18. 基于BP神经网络的含水率预测模型matlab仿真
  19. wangEditor富文本编辑器自定义图片上传
  20. 锐意创新,引领音视频未来

热门文章

  1. Skype For Peace - 免费为全球年轻人打造更好的教育机会和就业前景
  2. CSDN新星计划新玩法、年度勋章挑战赛开启
  3. 全面解析空气净化器中空气质量传感器的原理与优劣
  4. 性能之巅 洞悉系统、企业与云计算(完整版)
  5. 蓝海创意云丨【渲染制作教程】3层楼室外景观
  6. DS-fundation-sort1
  7. 软件工程软考题目总结
  8. 【愚公系列】2022年01月 攻防世界-简单题-PWN-001(level0)
  9. Unity Shader - ShaderLab: Culling Depth Testing 剔除与深度测试
  10. DNS云学堂 | 如何防范一本万利的DNS反射放大攻击