|
技术系列之《决策引擎性能表现》发表时间:2020-06-28 16:06 在我们上一篇技术系列文章中我们讨论了SMARTS决策引擎的性能特点以及其适用于不同场景的不同推理算法。 在本篇文章中,我们将讨论部署架构如何影响到决策引擎的性能。 对于您的业务系统而言,SMARTS本身不仅仅是一款决策引擎,其还对部署整个决策管理系统提供了良好的支撑。 尤其是,其为您提供构建微服务架构或其它服务方法提供相应支持,更有利于您良好的设计整个决策服务架构。 通过基于存储库或基于决策的Docker或虚拟镜像进行部署,除常见功能外,SMARTS决策服务还支持以下功能: 支持安全的服务调用 (通常是基于json数据的https调用)可以通过经过安全认证(token)的方式来调用决策服务。不同用户可同时发起调用,可以是任何能够调用服务的客户端。 Sparking Logic 提供Java,.NET,Python3,NodeJS的SDK包,极大降低客户端对接难度。 支持水平扩展在决策服务运行过程中,决策引擎将合理使用所有CPU核以达到最佳性能。使用更多的CPU核将使得SMARTS能支持更高的并发调用,并且整个扩展是线性高可用的。 您还可以在负载均衡器后面部署多个决策微服务。通常,您会用到编排技术,并且会用到环境(内部部署或云)中可用的负载均衡器。您可以部署多个SMARTS实例以实现集群部署,通过负载均衡器进行管理,并且可以根据业务需求灵活增加实例数进行横向扩展,实现弹性负载。 通过SMARTS界面可便捷进行主从配置,并且所有决策逻辑的变更可实现自动化实时同步更新。 支持高可用SMARTS也支持决策服务中实现冗余。 拥有多个节点的集群可有效避免单点故障,及时从集群中移除一个节点,剩下的节点也能继续执行调用。 支持完全可追溯的7×24小时业务热部署,无需停止线上业务SMARTS提供完善的多个层级的决策管理功能。比如,最高级别对应的生命周期管理,无需依赖于IT即可一键完成决策版本的热切换。SMARTS将会自动加载新的决策版本,如无任何编辑问题,将会自动进行热切换。用户可对切换逻辑进行配置,比如如果新版本无法加载或存在编译问题,继续使用之前的版本并向管理员进行提示,停止服务。 当然,这样的热切换逻辑也可以通过相应的编排技术实现,但当然需要IT的介入。 支持决策逻辑的状态检查SMARTS支持定时调用功能个,能设定线上决策提供服务的时间。 一般来说,我们不希望客户端是实时调用的,不需要因为决策服务的加载、编译以及缓存而存在调用延时,一定是在调用前就已经完成了服务的加载与编辑,并在内存中进行了缓存。 SMARTS不仅提供所有与性能相关的功能支持,还确保这些支持是在安全且可审查的方式进行的。决策服务被编译成只读项目文件,并且任务前端调用的返回报文中都包含当前所调用版本的版本信息。 除开决策性能之外,我们还应关注决策模型本省的业务表现。相关内容在我们下一篇博客中会进行讨论。 |