apama笔记

记录apama学习笔记,apama中任何对象都可以理解未一个事件,只要注册了每个对象事件监听,在apama进程接收消息队列中有该对象时,就会进行对象匹配,如果满足条件就会触发一个事件监听。

RPC序列化

apma的rpc通信过程中数据序列化是文本字符串序列化,不是二进制序列化。序列化格式为:packageName + eventName + properties属性。 例如:”QRY_apamax.atmfraud.DetectRepeatedMaxWithdrawals”, 1, “*”, [“600”]。

序列化顺序严格按照事件定义时候的顺序来组织,数据格式也要对应,否则会出现rpc通信过程中事件丢失问题。

工程目录约定

event目录

该目录主要包含apama进程启动的时候预定义的一些事件,实现系统测试、初始化一些系统事件使用。
文件名:后缀名为evt
格式:事件定义全路径(属性定义)
例如:
//预生产的事件列表,按照顺序生产后放入当前correlator的消息队列
com.lehoon.apama.EventC(“C1”)
com.lehoon.apama.EventA(“A1”)
com.lehoon.apama.EventF(“F1”)

dashboards目录

apama本身支持cs应用,apama的client端就是dashboards面板,支持控件拖拽式开发,动态绑定运行时的dataview实例。 缺点就是不支持高分屏、用户体验度不好。

monitor目录

apama的主要逻辑代码存放目录,文件后缀名为mon,类似与java的controller+service,在monitor中可以注册关心的事件处理逻辑代码。

queries目录

该目录存放自定义的queries文件,后缀名为qry。Query是epl程序执行的一个基本单元。 epl另外的执行单元是monitor,一个monitor不能能包括一个query。一个query不能包括一个monitor。
query适用于通过事件来提供大量真实世界信息的应用程序。

apama工具

apama提供了命令行工具去监控事件监听器。apama提供的工具在apama安装目录下的$APAMA_HOME/bin目录下,主要包括:engine_inject, engine_delete, engine_send, engine_receive, engine_watch, engine_inspect, engine_management等。

名称 说明
engine_inject 将epl文件注入到correlator
engine_delete 从correlator删除对象
engine_send 向correlator或者iaf发送apama格式化事件
engine_receive 从correlator或者iaf读取事件并在控制台打印日志
engine_watch 定期轮询correlator运行状态
engine_inspect 检查correlator正在运行的状态
engine_management 可以终止、查看、管理正在运行的correlator状态、及管理组件,比如:适配器、观察代理进程等

事件通知方法

apama中事件通知主要分为进程内、异构系统2种,进程内的事件通知使用route,系统间通过send发送事件。
事件都是通过channel名称来区分的,apama由一个默认的channel名称(空字符串)。

默认channel名称 说明 备注
com.apama.queries Query的默认通道 Query不能注册监听的通道,所以只能通过默认的channel获取事件
com.apama.input 进入correlator的所有事件的默认通道。监视器实例无法订阅该通道 主要用于诊断、测试、审核
文章目录
  1. 1. RPC序列化
  2. 2. 工程目录约定
    1. 2.1. event目录
    2. 2.2. dashboards目录
    3. 2.3. monitor目录
    4. 2.4. queries目录
  3. 3. apama工具
  4. 4. 事件通知方法