当前位置: 首页>編程日記>正文

关于使用开源版urule决策引擎优化性能和配置客户端集群同步生效的问题

关于使用开源版urule决策引擎优化性能和配置客户端集群同步生效的问题

由于在项目中配置的是开源版urule决策引擎,存储的方式是保存到数据库,这样就会导致性能跟不上去,每调一次决策引擎,都需要很长的时间,这样在项目中明显是不现实的。

优化性能,在urule的配置文件configure.properties中配置如下信息:

#数据源bean的id
urule.repository.datasourcename=dataSource
#指定数据库类型
urule.repository.databasetype=oracle
#配置本地文件
urule.repository.dir=D:/repo#优化性能的相关配置
urule.repository.xml=
urule.decisionTree.style=new
urule.WelcomePage=
urule.knowledgeUpdateCycle=1
urule.debug=false

说明:

1、项目中即使不使用本地存储的方式,也要在配置文件中配置urule.repository.dir=D:/repo本地存储位置,否则启动会报错。

2、关于urule.knowledgeUpdateCycle的说明:

在独立服务模式下,包含URule Pro Console模块的应用被部署成一个独立的Server,在这个Server上创建规则项目,在项目中根据业务需求添加决策集、决策表、交叉决策表、决策树、评分卡、复杂评分卡、决策流等,再把这些文件打包到知识包中,最后通过HTTP协议暴露给各个客户端业务系统使用。

独立服务模式下客户端获取服务端知识包的方式:

在独立服务模式下,URule Server上给客户端提供的是若干个已经构建好的知识包对象,当有客户端需要进行规则计算时,它会检查当前客户端中配置的“urule.knowledgeUpdateCycle”属性值,如果为0,那么就直接请求URule Server获取指知识包;如果为1,那么它会首先检查客户端本地缓存当中是否存在指定的知识包,如果存在,就取本地缓存中的,如果不存在,则到URule Server下请求指定的知识包,然后将请求到的知识包缓存到客户端内存中,这样下次就不再到URule Server上下载;如果“urule.knowledgeUpdateCycle”属性值大于1,那么客户端会首先检查本地缓存中是否存在指定的知识包,如果存在,那么就拿当前时间与本地缓存中的知识包的时间戳进行比较,如果小于“urule.knowledgeUpdateCycle”属性值,那么就直接取这个知识包,如果大于它,那么就到URule Server上通过时间戳检查当前知识包有没有更新,如果有更新则取到客户端,同时更新客户端缓存里对应的知识包;如果没有更新,那么就直接采用当前客户端缓存里的知识包。

 3、取消调试信息输出:urule.debug=false

但是,配置了以上配置信息后,性能是上去了,这里还有个问题,对于做集群的服务,在一个客户端修改了决策规则后,并不能同时同步在没有修改的客户端上生效。

这个时候,需要配置推送客户端。

配置客户端集群同步生效

配置方式一

打开这个configure.properties文件,在其中添加一个名为“urule.resporityServerUrl”属性,比如

urule.resporityServerUrl=http://192.168.18.11:8080/urule-server
rule.resporityServerUrl=http://127.170.1.1:8080/urule-server

 这样可以实现任何一端客户端修改决策都可以同步生效。但是这种方式的缺点是写死在代码中,没有在页面控制台配置方便好用。对于如果后期更换服务器或者客户端ip更改,就得需要更改代码中的配置了,个人不是很推荐这种方式去配置。

配置方式二

在URule 的控制台,在规则项目中点击右键,在弹出的菜单中选择“配置接收推送客户端”,就可以打开客户端配置页面,如下图:

我们可以添中多个客户端,这样在当前项目发布知识包时就可以自动推送到这里的客户端上,如下图:

 

配置完成后,点击当前项目的“知识包”节点,选择任意一个知识包,点击工具栏上“发布当前知识包”按钮,可以看到有如下类型的提示:

 

点击“确定”,系统会向这些客户端推送当前发布的知识包对象 ,这样可以实现同步生效。

这种方式配置方便,不需要更改代码,推荐使用这种方式。


https://www.fengoutiyan.com/post/15286.html

相关文章:

  • 决策引擎入门
  • drools规则引擎性能问题
  • 决策引擎和评分卡
  • 决策引擎价格
  • 引擎性能是什么意思
  • 英特尔管理引擎组件会提升性能吗
  • redis配置优化
  • 开源决策引擎
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機