Drools Fusion (CEP) Example 和 关键概念

Drools Fusion (Complex Event Processing) 是Drools对于复杂事件处理的模块, 与它功能相似的是Esper, 两者都可以提供基于时间跨度和滑动窗口的事件处理, 两者最大的区别可能就在于1. Drools开源, 不支持Distribution, 语法drl, Esper有企业版, 支持Distribution, 语法类SQL

看了一下官方文档

http://docs.jboss.org/drools/release/5.6.0.Final/drools-fusion-docs/html_single/

写了几个例子

https://github.com/zhwbqd/droolsCEP

下面介绍一下Drools Fusion中一些关键的概念

1. event和fact的区别

  1. event 一般是不变对象
  2. event 与时间强相关
  3. event 拥有可管理的生命周期(一般只会在有限的时间内匹配规则, 方便engine管理自动管理event, 将未匹配的event销毁, 并释放相关资源)
  4. 每个event都有自己的ts, 可以使用滑动时间窗口, 例如: 统计过去60min的平均值

2. drools support 两种语义的event, 时间点和区间(区别是 @duration 注解是否为0)

3. 注解:

1. @role 默认fact, CEP时候 @role(event) 标识fact 是一个event

2. @timestamp, 每个event都有一个相关的timestamp, 默认是从系统获得(即为插入session的时间), 也可以由外部赋值

3. @duration, 每个event的持续时间, 在point-in-time event中为0, 默认值也为0, 外部可赋值

4. @expire, 只在STREAM MODE有效, event的过期时间, @expire(300) 300s过期 @expire(1d3h45m20s29ms) 1天3小时45分钟20秒29毫秒过期

4. SessionClock 共有4中, 主要使用的有两种, realtime和pseudo

5. After, Before, During, Meet 等关键字 都是用于比较两个事件的发生时间顺序

比如before关键字的意义

3m30s <= $eventB.startTimestamp - $eventA.endTimeStamp <= 4m 
$eventA : EventA( this before[ 3m30s, 4m ] $eventB ) 

6. Sliding Window 只能跑在STREAM模式下, SlidingWindow 会立即执行运算,而不会等到事件满足要求才进行计算, event未在sliding window被匹配上的也不会被销毁, 可能有其他event依赖于它, 它会在自己的expire时间内过期

时间: 2024-10-08 17:57:59

Drools Fusion (CEP) Example 和 关键概念的相关文章

OOP的关键概念

一:OOP 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成. 二:OOP的特性 1)封装:我们不需要知道程序组件内部是如何进行工作的,我们只需要通过这些组件众所周知的接口进行调用即可.通过众所周知的接口把用户应用与与程序内部工作原理进行分离,这种方法叫做封装.这些组件不仅能够调用还能够进行组件的组装.通过这些定义好的接口进行交互的组将我们称为对象

5、ns-3关键概念

1.节点 基本计算设备被抽象为节点.用Nodes类来描述.如Nodeontainer类,用于追踪一组节点指针. NodeContainer nodes; nodes.Create(2); 2.应用 需要被仿真的用户程序被抽象为应用.这些方法以“Time”对象为参数,记录接收时间和发出时间.NS3用Application类表示. 3.信道 基本的通信子网被抽象为信道.C++中用channel类来描述.该类提供了管理通信子网对象和节点连接至它们的各种方法.一个信道实例可以模拟一条简单的线缆,也可以模

(三)NS3中的关键概念

(三)NS3的关键概念 8. NS3关键概念: 1)  NODE节点 NODE节点:NS3基本的计算设备被抽象为节点.节点是一台可以添加各种功能的抽象计算机(软硬模块),如节点可以添加应用程序.协议栈.外围卡及其驱动程序(合称网卡). 节点有C++中的Node类描述.Node类提供了用于管理仿真器中网络组件(抽象表示)的各种方法.如:NodeContainer类,用于追踪一组节点指针.通常,Ns3的拓扑助手类一次能在多个节点上工作,如一个设备助手可以在大量相同节点上安装设备. 创建2个节点: N

【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

前言 本篇博客先介绍在仿真过程中会使用到的一些关键概念,然后介绍便于调试仿真脚本的常用技术:日志.命令行参数. 关键概念 节点 在因特网术语中,主机(终端)是指任何一台连接到网络的计算设备.ns-3并非一个专门的因特网模拟器,而是一个网络模拟器.为此不采用术语"主机",因为这个词太容易让人联想到因特网以及相关协议.因此,选用其他术语:节点. 可以将节点理解为一个空的机箱,我们可以向其中添加各种功能,将其变成我们想要的主机或者交换机. 节点由C++中的Node类来描述.Node类提供了用

威胁情报的几个关键概念

当前,网络空间的广度和深度不断拓展.安全对抗日趋激烈,传统的安全思维模式和安全技术已经无法有效满足政企客户安全防护的需要,新的安全理念.新的安全技术不断涌现,当前的网络安全正处在一个转型升级的上升期. 目前,信息安全业界普遍认同的一个理念是:仅仅防御是不够的,更加需要持续地检测与响应.而要做到更有效的检测与更快速的响应,安全情报必不可少. 安全情报是一个宽泛的概念,主要包括了威胁情报.漏洞情报.事件情报以及基础数据情报.其中,威胁情报已然成为近几年国内外安全领域的热点. 首先,必须明确地指出,严

Exchange 2013 PowerShell关键概念之一

介绍 当你的组织决定升级到Exchange Server 2013,去体验一些新的功能,如集成的电子邮件存档.发现功能以及高可用功能.不管你是否喜欢,你应该意识到PowerShell已经是Exchange服务器管理工具的一部分,而且你需要去学习一些基本脚本知识,从而建立一些脚本管理Exchange Server.这本书就是关于这方面的介绍.在这一章,将介绍一些PowerShell的一些核心概念,这些概念讲方便你学习这本书中提到的一些实例知识.当然,假如你的PowerShell比较熟悉,可以跳过本

Compute API 关键概念 详解

Compute API 是 RESTful HTTP 服务,提供管理虚机的能力. 虚机可能有不同的内存大小,CPU数量,硬盘大小,能够在几分钟之内创建出来.和虚机的交互,可以通过Compute API编程实现. 用户需要知道的概念 Server A virtual machine (VM) instance, physical machine or a container in the compute system. Flavor and image are requisite elements

yii2.0框架关键概念

1.请求周期图 2.web应用入口脚本 包含yii类文件 读取配置文件实例化应用主体 解析路由,明确需要创建的控制器 3.应用主体 是yii\web\Application类的实例 是管理yii应用系统整体结构和生命周期的对象 每个入口脚本只能创建一个应用主体 可以用\Yii::$app来访问应用 应用主体的配置 $config变量给应用主体这个对象的属性进行初始化赋值 $config变量是从配置文件web.php加载而来的 应用主体的属性 id  属性用来区分其他应用的唯一标识ID baseP

关键概念理解---未完待续

默认情况下,每个主分片都有一个副本,但可以在现有索引上动态更改副本数. 永远不会在与其主分片相同的节点上启动副本分片. 分片分布计算公式:shard_num = hash(_routing) % num_primary_shards _routing是文档的_id 写入到Elasticsearch的文档,在默认的情况下并不马上可以进行搜索.这是因为在Elasticsearch的设计中,有一个叫做refresh的操作.它可以帮在Lucene里的离散的Segments进行合并,并使新进入的文档变为搜