首页 > 其他分享 >规则引擎调研及初步使用

规则引擎调研及初步使用

时间:2023-06-20 10:24:28浏览次数:38  
标签:区中 匹配 引擎 StudentFact 规则 节点 调研

一、产生的背景

生产过程中,线上的业务规则内嵌在系统的各处代码中,每次策略的调整都需要更新线上系统,进行从需求->设计->编码->测试->上线这种长周期的流程,满足不了业务规则的快速变化以及低成本的更新试错迭代。

因此需要有一种解决方案将商业决策逻辑和应用开发者的技术决策分离开,在系统运行时能去更新管理业务规则。

规则引擎(业务规则管理系统,英文名为BRMS(即Business Rule Management System))正是这样的解决方案。

二、实际业务场景:

一个小例子: 假如我们有个业务场景,当客户的积分位于一个区间A时,我们给予他一个头衔a,当一个客户的积分位于区间B时,我们给予他一个头衔b,当客户的积分位于区间C时,我们给予他一个 头衔c。如果我们使用if-else-then来写,是可以实现的,但是这里存在一个问题:规则定义和代码耦合在一起了。如果我们改变规则,把区间A,B,C 改成D,E,F,又或是将规则增加,从3组变为100组,那么我们改代码实在是太麻烦了。这时候规则引擎就派上用场了,我们希望把规则和代码解耦,形成一个规则引擎,以适应复杂多变的业务场景,或者更加精细化的运营。

标签:区中,匹配,引擎,StudentFact,规则,节点,调研
From: https://www.cnblogs.com/jingdongkeji/p/17492896.html

相关文章

  • Nashorn引擎导致metaspace oom
       从报错内容很清楚是Metaspace区域oom了大部分情况下,程序运行中不会出现过多的类加载数量的变动,先导入dump文件检查是否有异常的classLoader或者有异常动态生成的class发现了下面这个classLoader数量异常,项目中用到nashorn这块js引擎来做动态js脚本执行通过查阅nas......
  • 一文读懂火山引擎A/B测试的实验类型(2)——可视化实验
    一.概述可视化实验,通过所见即所得的在线编辑(比如对页面中的图片、文字、颜色、位置等元素和属性进行编辑),降低在Web/H5页面优化的场景下,产品方和运营方使用A/B实验工具的成本,免除编码。前置条件及限制:目前可视化实验支持在Web及H5页面开启。用于创建可视化实验的页面需要接......
  • Turndown 源码分析:二、规则`commonmark-ruiles.js` REV1
    import{repeat}from'./utilities'varrules={}//段落rules.paragraph={filter:'p',replacement:function(content){//前后加两个换行return'\n\n'+content+'\n\n'}}//换行rules.lineBrea......
  • MySQL表类型和存储引擎
    基本介绍MySQL的表类型由存储引擎决定,主要包括MyISAM、innoDB、Memory等MySQL数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG_MYISAM、MYISAM、InnoDB这六种又分为两类,一类是“事务安全型”,比如:InnoDB;其余都属于第二类,称为“非事务安全型”细节说明MyISAM不支持事务、也不......
  • 正则表达式的语法规则
    元字符元字符 描述.   查找单个字符,除了换行和行结束符\w  查找单词字符\W  查找非单词字符\d  查找数字\D  查找非数字字符\s  查找空白字符\S  查找非空白字符\b  匹配单词边界\B  匹配非单词边界\0  查找NUL字符\n  查找换行符\f  查找......
  • Android代码检查规则Lint的自定义与应用
    前言:在日常的代码开发中,此处相信每个开发人员对代码质量都是高要求,有自己的一套代码规范,但是我们不是单独作战,往往大家都是团队作战,人是最大的变量,各人各异,如何保证团队的代码质量和代码规范呢?靠开发者自觉吗?也许有的团队有严格的CR机制,在MR阶段会进行CR,CR不通过的MR是不允许合入的......
  • 一次性掌握innodb引擎如何解决幻读和不可重复读
    了解mysql的都知道,在mysql的RR(可重复)隔离级别下解决了幻读和不可重复。你知道RR下是怎么解决的吗,很多人会回答是通过MVCC和next-key解决的,具体是怎么解决的,今天来重点分析下。mysql的隔离级别都不陌生了,简单回顾下四种隔离级别:RU(读未提交)、RC(读已提交)、RR(可重复读)【默认隔离级别......
  • 一文搞懂V8引擎的垃圾回收机制
    前言我们平时在写代码的过程中,好像很少需要自己手动进行垃圾回收,那么V8是如何来减少内存占用,从而避免内存溢出而导致程序崩溃的情况的。为了更高效地回收垃圾,V8引入了两个垃圾回收器,它们分别针对不同场景进行工作。垃圾从何而来我们先来搞清楚这些‘垃圾’是怎么产生的不管使用哪一......
  • MegEngine 动态执行引擎 Imperative Runtime 架构解析
    在之前的文章中我们介绍过 MegEngine 的 ImperativeRuntime 以及它与 MegBrain、MegDNN 的关系,这篇文章中我们将介绍 Imperative 中包含的常用组件。在 MegEngine 中,从用户在 python 层编写代码到在 interpreter 层发生计算经过了下面的流程:用户在 python 层......
  • 2、【java程序运行监控byteman】使用示例(运行中方法耗时监控、javaagent监控、jvm监控
    (文章目录)本文介绍了byteman的其他几种应用场景及示例,比如javaagent、监控jvm、bmjava命令、如何查看运行的规则、检查规则的正确性、检查规则是否在运行中等。本文分为2个部分,即运行中方法耗时监控和其他示例。一、统计方法耗时(程序运行中)该类是实时显示控制台输入的结果以......