RuleGo v0.12.0 正式发布:Go 语言的轻量级、高性能、嵌入式业务规则引擎

软件简介

RuleGo 是一个基于 Go 语言的轻量级、高性能、嵌入式的规则引擎。也一个灵活配置和高度定制化的事件处理框架。可以对输入消息进行过滤、转换、丰富和执行各种动作。

本项目很大程度受 thingsboard 启发。参考其规则链思想,但在架构上做了重大调整,来满足以下场景:

  • 在资源占用和性能上做了很大程度优化,使其更适用边缘计算场景。
  • 不停机、不需要重新编译,动态编排业务,满足高度定制化和高度变化的业务需求。
  • 非侵入式嵌入到现有项目。
  • 提供更加灵活的接口和回调钩子。
  • 更加开放的组件生态。可以利用社区提供的组件或者把业务封装成组件,通过搭积木方式快速动态实现业务需求。

特性


  • 开发语言:Go 1.8
  • 轻量级:无外部中间件依赖,在低成本设备中也能高效对数据进行处理和联动,适用于物联网边缘计算。
  • 高性能:得益于 Go 的高性能特性,另外 RuleGo 采用协程池和对象池等技术。对 10W 条数据进行 JS脚本过滤->JS脚本数据处理->HTTP推送 处理,平均用时 9 秒。
  • 嵌入式:支持把 RuleGo 嵌入到现有项目,非入侵式利用其特性。
  • 组件化:所有业务逻辑都是组件,并能灵活配置和重用它们。
  • 规则链:可以灵活地组合和重用不同的组件,实现高度定制化和可扩展性的业务流程。
  • 流程编排:支持对规则链进行动态编排,你可以把业务地封装成 RuleGo 组件,然后通过搭积木方式实现你高度变化的业务需求。
  • 扩展简单:提供丰富灵活的扩展接口和钩子,如:自定义组件、组件注册管理、规则链 DSL 解析器、协程池、规则节点消息流入 / 流出回调、规则链处理结束回调。
  • 动态加载:支持通过 Go plugin 动态加载组件和扩展组件。
  • 内置常用组件:消息类型Switch,JavaScript Switch,JavaScript过滤器 ,JavaScript转换器 ,HTTP推送MQTT推送发送邮件日志记录 等组件。可以自行扩展其他组件。
  • 上下文隔离机制:可靠的上下文隔离机制,无需担心高并发情况下的数据串流。

支持规则链类型:

顺序执行:


异步+顺序执行:


使用子规则链方式:


一些复杂例子:

 

快速上手:

Gitee

Github

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/251323/rulego-0-12-0-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。