gpt4 book ai didi

java - 服务器端的轻量级规则引擎,用于服务器功能编排

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:39 25 4
gpt4 key购买 nike

我的 Java 服务器具有一种通用操作,可在内部满足多种功能。

在服务器调用期间执行一个或多个函数取决于调用的是哪个客户端以及客户端传递的参数。

服务器根据客户端参数(通常参数是客户类型、国家、产品类型等)在内部执行功能编排

作为服务器的一部分,我们目前有一组 if/else block 来确定这一点,但对此的任何更改都需要代码更改和发布。

我打算改变这一点并使用非常轻量级的规则引擎,我可以在其中传递一组参数并按规则(或从那里淘汰)编排功能。

最重要的要求是,这个规则引擎可以动态配置(通过一些 UI)而无需任何代码发布(就像存储在缓存中的规则)。

此外,我的服务器每天处理数千万个请求,它必须在响应方面超快,我无法承受每次 HIT 上的数据库命中或繁重的规则引擎。

我的一个想法是引入特征矩阵(使用一些数据结构)并将其发布到缓存,每个服务器 HIT 将首先检查这个矩阵并确定需要为这个请求做些什么,我可以改变特征矩阵通过一些 UI 配置和新配置将尽快发布到缓存,下一个服务器请求将使用新配置。

对实现有什么想法或建议吗?

最佳答案

您可以将 Prolog 用作规则引擎:存在许多轻量级实现。

当然,这些并不总是快如闪电,但对您来说可能足够快,尤其是在仔细编写规则的情况下。

然后你就可以缓存结果了。

如果您有一组常用的参数,请将这组参数设为一个对象,根据参数的内容提供一个散列函数,并将其用作散列映射中的键。为了保持缓存的合理大小,为键实现一个 LRU 列表。

关于java - 服务器端的轻量级规则引擎,用于服务器功能编排,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20578680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com