LiteFlow LiteFlow
首页
  • v2.16.1 (当前版本)
  • What's New

    • What' s New In LiteFlow v2.16.1?
    • What' s New In LiteFlow v2.16.0?
  • 历史版本

    • v2.15.X
    • v2.13.X
    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
AI Agent
AI Skill
IDEA 插件
  • 答疑解惑

    • 常见问题
    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念?
  • 项目与社区

    • 项目介绍
    • 项目成员
    • 更新记录
    • 参与开发
    • 加入群聊
    • 谁在使用
赞助
GitHub (opens new window)

广告采用随机轮播方式显示 ❤️成为赞助商
首页
  • v2.16.1 (当前版本)
  • What's New

    • What' s New In LiteFlow v2.16.1?
    • What' s New In LiteFlow v2.16.0?
  • 历史版本

    • v2.15.X
    • v2.13.X
    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
AI Agent
AI Skill
IDEA 插件
  • 答疑解惑

    • 常见问题
    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念?
  • 项目与社区

    • 项目介绍
    • 项目成员
    • 更新记录
    • 参与开发
    • 加入群聊
    • 谁在使用
赞助
GitHub (opens new window)
  • 🍤LiteFlow简介
  • 🍓项目特性
  • 🧁环境支持

    • ☕️JDK支持度
    • 🌿Springboot支持度
    • 🌱Spring的支持度
  • 🍟快速开始(Hello world)

    • 🍄说明
    • 🌿Springboot场景安装运行
    • 🌱Spring场景安装运行
    • 🍩Solon场景安装运行
    • 🌵其他场景安装运行
  • 🍢配置项

    • 🍄说明
    • 🌿Springboot下的配置项
    • 🌱Spring下的配置项
    • 🍩Solon下的配置项
    • 🌵其他场景代码设置配置项
  • 🔗组件

    • 🛍继承式组件

      • 📎普通组件
      • ✂️选择组件
      • ⛓布尔组件
      • 🧬次数循环组件
      • ⌛️迭代循环组件
      • 🏄LiteflowComponent
      • 🛀组件内方法覆盖和调用
    • 🎁声明式组件

      • 🥭什么叫声明式组件
      • 🧅类级别式声明
      • 🥥方法级别式声明
  • 🧩EL规则

    • 🍄说明
    • 🌴串行编排
    • 🎋并行编排
    • 🌾选择编排
    • 🌵条件编排
    • 🌳循环编排
    • 🥦异步循环模式
    • 🎃捕获异常表达式
    • 🍄与或非表达式
    • 🍁使用子流程
    • 🍂使用子变量
    • 💐复杂编排例子
    • 🍒前置和后置编排
    • 🍉组件参数语法

      • 说明
      • tag语法
      • data语法
      • bind语法
    • 🫐重试语法
    • ⏱️超时控制语法
    • 🥯链路继承
    • 🔆验证规则
    • 🌰关于注释
    • 🌻关于分号
    • 🐚组件名包装
  • 🌮上下文

    • 🍄说明
    • 🌯数据上下文的定义和使用
    • 🪶用初始化好的上下文传入
    • 🥨给上下文设置别名
    • 🥙上下文参数注入
    • 🪴用表达式获取上下文参数
  • 🛩执行器

    • 🍄说明
    • 🎡执行方法
    • 🎢流程入参
    • 🎈LiteflowResponse对象
    • 🪃直接执行EL规则
  • 🍋脚本组件

    • 🌭脚本语言介绍
    • 🍫脚本语言种类

      • ☕️Java脚本引擎
      • 🥏Groovy脚本引擎
      • 🧀Javascript脚本引擎
      • 🥞QLExpress脚本引擎
      • 🍧Python脚本引擎
      • 🍝Lua脚本引擎
      • 🥐Aviator脚本引擎
      • 🥠Kotlin脚本引擎
    • 🍣脚本与Java进行交互
    • 🍱多脚本语言混合共存
    • 🌯文件脚本的定义
    • 🍘动态刷新脚本
    • 🍦验证脚本
    • 🗑卸载脚本
  • 🗂规则配置源

    • 📕本地规则文件配置
    • 📘SQL数据库配置源(旧)
    • 📗ZK规则文件配置源(旧)
    • 📋Nacos配置源(旧)
    • 🗄Etcd配置源(旧)
    • 📜Apollo配置源(旧)
    • 📑Redis配置源(旧)

      • 配置说明
      • 轮询模式配置
      • 订阅模式配置
    • 📙自定义配置源
  • 🏦Rule-DB模式

    • 🏦Rule-DB是什么
    • 🐬快速开始(SQL)
    • 🐘快速开始(PostgreSQL)
    • 🍃快速开始(MongoDB)
    • 📕快速开始(Redis)
    • 📗快速开始(ZooKeeper)
    • 🗄快速开始(Etcd)
    • 📋快速开始(Nacos)
    • 🍢配置项参考
      • 通用配置(七个后端共用)
      • SQL 专属配置
      • PostgreSQL 专属配置
      • MongoDB 专属配置
      • Redis 专属配置
      • ZooKeeper 专属配置
      • Etcd 专属配置
      • Nacos 专属配置
      • 与旧配置的关系
    • 🗃存储结构参考
    • 📤发布API与写入规范
    • ⚖️一致性与收敛模型
    • 🪁内存与性能
    • 🔭可观测性与降级
    • 🚧限制与迁移
  • 🍼元数据管理

    • ⛰元数据操作器
    • 🍖平滑热刷新
    • 🍮启动不检查规则
    • 🥨启动不检查脚本
  • 🌌异步中的线程池

    • 💧说明
    • 🐋FlowExecutor层面的线程池
    • 🐠组件异步层面的线程池
    • 🪶虚拟线程
  • 🎲动态构造

    • 🍄说明
    • 🥜构造Node
    • 🌰构造EL
    • 🍞构造Chain
  • 🧮决策路由

    • 🏖概念以及介绍
    • 🍽决策路由用法
  • 😸生命周期

    • 🐮启动时生命周期
    • 🐳执行时生命周期
  • 🎨高级特性

    • 🍌本地规则文件监听
    • 🥠组件降级
    • 🍑组件别名
    • 🥝组件事件回调
    • 🐋组件回滚
    • 🥑隐式子流程
    • 🫐活跃规则保活策略
    • 🍕私有投递
    • 🍪组件切面
    • 🍡步骤信息
    • 🧊异常
    • 🧇打印信息详解
    • 🧁自定义请求Id
    • 🫕快速解析模式
    • 🌭不同格式规则加载
    • 🍿自定义组件执行器
    • 🍥简单监控
    • 🧉XML的DTD
  • 📈指标监控

    • 📈指标监控概述
    • 🚀快速接入
    • 📋指标目录
    • 🔌Actuator端点说明
    • 📐分位与直方图
    • 🔍常用PromQL与告警
    • ⚡性能影响与基数控制
  • ⛱测试用例以及示例

    • 🪁测试用例
    • 🪀DEMO案例
  • 🪂性能表现
  • v2.16.X文档
  • 🏦Rule-DB模式
