What's New In LiteFlow v2.9.3?
# 前言
我们一直在努力让LiteFlow这款规则引擎更好用,在2.9.0刚出来的时候,LiteFlow推出了数据库,nacos,etcd,zk这几种原生插件的支持。
但是随后有小伙伴反应,数据库里不支持存储脚本,zk,nacos,etcd里不支持脚本和规则分离,都得写在一起。
今天推出的2.9.3版本我们解决了一大部分这方面的诉求。
# DB支持脚本的存储
我们在2.9.3版本中首先解决了数据库不能存储脚本的问题。
用新增的自定义表来解决。你现在可以把脚本也存到数据库中了。
这块的文档详见SQL数据库配置源。
# ZK和Etcd结构进行了大幅度改造
之前zk和etcd采用的方式比较傻一点,就单个节点存储所有的xml形式的规则。这样导致的结果是修改起来总得修改一整个规则。
在2.9.3中,我们对zk和etcd的存储结构进行了大刀阔斧的改变。使得zk和etcd也能像关系型数据库那样,规则和脚本能分开进行存储。每个规则和每个脚本都有单独的节点。
并且存储的时候,我们去除了xml的这种格式,只存关键数据。我们插件会给你自动的拼装。
# 为什么Nacos没进行改造?
因为我们搞不定,Nacos没法对一个group进行监听,如果拆分了,那就会导致新增规则,删除规则没法被监听到。
而现在这种单个节点的形式,虽然没拆分,但是功能是齐全的。这也是无奈的选择。我们也想拆分的,但是我们搞不定。
# 选择组件的选择功能增强
在之前,选择组件只能根据Id来进行选择,2.9.0推出了根据tag来进行选择。但是我们觉得还不够。
2.9.3在这基础上进行了增强,推出了简单的选择表达式。基本上一看即会。
相关文档详见选择组件。
# 修复一些Bug
小伙伴们在使用中的时候,会碰到一些已经推出的特性在某些场景下达不到预期的效果。
在这个版本中,我们修复了一些问题,比如脚本的加载存在先后关系,这是不合理的,我们修复了。
比如EL中的字符串格式丢失问题,EL中的data
关键字的转型问题,我们也修复了。
同时改正了一些不规范的代码问题,比如chainName和chainId混用的情况。
# 结语
大家见证着LiteFlow一步步往前走,同时也希望更多人来帮助这个项目的发展。
同样的,我们也保证2.9.3的质量问题,有任何疑问,欢迎来群里反馈。