找回密码
 立即注册
搜索
查看: 82|回复: 6

RuleGo v1.0.0 发布:API 稳定承诺、多副本部署、规则链版本回滚

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 2026-10-19 18:00:05 | 显示全部楼层 |阅读模式
RuleGo 是一个基于 Go 语言的轻量级、高性能、嵌入式规则引擎:用规则链(JSON 或可视化拖拽)编排组件,不写代码就能完成物联网数据采集、边缘计算、业务自动化和 AI 智能体编排。

开源三年,v1.0.0 是第一个稳定版本。对你来说,它意味着三件事:

• 升级放心——v1.x 内公开 API 遵循语义化版本,不再有破坏性变更;本版还把历史废弃 API 一次性清干净,以后只做加法;
• 生产可用——多副本部署、失控循环防护、版本快照回滚、一轮安全加固在这个版本收口;
• 能力完整——11 个工业协议采集、SQL 流计算、AI 智能体、可视化编辑器,一套引擎全覆盖。

一、升级放心:v1.x 不再破坏兼容

从 1.0 起承诺:module 路径不变,公开 API 按 semver 演进,规则链 DSL 保持兼容。为了让这个承诺有干净的起点,此前标记废弃的 API 在本版一次性移除,涉及的主要是三处老接口:


如果你还在用         请改成

WithEndFunc / OnMsgWithEndFunc / OnMsgWithOptions         WithOnEnd / OnMsg

iterator 迭代节点         for 节点

utils/str 字符串模板         utils/el 表达式模板(ExecuteTemplate 用法兼容旧模板)


多数是机械替换。没用过这些老 API 的话,go get 直接升级,什么都不用改。
二、多副本部署:定时任务不重复跑,队列消息不重复消费

过去把同一条规则链部署到多个实例,会立刻遇到两个问题:cron 定时任务每个副本都触发一次,消息队列每个副本都消费一遍。v1.0.0 补上了跨副本协调:

• 定时任务跨副本去重:给引擎接一个 Redis(官方提供现成的 RedisLocker),3 个副本部署同一条定时链,到点只执行一次;不接 Redis 行为和单机完全一样;
• 队列消费单活:redis / rabbitmq 等消息端点多副本部署时自动选主,只有一个副本消费,主副本故障自动接管,不用额外的协调服务;
• kafka 共享连接:多个节点复用一条 kafka 连接,连接数不随节点数膨胀;
• Server 整体可嵌入:整个管理平台可以作为库嵌进你自己的 Go 应用(鉴权、存储都留了注入口),独立部署时仍然是零依赖单二进制;多租户、角色、API Key 开箱即用。

三、版本管理:保存记版本,一键回滚

1.0 之前,规则链保存就是覆盖,改错了只能凭记忆恢复。现在:

• 保存自动记版本:每次主动保存生成一个快照,滚动保留(数量可配);存草稿不占版本额度,内容没变也不会产生重复版本;
• 一键回滚:出问题随时回退到任意历史版本,回滚本身也留痕、可再回退;
• 新建链默认不上线:确认没问题再启用,半成品链不会被流量打到;
• 全局变量热更新:${global.x} 改完立即生效,不用重启;支持引用环境变量,密码和 Key 落盘自动掩码。

四、引擎更稳:失控循环刹得住,排障看得见

• 循环防护:单条消息的跳转次数有了硬上限(可配),配置失误写出的死循环不会再拖垮整个实例;
• join 等待语义修正:多分支汇聚改为"等直接连进来的分支完成即可",不再傻等整个子树,分支竞态导致的提前完成和漏放行一并修掉;
• 业务日志:给节点配一条日志模板,运行记录里就能直接看到业务信息——不用再靠"节点执行过了"去反推发生了什么;
• 跨链调用可溯源:子链、跨链调用的消息自动带上来源链和来源节点,链间排障不用猜;
• 性能与质量:高并发下每条消息的处理开销进一步下降;引擎测试覆盖率提升到 88.4%,数据竞争测试全绿作为 1.0 基线。

五、AI 智能体跑进网关:32 位设备上的完整 ReAct 循环

新增的 ai/agent 组件用纯 Go 标准库实现了"推理→调工具→看结果"的完整循环,不依赖任何重型 AI 框架,32 位平台可编译——网关、工控机这类边缘设备也能跑智能体。配套的:

