複雜事件處理引擎 Esper工作原理

2022-09-08 05:48:14 字數 1133 閱讀 4205

ok,下面就對esper的工作原理進行乙個簡單的描述。首先看一下esper的事件驅動架構圖:

整個eda(event driven architecture)包括:

· data streams :事件源,提供高速、海量的實時資料。

· event stream adapters : 事件源的接入介面卡,用於接收事件源資料,並且**事件給esper引擎。

· esper engine : esper引擎部分。其負責註冊statement以及statement的監聽、事件型別等資訊,執行事件處理。

· output adapters : 輸出介面卡,通過監聽等獲取引擎處理的有價值資訊,通過該介面卡輸出。換句話說,其實就是與引擎外包程式連線的入口。

· event query & causality pattern language : 事件處理語言,包括規則引擎(事件查詢語言 類sql的用法) 以及狀態引擎(模式匹配)的定義。esper引擎執行事件處理時,依賴這些引擎的定義。

· core container : 核心容器。特殊演算法、操作分析等。

· historycaldata access layer : 歷史資料訪問層。在引擎處理時,會將esper引擎處理views的歷史資料(比如時間視窗 取過去30s的平均值)此類用法時,儲存歷史資料,共引擎處理。

整個esper架構——輕量級的esp(event stream processing 事件流處理)和cep(complex event processing 復合事件處理)容器,由以上各個部分組成。

執行時,event steam的流轉,參考圖中的箭頭方向。

上圖中,通過事件處理匯流排,即接入adapter以及引擎註冊等,負責接收事件並交由引擎處理;引擎處理的過程需要借助esper的內部快取以及狀態引擎、規則引擎等對事件進行解析、篩選處理。引擎處理輸出的事件資訊、歷史資料等都會在內部快取中進行儲存。最後事件消費方獲取有價值資料,執行相應動作。(這一部分的解釋多少有點模糊,是因為對於圖中的箭頭流向有些疑問,解釋不夠清楚,還請諒解!)

複雜事件處理和規則引擎的關係

複雜事件處理技術模擬的是人從現實世界中獲取資訊進行判斷推理的思維過程。這些資訊包括事物實體的狀態資訊,實體之間的作用和動作資訊,這裡統稱為事件。我們獲取這些事件,過濾掉不需要的事件,抽象低層次的事件到高層次的事件,組合區域性的事件成整體的事件,然後對這些事件進行匹配,判斷以及推理。用來實現判斷,查詢...

複雜事件處理和規則引擎的關係

複雜事件處理技術模擬的是人從現實世界中獲取資訊進行判斷推理的思維過程。這些資訊包括事物實體的狀態資訊,實體之間的作用和動作資訊,這裡統稱為事件。我們獲取這些事件,過濾掉不需要的事件,抽象低層次的事件到高層次的事件,組合區域性的事件成整體的事件,然後對這些事件進行匹配,判斷以及推理。用來實現判斷,查詢...

Esper處理Map事件

上篇部落格介紹了如何利用esper進行pojo巢狀事件的監聽處理操作,這篇來說一下map事件監聽和處理。如果esper要進行的事map事件那麼首先是需要建立map物件的。具體的建立方法如下,mapperson new hashmap person.put name string.class pers...