1. 程式人生 > >複雜事件處理(Complex Event Processing)入門1

複雜事件處理(Complex Event Processing)入門1

一個新產品需要重點考慮業務風險控制。關於風險控制系統整體的技術方案可以參考支付系統風控系統建設思考。此方案儘管能夠滿足業務需求,但對於海量交易資料分析、風險事件的實時處理、大量的風險規則處理上,在實時性、效能、架構的可擴充套件性上都不是很理想,有必要重新從架構上考慮一下實現方案。

一般而言,風險控制系統標準的軟體架構如下:


1、風控系統實現的幾種方案

1)、資料庫方案:將風險規則、交易資料等都採用關係資料庫存放。正如支付系統風控系統建設思考所提到的方案,交易庫和風險庫一般分別部署在不同的伺服器上,在事件觸發上可以採用資料庫觸發器、訊息佇列事件等方案。此種方案技術實現相對簡單,但在進行海量交易資料查詢以及大量風險規則處理時候,資料庫系統查詢效能及擴充套件性成為一個較大的瓶頸。很難滿足風險事件實時分析的要求。

2)、記憶體資料庫方案:由於對海量交易資料的查詢、分析極其消耗資料庫資源,可以採用記憶體資料庫方案來替代關係資料庫,保證風險事件實時處理的效能。 但目前開源的記憶體資料中VoltDB、H2、MonetDB、FastDB、Berkeley DB、SQLite等在大規模的業務場合應用的成熟度尚待考察,而Oracle TimesTen、MCObject eXtremeDB、Altibase價格太高。

3)、分散式快取方案:採用Memcached等NOSQL的分散式快取來快取交易資料、風險規則等,但由於NOSQL解決方案並不擅長資料間的關係邏輯處理,需要在程式中大量維護業務處理邏輯,遠不如關係資料庫或記憶體資料庫方案方便。

以上方案,都可以通過規則引擎(例如drools)來完成風險規則的管理和維護,避免了風險規則維護的繁瑣及規則間複雜關係處理。

2、Complex Event Processing (複雜事件處理)

Complex Event Processing (複雜事件處理)是一種新興的基於事件流的技術,它將系統資料看作不同型別的事件,通過分析事件間的關係,建立不同的事件關係序列庫,利用過濾、關聯、聚合等技術,最終由簡單事件產生高階事件或商業流程。CEP適合的場景包括實時風險管理、實時交易分析、網路詐欺、網路攻擊、市場趨勢分析等等。


CEP的幾大特點:

基於資料流

時間序列

實時

複雜


資料庫方案與CEP方案 對比(摘自Sybase CEP方案)

3、開源專案

Esper – Complex Event Processing

JBoss – Drools Fusion

Open ESB IEP SE

ActiveInsight

其中Esper和Drools Fusion很值得考慮,後續作為重點研究物件。

4、參考資料

作者:樑川

連結:http://www.yeeach.com/post/1052

來源:部落格

著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。