• ai/jev 决策节点:让大模型在规则链里当"判断节点",按语义条件路由和过滤消息,AI 判断和业务流程长在一起;
• 远程 MCP 工具:智能体的工具可以直接挂远程 MCP 服务,不限于本机;
• 流式自愈:模型流式输出格式异常导致工具调用丢失时,自动重跑该轮,对话不中断。

六、IoT 采集:新增 BACnet,批量读一次往返

• 第 11 个协议族 BACnet/IP:楼宇自控标准协议,暖通空调、照明、楼宇控制器接入。协议族全景:Modbus、OPC UA、西门子 S7、EtherNet/IP、SNMP、三菱 MC、欧姆龙 FINS、DL/T645、HJ212、IEC 60870-5-104、BACnet/IP;
• 批量合并读:Modbus/S7/SNMP/FINS 相邻点位自动合并成一次批量请求——采 100 个连续点位,从 100 次往返变成 1 次;
• 连接治理统一:全部采集组件统一的断线重连、重试退避和实时连接状态(编辑器里直接看每个节点的在线状态);
• 工程量换算全覆盖:全部协议的读点位支持缩放/偏移系数,寄存器原始值自动换算成温度、压力这类工程量。

七、流计算:两条实时流按时间窗口关联

规则链里的 SQL 流计算升级到 StreamSQL v1.3.0,补上了流-流 JOIN:两条实时流按主键关联、事件时间相差不超过窗口才算匹配。指令下发 10 秒没等到回执就告警、温度异常同时对振动异常才算故障——这类双流互证的场景,一条 SQL 写完,在规则链里配一个节点就能用。
八、编辑器:跑一次,瓶颈在哪看得见

• 耗时瀑布图:每次调试运行,各节点耗时按瀑布图展开,慢在哪一级一眼定位;
• 运行记录对比:改完配置重跑,两次运行的消息差异自动对照,变化点直接标出来;
• 循环编排防接错:循环分组内外的连线互相禁止,接错的线在画布上就被拦下;while 死循环在编辑时就能检出;
• 调试细节:错误定位到具体节点、调试表单记住上次输入、给未上线的链发测试数据会先引导部署再自动重发。

升级清单

• rulego 核心:废弃 API 移除(见上文对照表),其余无破坏性变更,DSL 与 module 路径不变;
• ssh 节点:私钥三个配置字段(privateKey / privateKeyPath / privateKeyPassphrase)合并为一个 certKeyFile,填私钥内容或文件路径都行;password 与私钥二选一,私钥加密时 password 作为解密口令;
• modbus 校验位:新配置建议用 N/O/E 字母写法;存量数字写法 0/1/2 仍能读入,不用改;
• 源码编译 Server:需要 Go 1.25+(核心引擎仍兼容 Go 1.20,二进制下载用户无感)。

快速上手

  1. go get github.com/rulego/rulego@v1.0.0
复制代码

嵌入使用三行代码跑通第一条规则链;独立部署直接下载 Server 单二进制,内置可视化编辑器,浏览器打开即用。

其余 100+ 项修复与增强见 CHANGELOG。

--------------------------------

相关链接:

• GitHub:https://github.com/rulego/rulego
• Gitee:https://gitee.com/rulego/rulego
• 官方文档:https://rulego.cc/
• 在线演示:http://8.134.32.225:9090/ui/ 、http://8.134.32.225:9090/editor/
• 智能体框架文档:https://rulego.cc/pages/ai-agent-overview/

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 2026-10-19 18:15:01 | 显示全部楼层
收藏了,明天上班路上细读,稳定承诺持续关注中。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-19 18:45:01 | 显示全部楼层
前排学习,感谢楼主整理v1.0.0相关的内容。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-19 19:15:01 | 显示全部楼层
先马后看,v1.0.0的资料太散了,这篇梳理得挺清楚。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-19 19:45:01 | 显示全部楼层
坐等更新,RuleGo系列要是能写下去就更好了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-19 20:15:01 | 显示全部楼层
开源三年,v1.0.0 是第一个稳定版本。
讲得挺透,RuleGo这块就该这么理解。

10

主题

35

回帖

0

积分

积分
0
发表于 2026-10-19 20:45:01 | 显示全部楼层
好帖,先顶后看,慢慢消化。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}