# rule-engine-gray **Repository Path**: louis_xie/rule-engine-gray ## Basic Information - **Project Name**: rule-engine-gray - **Description**: rule-engine-gray - **Primary Language**: Go - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-11-22 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 规则引擎灰度发布演示 本仓库是一个基于Golang的规则引擎可运行演示,包含以下功能: - 使用CEL编译规则 - 基于Kafka进行规则分发 - 边缘节点执行规则并支持灰度发布(百分比) - 使用Redis实现令牌桶限流器 - 执行Webhook动作 - 仪表盘HTML报告生成器 详细的内容介绍全在微信公众号中。干货持续更新,敬请关注「代码扳手」微信公众号: image ## 快速开始(本地环境,需要Docker) 1. 构建并启动服务: ```bash make docker-up ``` 2. 发布示例规则: ```bash # 方法一:使用脚本一键发布规则并等待传播 ./scripts/init_system.sh # 方法二:手动发布规则 ./scripts/send_rule.sh ``` 3. 启动仪表盘生成报告: ```bash make run-dashboard # 或通过docker-compose运行dashboard服务 ``` 4. 调用边缘节点评估示例: ## 项目结构 请参阅 docs/architecture.md 获取概览。 ## 故障排除 如果仪表盘显示所有状态为 "NO_RULE",这表明边缘节点尚未接收到任何规则。请确保: 1. Kafka 服务正在运行 2. 已经通过 publisher 服务发布了规则 3. 等待几秒钟让规则通过 Kafka 传播到边缘节点 如果仪表盘显示所有状态为 "SKIPPED",这表明规则已成功加载,但没有用户满足规则条件。请检查: 1. 测试数据是否满足规则条件(例如订单金额>=50且ML评分<0.3) 2. 用户是否在灰度百分比范围内(默认50%)