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.queriesQuery的默认通道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. 事件通知方法