diff --git a/README.md b/README.md index 3d0e61ccd99f06ada5675f6520de5b02f719fb3c..e1067e56ba45c5ea9ce49b4bded4d336941d9806 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ - 总结下来就是:规则引擎是可降低复杂业务逻辑组件复杂性、降低应用程序的维护和可扩展性成本的组件。 - 下面用一张图来表示`**输入输出**`关系 -![image.png](./static/img/rule_engin.png) +![输入输出](./static/img/rule_engin01.png) - 我们在`**业务节点**`触发规则引擎的判断,然后对`**规则引擎**`输入`**规则集合簇**`和`**输入参数**`,经过`**规则引擎计算**`,输入`**执行结果**`,然后根据执行结果进行相应的`业务逻辑处理`,这样的话,每个业务节点就可定制业务规则,交给规则引擎去执行判断,然后拿到结果之后判断是否需要执行。 - 那么通过上述的介绍,相信你就可以了解规则引擎的作用了,那么在实际的业务开发中,我们经常会遇到这种场景,就需要规则引擎进行规则定制执行,来满足业务的诉求。 @@ -82,55 +82,55 @@ - 域的作用主要是用来划分业务系统和原子系统,本质上是个聚合的分布式系统上下文的概念。在域中,可以配置场景,并且发布等,发布是通知客户端进行更新最新的数据 -![img.png](static/img/domian01.png) +![domain](static/img/domian01.png) -![img.png](static/img/domian02.png) +![domain](static/img/domian02.png) ### 场景配置 - 场景依托于域存在,场景指的是这个业务系统的某些需要动态配置的节点,比如物理系统中的消息通知等等,可在场景配置中配置 -![img.png](static/img/scene.png) +![scene](static/img/scene.png) ### 元数据配置 - 元数据是一类Key-Value的集合,对应映射到Java语言中,应是枚举,这些是一些不会经常变更、比较稳定的数据 -![img.png](static/img/metadata01.png) +![metadata](static/img/metadata01.png) -![img.png](static/img/metadata02.png) +![metadata](static/img/metadata02.png) ### 基础数据配置 - 基础数据是根据指定的入参或者无参进行取值,取值的方式通过脚本取值,这样就能满足动态的取值逻辑,但是也会有接入复杂度,可能脚本会写的比较复杂,并且有进程风险,因为脚本完全是动态的 -![img.png](static/img/basedata01.png) -![img.png](static/img/basedata02.png) -![img.png](static/img/basedata03.png) +![basedata](static/img/basedata01.png) +![basedata](static/img/basedata02.png) +![basedata](static/img/basedata03.png) ### 数据源配置 - 数据源指的是规则执行的前置数据,当然了,客户端也可以传入数据,系统会自动对数据进行聚合,优先以传入的数据为准,进行合并数据,然后将合并的数据交给规则引擎处理 - 获取值的方式支持HTTP、Groovy、Mvel2.0等 -![img.png](static/img/datasource01.png) -![img.png](static/img/datasource02.png) -![img.png](static/img/datasource03.png) +![datasource](static/img/datasource01.png) +![datasource](static/img/datasource02.png) +![datasource](static/img/datasource03.png) ### 策略组 - 策略组就是一些配置项目,真正进行规则判断的地方,现在只支持简单的配置类型,但是支持复杂规则模式,简单规则模式只会返回布尔值,复杂规则模式支持执行中断,并返回目标值 -![img.png](static/img/strategy01.png) -![img.png](static/img/strategy02.png) -![img.png](static/img/strategy02.png) +![strategy](static/img/strategy01.png) +![strategy](static/img/strategy02.png) +![strategy](static/img/strategy03.png) ## 规则引擎单节点执行逻辑 - 如下图所示 - 业务节点触发规则执行,执行的时候先判断一些数据的验证逻辑,通过之后才能将数据推到`Rule Engine Calculation`进行执行,在此过程中判断当前业务节点的决策树是否构建完毕,如果构建完毕,则从本地缓存中取出数据,否则重新构建决策树,然后存储到本地缓存执行,最终返回执行结果 -![image.png](./static/img/rule_engin_process.png) +![rule_engin_process](./static/img/rule_engin_process.png) ## 技术与架构选型 @@ -150,7 +150,7 @@ - 通过SDK的方式需要在当前JVM进程加载当前域所在的配置数据;而通过HTTP接口的方式,则会在HTTP服务端加载所有仓储的数据。当然在更新的时候也是按需更新 - 当配置触发发布的时候,会将数据推送到触发线程队列,然后由线程池消费队列,触发客户端的消息更新 -![image.png](./static/img/rule.png) +![rule](./static/img/rule.png) ## 数据表设计 @@ -249,7 +249,7 @@ | lastUpdateTime | Date | 上次注册更新时间 | | domain | String | 注册绑定的domain | -![image.png](./static/img/register.png) +![register](./static/img/register.png) ## 接入方式 diff --git a/static/img/basedata01.png b/static/img/basedata01.png index ac732144ca7ad238807db147f491f0fd618b5617..1c342a15b46146097bd627fe68317e4fd683f1d1 100644 Binary files a/static/img/basedata01.png and b/static/img/basedata01.png differ diff --git a/static/img/basedata02.png b/static/img/basedata02.png index 3204470f63843afe1d8d27e7689310931b482400..858fb20ea3a5c644b7650c49dc09c1d4530aec88 100644 Binary files a/static/img/basedata02.png and b/static/img/basedata02.png differ diff --git a/static/img/basedata03.png b/static/img/basedata03.png index 3204470f63843afe1d8d27e7689310931b482400..c8974f5c344668083e77c1cae390d1d45eae43bc 100644 Binary files a/static/img/basedata03.png and b/static/img/basedata03.png differ diff --git a/static/img/datasource01.png b/static/img/datasource01.png index c2453dd40cef1553ccb74ae173b884939b6e79f3..ca72c949aacdbc171a0a2680e86291f77975d10a 100644 Binary files a/static/img/datasource01.png and b/static/img/datasource01.png differ diff --git a/static/img/datasource02.png b/static/img/datasource02.png index c2453dd40cef1553ccb74ae173b884939b6e79f3..d199056b0f904f03fef76d9827430ca99f5adee7 100644 Binary files a/static/img/datasource02.png and b/static/img/datasource02.png differ diff --git a/static/img/datasource03.png b/static/img/datasource03.png index c2453dd40cef1553ccb74ae173b884939b6e79f3..a81fceb940c526e0fd3d4c9b25e22e348efec682 100644 Binary files a/static/img/datasource03.png and b/static/img/datasource03.png differ diff --git a/static/img/domian01.png b/static/img/domian01.png index 6d6e6330fed13bfe1678a8b0b43b24bc5e03eff4..0f507fde86855238b92a45b8199b95fa9959ba47 100644 Binary files a/static/img/domian01.png and b/static/img/domian01.png differ diff --git a/static/img/domian02.png b/static/img/domian02.png index 2186fc160179e881e1e1e667c2c281fe122f528d..c2cefabc3935f3751f752cfdddb61689ef04d9dc 100644 Binary files a/static/img/domian02.png and b/static/img/domian02.png differ diff --git a/static/img/metadata01.png b/static/img/metadata01.png index bebf6d0b21c0f46536b7acce7c222e8c968b3702..ac69c3e2b080b431c72ba35b34e6c25fb606d37f 100644 Binary files a/static/img/metadata01.png and b/static/img/metadata01.png differ diff --git a/static/img/metadata02.png b/static/img/metadata02.png index d7554d52adeb0a8c307563712d42017797bf7988..a53566d6616a891c4905c348b41b4bbf011db952 100644 Binary files a/static/img/metadata02.png and b/static/img/metadata02.png differ diff --git a/static/img/register.png b/static/img/register.png index 497c7402640b10cb8ef52a6d869925c0e5b93a8d..e7b8463dbb802fc4b96a9fc0d7902cc9f1aa9d81 100644 Binary files a/static/img/register.png and b/static/img/register.png differ diff --git a/static/img/rule_engin.png b/static/img/rule_engin01.png similarity index 100% rename from static/img/rule_engin.png rename to static/img/rule_engin01.png diff --git a/static/img/scene.png b/static/img/scene.png index e704945c35ce4766a8cf7b7baf636eefab8b6ff3..261a6ed3af692f91a98f784229161a97e57d239f 100644 Binary files a/static/img/scene.png and b/static/img/scene.png differ diff --git a/static/img/strategy01.png b/static/img/strategy01.png index 497c7402640b10cb8ef52a6d869925c0e5b93a8d..d889993ac997d7bcd0d572b07044877c53a3d632 100644 Binary files a/static/img/strategy01.png and b/static/img/strategy01.png differ diff --git a/static/img/strategy02.png b/static/img/strategy02.png index 497c7402640b10cb8ef52a6d869925c0e5b93a8d..d9602cf4ba1d065272834f388477a8c182e0de65 100644 Binary files a/static/img/strategy02.png and b/static/img/strategy02.png differ diff --git a/static/img/strategy03.png b/static/img/strategy03.png index 497c7402640b10cb8ef52a6d869925c0e5b93a8d..382e36e9f9610ebb517964a18d87b40b631c375d 100644 Binary files a/static/img/strategy03.png and b/static/img/strategy03.png differ diff --git a/static/img/wx.jpeg b/static/img/wx.jpeg deleted file mode 100644 index 7cc645a594af342d7b50cec4ebbe2cef13481f16..0000000000000000000000000000000000000000 Binary files a/static/img/wx.jpeg and /dev/null differ diff --git a/static/rec/rec-log.bson b/static/rec/rec-log.bson index 0cfa9dd5fcc58131ba58f3c59e86553ad8fa0c22..d4806da5d6148f168ac7328cc1b48902de2d8184 100644 Binary files a/static/rec/rec-log.bson and b/static/rec/rec-log.bson differ diff --git a/static/rec/rec-register.bson b/static/rec/rec-register.bson index fa2787d48047a37824eb4348fc3750ef98b60566..8f8c0cbcecd7f09e2c6e3be916bd0d346234b583 100644 Binary files a/static/rec/rec-register.bson and b/static/rec/rec-register.bson differ diff --git a/static/rec/rec-strategy.bson b/static/rec/rec-strategy.bson index 0f13b0145544b95cbc2fd8a55b296bfba7f62948..94c2ae3d4fe19d0f4523345c6dca98171478bbae 100644 Binary files a/static/rec/rec-strategy.bson and b/static/rec/rec-strategy.bson differ