前言
LiteFlow v2.9.3如约而至!我们的迭代频率又提高了,也更好用了。
我们一直在努力让LiteFlow这款规则引擎更好用,在2.9.0刚出来的时候,LiteFlow推出了数据库,nacos,etcd,zk这几种原生插件的支持。
但是随后有小伙伴反应,数据库里不支持存储脚本,zk,nacos,etcd里不支持脚本和规则分离,都得写在一起。
今天推出的2.9.3版本我们解决了一大部分这方面的诉求。
LiteFlow是一个灵动的,高成长性的,社区驱动的,丝滑且正在变得越来越好用的国产Java开源规则引擎。
如果你是第一次知道这个项目,可以去官网或相关的主页进行了解:
项目官网:
https://liteflow.yomahub.com
gitee托管仓库:
https://gitee.com/dromara/liteFlow
github托管仓库:
https://github.com/dromara/liteflow
DB支持脚本的存储
我们在2.9.3版本中首先解决了数据库不能存储脚本的问题。
用新增的自定义表来解决。你现在可以把脚本也存到数据库中了。
这块的文档详见SQL数据库配置源。
ZK和Etcd结构进行了大幅度改造
之前zk和etcd采用的方式比较傻一点,就单个节点存储所有的xml形式的规则。这样导致的结果是修改起来总得修改一整个规则。
在2.9.3中,我们对zk和etcd的存储结构进行了大刀阔斧的改变。使得zk和etcd也能像关系型数据库那样,规则和脚本能分开进行存储。每个规则和每个脚本都有单独的节点。
并且存储的时候,我们去除了xml的这种格式,只存关键数据。我们插件会给你自动的拼装。
这块文档详见ZK规则文件配置源以及Etcd配置源。
为什么Nacos没进行改造?
因为我们搞不定,Nacos没法对一个group进行监听,如果拆分了,那就会导致新增规则,删除规则没法被监听到。
而现在这种单个节点的形式,虽然没拆分,但是功能是齐全的。这也是无奈的选择。我们也想拆分的,但是我们搞不定。
选择组件的选择功能增强
在之前,选择组件只能根据Id来进行选择,2.9.0推出了根据tag来进行选择。但是我们觉得还不够。
2.9.3在这基础上进行了增强,推出了简单的选择表达式。基本上一看即会。
相关文档详见选择组件。
修复一些Bug
小伙伴们在使用中的时候,会碰到一些已经推出的特性在某些场景下达不到预期的效果。
在这个版本中,我们修复了一些问题,比如脚本的加载存在先后关系,这是不合理的,我们修复了。
比如EL中的字符串格式丢失问题,EL中的data
关键字的转型问题,我们也修复了。
同时改正了一些不规范的代码问题,比如chainName和chainId混用的情况。
v2.9.3完整更新列表
增强 #I5XWL2 数据库插件支持脚本的存储 https://gitee.com/dromara/liteFlow/issues/I5XWL2 增强 #I605FA 支持etcd分离chain以及脚本的存储结构 https://gitee.com/dromara/liteFlow/issues/I605FA 增强 #I5ZLH6 支持zk分离chain以及脚本的存储结构 https://gitee.com/dromara/liteFlow/issues/I5ZLH6 增强 #I5Y92X 支持选择组件跳转同时指定组件名和标签 https://gitee.com/dromara/liteFlow/issues/I5Y92X 增强 #I5ULVA 修正不规范的问题,chain的name和id混用,不太严谨 https://gitee.com/dromara/liteFlow/issues/I5ULVA 修复 #I5ZS92 希望能直接获取组件参数的原始字符串,而不是只能获取转换后的 JSON 对象 https://gitee.com/dromara/liteFlow/issues/I5ZS92 修复 #I5YEHG 脚本的加载有先后顺序问题 https://gitee.com/dromara/liteFlow/issues/I5YEHG 修复 #I5ZS8I 修复EL中定义的tag和data中的字符串的空格和换行被过滤掉了的现象 https://gitee.com/dromara/liteFlow/issues/I5ZS8I
结语
大家见证着LiteFlow一步步往前走,同时也希望更多人来帮助这个项目的发展。
同样的,我们也保证2.9.3的质量问题,有任何疑问,欢迎来群里反馈。
还没有评论,来说两句吧...