铂赛东
2026-07-25
目录

🍢配置项参考

版本支持:v2.16.1+

所有Rule-DB配置都在liteflow.rule-db.*命名空间下,绑定到com.yomahub.liteflow.property.RuleDbConfig。

配置是嵌套结构的:

  • 通用项在liteflow.rule-db.*
  • 缓存项在liteflow.rule-db.cache.*
  • 同步项在liteflow.rule-db.sync.*
  • 各后端的专属项分别在.sql.*、.postgresql.*、.mongodb.*、.redis.*、.zk.*、.etcd.*、.nacos.*下

先分清两类配置

连接(也就是各后端的专属项)管的是插件用哪个客户端或连接池访问存储。默认复用容器里的bean,只有存在多个同类bean时才需要用*-bean-name指名。

隔离名(application-name)管的是规则记在存储的哪个命名空间下,它不参与任何连接查找。

绝大多数应用这两类都不用显式配:连接按类型自动找,隔离名回落到spring.application.name。

# 通用配置(七个后端共用)

配置项 默认 说明
liteflow.rule-db.enabled true 引入依赖就激活了。这是个逃生开关,设成false则退回非Rule-DB的行为。
liteflow.rule-db.application-name 自动取spring.application.name 多应用共库时的隔离维度,会写进存储的application_name字段或者键前缀,同一套存储里不同取值的规则互相看不到。它只管隔离,和用哪个连接bean无关。两个Spring Boot starter在这项为空时会回落到spring.application.name,Solon插件和非Spring环境没有这个回落,请显式配置。都没有值时回落成default。多应用共库时请确保各应用取值不同,否则会互相读写对方的规则。另外发布侧的applicationName(...)必须和执行侧解析出来的结果一致。
liteflow.rule-db.cache.capacity 500 Caffeine有界缓存的容量,按chain条数计。超出后按访问热度淘汰,被淘汰的chain退回影子状态,它引用的脚本引用计数减一。
liteflow.rule-db.cache.preload-chain-ids 空 启动时预热的chain id列表,逗号分隔。关键链路建议列在这里,可以抹平冷启动时首次回源的尖刺。预热失败只记一条warn,不会阻断启动。
liteflow.rule-db.sync.poll-seconds 3 变更序号的轮询周期,对SQL、PostgreSQL、MongoDB、Redis生效。zk、etcd、Nacos走监听,这项对它们不生效。
liteflow.rule-db.sync.reconcile-seconds 60 清单对账周期,会全量diff索引和缓存。通知和轮询都丢了的极端情况下,这个周期是收敛的最终保证。
liteflow.rule-db.sync.fetch-retry-times 3 回源拉取失败时的重试次数。

