多易億級(jí)在線實(shí)時(shí)動(dòng)態(tài)規(guī)則運(yùn)營(yíng)系統(tǒng)(V2架構(gòu))
系統(tǒng)搭建的目標(biāo)
需要定義規(guī)則,提供可視化界面給業(yè)務(wù)人員動(dòng)態(tài)配置,無(wú)需重啟系統(tǒng)即使生效,減少溝通成本和避免重復(fù)開(kāi)發(fā),總之就是要更加?自動(dòng)化?和?易配置
采集實(shí)時(shí)數(shù)據(jù),根據(jù)實(shí)時(shí)事件做實(shí)時(shí)推送,總之就是要?實(shí)時(shí)
技術(shù)選型
數(shù)據(jù)采集、轉(zhuǎn)換、存儲(chǔ)
采集:狀態(tài)類(lèi)的數(shù)據(jù)主要放在各個(gè)業(yè)務(wù)系統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)中,由于歷史原因有postgres和mysql,需要實(shí)時(shí)采集表的數(shù)據(jù)變更,這里使用kafka connector讀取mysql的binlog或postgres的xlog,另外還有標(biāo)簽系統(tǒng)計(jì)算出來(lái)的標(biāo)簽,在kafka中;而事件類(lèi)數(shù)據(jù)主要來(lái)源于前端上報(bào)事件(有專(zhuān)門(mén)的服務(wù)接收再丟到kafka),關(guān)系型數(shù)據(jù)庫(kù)里面也可以提取一些事件。
轉(zhuǎn)換:采集出來(lái)的數(shù)據(jù)需要做一些格式統(tǒng)一等操作,用kafka connector。
存儲(chǔ):采用Elasticsearch存儲(chǔ)用戶數(shù)據(jù),ES查詢不像mysql或mongoDB用B-tree 或B+tree實(shí)現(xiàn)索引,而是使用bitset和skip list來(lái)處理聯(lián)合索引,特別適合多字段的復(fù)雜查詢條件。
?