CEP支付監控模組

2021-10-04 23:39:23 字數 1267 閱讀 9031

//定義輸入樣例類

case class orderevent(orderid:long,eventtype:string,eventtime:long)

//輸出檢測結果得樣例類

case class orderresult(orderid:long,resultmsg:string)

object ordertimeout )/

.assigntimestampsandwatermarks(new boundedoutofordernesstimestampextractororderevent )

.keyby(.orderid)

//定義匹配模式

val orderpp: pattern[orderevent, orderevent] = pattern.beginorderevent

.where(.eventtype == 「create」)

.followedby(「follow」).where(_.eventtype == 「pay」)

.within(time.minutes(10))

//將匹配規則應用到資料流

val patternstr = cep.pattern(orderstr, orderpp)

//定義側輸出流標籤

val ordertimeout: outputtag[orderresult] = new outputtag[orderresult]("ordertimeout")

//從pattern中提取事件序列

val result = patternstr.select(ordertimeout, new ordertimeoutselect(), new orderpayselect())

//分別從主流和側輸出流列印資料

result.print("pay order")

result.getsideoutput(ordertimeout).print("timeout order")

env.execute("order timeout job")

}

}//處理檢查到的超時序列

class ordertimeoutselect() extends patterntimeoutfunction[orderevent,orderresult]

}//處理成功匹配的事件序列

class orderpayselect() extends patternselectfunction[orderevent,orderresult]

}

支付模組分析

1,一筆訂單支付成功,會在第一時間通知,系統收到通知處理邏輯,必然返回1個success,第三方接到success就不再通知,否第三方支付平台會認為未收到通知,然後再過10s 20s 180s再 通知你。客戶端會上傳接收通知的介面,定時呼叫,客戶端也要定時去查詢,在錯過第一次接收後,通知通知,非同步...

核心 監控模組

這裡的話 可能比較簡單一些 和上一張的 檢測 程序差不多的 然後 也是根據 作者tesla.angela 所記的筆記 然後今天 搞得是 核心監控模組 這裡也是用的 微軟使用的函式 而且 據作者所說 這個函式還很底層 那麼 這個可比 hook 函式 好用多了 然後的話 函式原型 增加pssetload...

Nginx Reqstat 模組監控

nginx reqstat 模組監控 部署步驟 建立nginx使用者 useradd nginx 1編譯安裝nginx 3新增模組 add module usr local ngx req status master 4cp usr local nginx obj nginx usr local n...