# SQL 专属配置

配置项 默认 说明
liteflow.rule-db.sql.datasource-bean-name 自动查找 推荐用这个。指定复用容器里的哪个DataSource。只有一个DataSource时可以省略,插件会按类型自动查找。多数据源的项目请显式配置,因为不配的话,有@Primary就会用主数据源,没有则按类型查找失败。
liteflow.rule-db.sql.url — JDBC url,不推荐用。配了它就走DriverManager裸连接,没有池化,而且插件不再查找容器里的DataSource,两者互斥。只适合临时验证。
liteflow.rule-db.sql.username — 配合url使用。
liteflow.rule-db.sql.password — 配合url使用。
liteflow.rule-db.sql.driver-class-name 从url自动推断 留空即可。
liteflow.rule-db.sql.table-prefix lf_ 表名前缀,可以改,只允许ASCII字母、数字和下划线,最长54个字符。字段名是固定的,不可配。
liteflow.rule-db.sql.auto-init-table false 设成true则启动时执行CREATE TABLE IF NOT EXISTS。
liteflow.rule-db.sql.change-log-batch-size 1000 每次轮询最多读取多少条变更日志。有积压时会按批次连续排空,避免一次把全部历史记录载入内存。必须大于0。

# PostgreSQL 专属配置

配置项 默认 说明
liteflow.rule-db.postgresql.datasource-bean-name 自动查找 推荐用这个。指定复用容器里的哪个DataSource,只有一个时可以省略。多数据源的项目和SQL一样,请显式配置。
liteflow.rule-db.postgresql.url — PostgreSQL的JDBC URL,不推荐用。走DriverManager裸连接,没有池化,而且和容器DataSource查找互斥。
liteflow.rule-db.postgresql.username / .password — JDBC认证信息,配合url使用。
liteflow.rule-db.postgresql.driver-class-name org.postgresql.Driver 通常不用配。
liteflow.rule-db.postgresql.table-prefix lf_ 表名前缀,只允许ASCII字母、数字和下划线,最长52个字符。
liteflow.rule-db.postgresql.auto-init-table false 是否执行模块内置的PostgreSQL DDL。
liteflow.rule-db.postgresql.change-log-batch-size 1000 单批变更日志的上限。

# MongoDB 专属配置

配置项 默认 说明
liteflow.rule-db.mongodb.uri — MongoDB URI,不配则自动查找容器里的MongoClient。注意必须连接副本集或者分片集群。
liteflow.rule-db.mongodb.database liteflow 数据库名。
liteflow.rule-db.mongodb.collection-prefix lf_ Collection前缀。
liteflow.rule-db.mongodb.mongo-client-bean-name 自动查找 有多个MongoClient时用它指定。
liteflow.rule-db.mongodb.change-log-batch-size 1000 单批变更日志文档的上限。

# Redis 专属配置

配置项 默认 说明
liteflow.rule-db.redis.address — 单机、哨兵、集群统一从这里配,多地址逗号分隔,比如redis://h1:6379,redis://h2:6379。
liteflow.rule-db.redis.master-name — 配了它就是哨兵模式,不配则按地址数量自动推断是单机还是集群。
liteflow.rule-db.redis.username — Redis 6以上的ACL用户名,可空,单机、哨兵、集群都生效。
liteflow.rule-db.redis.password — Redis口令,可空。
liteflow.rule-db.redis.database 0 Redis逻辑库。
liteflow.rule-db.redis.key-prefix lf 键前缀,规则会落在{prefix}:{app}:...下。
liteflow.rule-db.redis.key-hash-tag — Redis Cluster的hash-tag,不含花括号。配了之后所有键落在{prefix}:{hashTag}:{app}:...下,固定到同一个slot,这样Lua多键原子发布才能工作。cluster模式下必填,不配会在建连时抛ConfigErrorException;单机和哨兵可以不配。
liteflow.rule-db.redis.redisson-bean-name 自动查找 容器里有RedissonClient时复用它,不用再配address,鉴权也在那个bean上配。

# ZooKeeper 专属配置

