yep(y event process)引擎是为了满足对事件进行分析并做出反应等这些应用需求而产生的。这些应用要求近事实处理事件(或消息)。
关键要考虑这些类型应用的(高)吞吐量、(低)响应时间和需求逻辑的复杂程度(暂时无复杂计算,只考虑业务聚合)。
应用步骤以及原理如下:
1、获取一个YCP引擎实例
2、生成一个Statement(用Yql的查询语言,即用sql定义规则,暂不支持复杂逻辑,只是业务聚合),意味着事件处理机制的注册.
3、使用引擎注册这个Statement
4、生成一个Listener(通过实现一个Java接口,该接口在Statement所得值为true会被触发),并把它跟Statement绑定起来。
工作原理:
事件能以Java对象形式展现,当它们通过系统的时候,系统会评估Statement的值,即触发对应事件处理链,执行相关逻辑,并将结果交付Listener,触发下一步执行。
核心在于事件处理链的处理流程。
数据平台使用逻辑:
对于待聚合事件 A, B, C (数据库事件)
A发生 -> 触发事件机制 -> [经过事件处理链(主要业务逻辑)判断] -> 符合逻辑 -> 进一步触发listener -> 形成一个完整的事件 -> 入库存储等
-> 不符合逻辑 -> 进入缓存(待处理)
关键要考虑这些类型应用的(高)吞吐量、(低)响应时间和需求逻辑的复杂程度(暂时无复杂计算,只考虑业务聚合)。
应用步骤以及原理如下:
1、获取一个YCP引擎实例
2、生成一个Statement(用Yql的查询语言,即用sql定义规则,暂不支持复杂逻辑,只是业务聚合),意味着事件处理机制的注册.
3、使用引擎注册这个Statement
4、生成一个Listener(通过实现一个Java接口,该接口在Statement所得值为true会被触发),并把它跟Statement绑定起来。
工作原理:
事件能以Java对象形式展现,当它们通过系统的时候,系统会评估Statement的值,即触发对应事件处理链,执行相关逻辑,并将结果交付Listener,触发下一步执行。
核心在于事件处理链的处理流程。
数据平台使用逻辑:
对于待聚合事件 A, B, C (数据库事件)
examples:
A发生 -> 触发事件机制 -> [经过事件处理链(主要业务逻辑)判断] -> 符合逻辑 -> 进一步触发listener -> 形成一个完整的事件 -> 入库存储等
-> 不符合逻辑 -> 进入缓存(待处理)
处理链:是否满足聚合逻辑,是否需要做保留,具体过滤条件(sql where条件)
架构图