挖財首席架構師王福強:架構設計中的6大關鍵點

編者按:要開發出用戶滿意的軟件並非件容易的事,軟件架構師必須全面把握各類各樣的需求、權衡需求之間有可能的矛盾之處,分門別類地將不一樣需求一一知足。在UPYUN Open Talk 第二期「移動時代互聯網金融架構趨勢」的技術分享中,挖財首席架構師王福強帶來了《挖財的互聯網金融技術探索》,王福強重點分享了當前挖財架構設計中的6大關鍵點:前端

1. 系統層級分離後端

從大的體系來說,挖財主要在作四個緯度的事情,第一個是會員中心,挖財有一套本身的會員體系,第二個是現金流,第三個是風控中心,第四個是產品中心,最後是一些清算和結算的東西。安全

挖財在全部的系統上都會作一些適度的關鍵點分離。在這個層面上SOA(構造分佈式計算的方法)必不可少,當系統造成必定規模後也會逼着咱們往這個方向走。服務器


在現金流體系中,由於現金流數據的特性和通常數據特性不同,它會隨着時間的緯度不停往上漲,不能單純按照用戶來劃分,因此挖財從用戶和時間線兩個維度的區分現金流。爲了保持數據的一致性,挖財在選型的時候採用了Scala語言。在系統體系裏,中間件會隨着數據量的增加而遭遇瓶頸,因此挖財在後面的服務化方向就專門針對服務作優化,在應用層針對數據層作一些屏蔽工做,將其分離開來。網絡

 除了在技術上作邊界分離,咱們還會對職責進行一些劃分,讓我的優點得以充分發揮,挖財在這一點上強調的是先後端分離,最先挖財在技術上只是作異步的調用,生成一些protect層面的規範,但最終前端的事情仍是要徹底由前端來作,這會使得先後端的工做效率獲得總體提高。架構

2. 消息傳遞併發

上面的分離,主要是在系統層級的隔離和界定上,隔離後還須要進行系統層級間的交流互通,造成體系後才能夠產生更大價值的服務。挖財採用了消息傳遞機制來解決系統互通的問題。框架

在消息傳送的方式上採用remoting(分佈式處理方式),提到remoting更多的仍是和RPC相關的概念,互聯網大部分技術體系都是同時採用多語言開發的,RPC是跨語言的通訊標準。基於服務作的工做,基本都會參考使用DUBBO服務框架。鑑於金融系統對高併發的要求沒有特別高,挖財採用了HTTP協議來實現。前後端分離

3. 異步化處理異步

經過消息傳遞解決了系統互通的問題後,爲了儘可能減小事件給系統帶來的影響,在儘量全部的地方都走異步化。


 挖財,Async典型應用場景

當移動端對服務器端發起的請求直接達到百萬級別之後,經過異步處理的方式造成一個完整的異步閉環,等數據處理完後,將數據Push給移動端。在這個過程當中,服務器端能夠進行某些交互,也可在本地作一些事情。在這個環節挖財使用得最多的是Kafka和Akka技術。Akka是Actor模型在JAVA/Scala平臺上的一個比較成熟的實現。

Akka本質上沒有限速,全部的消息均可以實時發送,這就會致使稍不注意就會致使處理節點的數據崩盤,因此咱們在使用Akka過程當中第一個要處理的問題就是限流。好比經過ACK機制緩解後端處理壓力。

4. 信息存儲,寧多勿缺

挖財對信息這一塊如今採用寧多勿缺的原則,保留每一次的更改,代替原有的直接覆蓋,這樣使得出現問題的時候能有跡可循,不會由於查詢不到一些信息而一頭霧水。

在消息傳遞環節採用Kafka也是考慮到了這方面的緣由,咱們最看重的就是Kafka的多副本數據保存能力。

除了Kafka,咱們還進行了一些小實踐,在維護方面,若是核心資料變動,之前是直接覆蓋,如今是核心字段配一個版本號,後期出現任何問題均可以根據時間將操做找出來。好比說Actor崩潰的話,咱們經過Akka的建立功能能夠隨時回去,不至於出現消息丟失、數據丟失的問題。總之挖財的技術但願能有本身的時光機,出了問題能夠回退。

5. 系統安全

對金融系統來說,安全是一個比較重要的問題。在金融系統來講,ATBS已是最低標準。爲了抵制外來危害,首先儘量的設置門檻,這樣能夠減低技術成本。

在技術層面,會構建基本防護層,好比網絡防火牆,應用防火牆。

在業務層面,借力第三方,在反欺詐層面挖財使用了同盾科技的技術,同時配以風控團隊進行人工干預。

在攔截層面,爲了保證隔離性,且不但願Kafka在接管全部東西后,這個集羣出現問題,這個集體總體會受到影響,所以但願從物理上部署應用的隔離性,相應集羣負責相應的業務處理。

6. 存儲冗餘

從分佈式存儲的角度來說,傳統互聯網更多在CP的角度考慮問題,每每是將存儲弱化掉,但對互聯網金融企業來說,須要將存儲數據的一致性提升到第一位。對於核心交易系統,爲了不Message Queue的弱勢,採用了簡單、靈活的Multi-write來解決數據一致性的問題。


挖財從技術架構上來講,但願最終造成這樣一套徹底靠事件來觸發的,以時間和數據爲流向,充滿彈性機制的Reactive(響應)系統。

相關文章
相關標籤/搜索