入门指南:RuleGo规则引擎
🎉 概述
随着项目规模的扩大,我们面临着代码耦合、维护困难、扩展性差等问题。特别是当业务需求频繁变动时,传统的开发模式往往难以满足快速迭代的需求。为了解决这些挑战,RuleGo 规则引擎应运而生,它旨在提供一个解耦、可实时响应的解决方案。
🏆 RuleGo的优势
- 轻量级与高性能:基于Go语言,RuleGo提供轻量级、高性能的规则引擎服务。
- 非入侵式框架:无缝集成现有项目,提供灵活的业务逻辑处理。
- 动态组件与扩展:支持动态加载和扩展组件,实现快速迭代和业务流程优化。
- 丰富的组件库:提供多种预制组件,支持数据聚合、过滤、转换等操作,简化系统集成。
🚀 特性
- 轻量级:无外部依赖,适用于边缘计算和云服务。
- 高性能:利用Go的并发特性,提升处理速度。
- 嵌入式:轻松嵌入现有应用。
- 组件化:业务逻辑组件化,易于配置和重用。
- 规则链:通过规则链编排,实现业务流程的定制化。
- 流程编排:动态调整业务逻辑,无需重启应用。
- 扩展性:提供扩展接口,支持自定义组件。
- 动态加载:通过Go plugin动态加载组件。
- 规则链嵌套:支持子规则链,提高流程复用性。
- 内置组件:提供多种内置组件,如消息路由、脚本处理等。
- 上下文隔离:确保高并发下的数据安全。
- AOP机制:在不修改原有逻辑的情况下,添加额外行为。
🪁 架构图
RuleGo根据规则链定义处理输入的消息/事件,规则链编排引擎驱动组件完成业务流程。
使用场景
RuleGo适用于需要解耦、高度定制化或频繁变动的业务场景。无论是物联网、数据分发、应用集成,还是自动化营销,RuleGo都能提供有效的解决方案。
🎯 典型使用场景
- 边缘计算:在边缘服务器上预处理数据,动态配置数据流。
- 物联网:收集设备数据,触发动作,如邮件通知。
- 数据分发:根据消息类型,分发到不同系统。
- 应用集成:连接不同系统或协议,如SSH、Kafka。
- 异构系统数据处理:集中处理来自不同数据源的信息。
- 高度定制化业务:管理变化频繁的业务逻辑。
- 复杂业务编排:封装业务为组件,动态调整业务流程。
- 微服务编排:编排微服务,动态调用第三方服务。
- 业务代码与逻辑解耦:如用户积分系统、风控系统。
- 自动化:流程自动化,对接大模型提取用户意图。
规则链概述
规则链是RuleGo的核心,由多个规则节点组成的有向无环图。每个节点都是一个组件,实现特定业务逻辑。规则链支持动态配置和修改,实现复杂业务流程。
RuleGo规则链优势
- 简单性:使用JSON配置规则链,无需专门的规则语言。
- 高效性:有向无环图表示规则链,提高处理效率。
- 灵活性:动态配置和修改规则链,适应业务快速变化。
规则链配置示例
{
"ruleChain": {
"id": "rule01",
"name": "测试规则链",
"root": true
},
"metadata": {
"nodes": [
// 节点配置...
],
"connections": [
// 连接配置...
]
}
}
RuleGo的规则链配置文件是一个JSON格式的文件,包含了规则链的定义和节点连接信息。