CEP(Complex Event Processing)複雜事件處理,這裡的複雜事件指的是業務規則的複雜, 随着網際網路、物聯網技術的發展現在傳感器裝得越來越多,目前實時流資料業務處理越來越廣,業務規則也越來越複雜。
可以說CEP就是一種基于事件的資料流分析技術,它通過過濾、聚合、關聯、狀态、時序等相關技術然後根據使用者所制定的相關業務規則過濾出符合要求的資料流,這麼說是不是感覺它和實時資料分析的概念很像。我覺得它就是實時資料分析中的一個重要分支。
适用于實時資料流處理的業務也幾乎都适合CEP,冷鍊車中實時上報的資料出現了異常高溫情況、兩客一危車輛在夜間連續行駛了N小時觸發疲勞駕駛報警、系統日志中出現連續失敗的嘗試登入等等,從名稱也可以看出“複雜事件”,将它用在一些簡單事件上效率或許沒那麼高。
上面說了這個CEP其實就是實時流資料處理的一個技術分支,其實就是不使用CEP也能實作那些業務場景規則,為什麼要使用CEP;
起個程式,從Kafka拉取資料,寫N個規則算法、多複雜的事件也就都能夠實作了,還可以直接使用Kafka Stream。
的确,道路千萬條,并沒有哪個技術是那麼不可或缺的。在一些簡單的資料分析(聚合、關聯統計等)中這種方式實作效率可能也不低。

CEP可以簡化複雜事件業務規則的開發、提高效率、提高代碼可維護性還支援類SQL的方式進行業務規則的編寫,多個簡單事件組成一個複雜事件;
CEP目前的相關實作架構:Siddhi、Drools cep、Flink CEP。