配置项 默认 说明
liteflow.rule-db.zk.connect-string — zk集群地址,多地址逗号分隔。
liteflow.rule-db.zk.root-path /liteflow 根路径,所有规则节点挂在{root}/{app}/...下。
liteflow.rule-db.zk.session-timeout 60000 会话超时,单位毫秒。
liteflow.rule-db.zk.username — digest认证用户名,可空。配了之后,模块创建的所有znode都使用CREATOR_ALL_ACL。它和password必须成对配置,且用户名里不能有:,否则启动时抛ConfigErrorException。
liteflow.rule-db.zk.password — digest认证口令,和username成对配置。
liteflow.rule-db.zk.curator-bean-name — 要复用的CuratorFramework bean名。zk后端不做按类型的自动查找,想复用就必须配这一项。配了之后connect-string、session-timeout、username、password都不再生效。bean不存在时启动抛ConfigErrorException。

# Etcd 专属配置

配置项 默认 说明
liteflow.rule-db.etcd.endpoints — etcd的endpoint列表,逗号分隔,必须带http://或https://,两种scheme不能混用。格式非法或者为空时启动抛ConfigErrorException。
liteflow.rule-db.etcd.root-path /liteflow 根路径。
liteflow.rule-db.etcd.user — 可选,etcd鉴权用户名,和password必须成对配置。
liteflow.rule-db.etcd.password — 可选,etcd鉴权口令。
liteflow.rule-db.etcd.ca-certificate — 可选,CA证书文件路径,PEM格式。只在endpoints是https://时生效,且必须是可读的文件。
liteflow.rule-db.etcd.client-certificate — 可选,mTLS用的客户端证书文件路径,和client-key必须成对配置。
liteflow.rule-db.etcd.client-key — 可选,mTLS用的客户端私钥文件路径。
liteflow.rule-db.etcd.authority — 可选,用来覆盖gRPC authority。
liteflow.rule-db.etcd.connect-timeout-millis 5000 连接超时,单位毫秒,必须大于0。
liteflow.rule-db.etcd.keepalive-time-seconds 30 gRPC keepalive探测间隔,单位秒,必须大于0。
liteflow.rule-db.etcd.keepalive-timeout-seconds 10 keepalive探测超时,单位秒,必须大于0。
liteflow.rule-db.etcd.keepalive-without-calls true 没有活跃调用时是否仍然发送keepalive探测。
liteflow.rule-db.etcd.client-bean-name — 要复用的io.etcd.jetcd.Client bean名。etcd后端不做按类型的自动查找,想复用就必须配这一项。配了之后上面那些连接、认证、TLS配置都不再生效。bean不存在时启动抛ConfigErrorException。

# Nacos 专属配置

配置项 默认 说明
liteflow.rule-db.nacos.server-addr — Nacos地址,不配则自动查找容器里的ConfigService。要求Nacos Server 2.x以上。
liteflow.rule-db.nacos.namespace public Nacos的namespace ID,注意不要填控制台上的显示名称。
liteflow.rule-db.nacos.group LITEFLOW_RULE_DB Catalog所在的group,只允许字母、数字、下划线、连字符、点和冒号。
liteflow.rule-db.nacos.data-id-prefix liteflow-rule-db Catalog的dataId前缀,最终的dataId是{prefix}.{applicationName}.catalog.json。字符约束和group一样。
liteflow.rule-db.nacos.username / .password — Nacos用户名和口令,必须成对配置。
liteflow.rule-db.nacos.access-key / .secret-key — Nacos的AK/SK,必须成对配置,且不能和username/password同时配。
liteflow.rule-db.nacos.timeout-millis 3000 配置读取和监听注册的超时,单位毫秒,必须大于0。
liteflow.rule-db.nacos.config-service-bean-name 自动查找 要复用的ConfigService bean名。复用的bean归容器所有,Provider关闭时不会调它的shutDown()。

独立Publisher通过NacosPublisherConfig.configService(...)复用外部客户端,所有权规则也一样。没传客户端时由Publisher自己创建,并在close()时关闭。显式传进来的bean或客户端本身已经带了连接和认证配置,这种情况下server-addr这类建连参数不参与创建。

# 与旧配置的关系

用了Rule-DB模式之后,下面这些旧配置就不再适用了,它们的语义都由rule-db.*接管:

  • liteflow.rule-source:和Rule-DB互斥,同时配置会启动报错,报的是rule-source and rule-db mode cannot be used together, please remove one of them。
  • parseMode、enableMonitorFile、chainCacheEnabled、chainCacheCapacity:Rule-DB这条路径不读这些配置,解析时机、热重载和缓存语义都由rule-db.*管,所以配了也没效果。建议直接从配置文件里删掉,免得后面的人误解。
帮助我们改善此文档 (opens new window)
📋快速开始(Nacos)
🗃存储结构参考

← 📋快速开始(Nacos) 🗃存储结构参考→

Theme by Vdoing | Copyright © 2020-2026 铂赛东 | MIT License
沪ICP备18012955号-2