繁体   English   中英

Drools全局变量初始化和扩展以提高性能

[英]Drools global variable initialization and scaling for performance

提前致谢。 我们正在尝试在企业中采用流口水作为规则引擎。 在评估POC模式下的基本功能之后,我们将进一步探索。 我们面临以下挑战,我正在尝试验证我们正在考虑的某些选项。 任何帮助是极大的赞赏。

方案1:假设您在事实字段中获得了美国状态(TX,CA,CO等)。 现在,您希望规则检查“事实的状态值”是否存在于状态值的预定静态列表中(例如,该列表包含三个值TX,TN,MN)。

方案1的可能解决方案:“状态值的静态列表”可以设置为全局变量,并且规则可以在执行检查时访问全局变量。

关于方案1的问题:“对方案1的可能解决方案”是标准做法吗? 如果是这样,是否可以在规则引擎(KIE Server)启动期间从数据库加载此全局变量的值? 如果是,您能否让我知道drools功能,该功能使我们能够从数据库加载全局变量? 客户端应用程序(调用kie-server的客户端应用程序)应该初始化全局变量吗?


方案2:我们希望水平扩展规则执行服务器。 假设我们有一台规则引擎服务器(kie-server)公开了rest-api。 我们可以在负载均衡器后面运行多个实例以使其水平扩展吗? 还有其他实现可扩展性的方法吗?


Q1:这取决于。 对于仅在单个规则中使用的很小的,很少(如果有)更改集的通常解决方案是使用in运算符将其放入规则in 如果您认为可能必须更改或经常使用它,则可以使用全局变量来实现这一目的,但是必须确保在插入所有事实之前已初始化全局变量。

访问数据库没有开箱即用的东西。

问题2:运行Drools会话的服务器只是另一个Java服务器程序,因此适用于此类程序的任何负载平衡也应适用于Drools应用程序。 你在怕什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM