總體介紹

在互聯(lián)網(wǎng)金融行業(yè)一百多億其實也算不上大平臺,也就是二級陣營吧,其實每次的架構(gòu)升級都是隨著業(yè)務(wù)重大推進(jìn)而伴隨的,在前一代系統(tǒng)架構(gòu)上遇到的問題,業(yè)務(wù)開發(fā)過程中積累一些優(yōu)秀的開發(fā)案例,在下一代系統(tǒng)開發(fā)中就會大力推進(jìn)架構(gòu)升級。一方面可以平滑過度,一方面公司資源可以大力支持,同時技術(shù)的小伙伴們可以使用到前沿的技術(shù),更有開發(fā)的成就感,就這樣我們大概也就是9個月就行系統(tǒng)架構(gòu)一次升級,就到了我們現(xiàn)在的這套架構(gòu)中。

很多網(wǎng)友經(jīng)常會問,你們平臺的TPS是多少呀,最大并發(fā)是多少呀,性能怎么樣,說實話我們是一個小公司,最夸張也就上萬人同時搶標(biāo),但是做為一個中型的互聯(lián)網(wǎng)金融平臺要做的事情也真的不少,遠(yuǎn)遠(yuǎn)不只是這些參數(shù)可以說的清楚;我們也不是什么高大上的平臺,使用的技術(shù)也是目前比較主流開源產(chǎn)品,但在公司不斷發(fā)展的過程中也遇到了很多的問題,也盡量去使用比較主流的、開源的、適合我們的一些解決方案來構(gòu)建整個系統(tǒng),在這里分享平臺發(fā)展背后技術(shù)換代的變化,同時希望和大家多做一些交流,多提一些建議。

我們進(jìn)行了四次大的架構(gòu)變化,每代架構(gòu)都用一句話來總結(jié):

  • 第一代架構(gòu)特點:業(yè)務(wù)比較集中、功能滿足投資理財需求、快速上線

  • 第二代架構(gòu)特點;分布式系統(tǒng)改造,平臺化初具規(guī)模,各項垂直業(yè)務(wù)系統(tǒng)搭建上線、產(chǎn)品端極大豐富用戶投資、大數(shù)據(jù)平臺研究并使用

  • 第三代架構(gòu)特點;SOA治理,使用zookeeper作為注冊中心,dubbo做監(jiān)控和調(diào)度中心;cas實現(xiàn)單點登錄,使用shiro做權(quán)限控制

  • 第四代架構(gòu)特點;全面啟用微服務(wù)開發(fā)模式,springboot+springcloud技術(shù)桟做為第四代架構(gòu)技術(shù)支撐

下面做詳細(xì)介紹


第一代系統(tǒng)架構(gòu)

2014年應(yīng)該算是互聯(lián)網(wǎng)金融元年,在之前其實已經(jīng)有很多互聯(lián)網(wǎng)公司用著各種模式在生存,一直不溫不火,但是到2014年突然火爆了起來,首先是網(wǎng)貸之家,網(wǎng)貸天眼這種第三方網(wǎng)站流量突然增加,接著是媒體報道不斷跟進(jìn),再后來就報出各種互聯(lián)網(wǎng)金融公司獲得XXX美元投資的報道越來越多,政策也慢慢明朗,于是很多大型公司(集團(tuán))也就趁著這股熱潮跟進(jìn),其中就包括我們。

第一代系統(tǒng)最主要就是搶時間,公司希望用最短的時間內(nèi)保證系統(tǒng)上線,那時候移動浪潮已經(jīng)啟動,于是決定優(yōu)先上線移動端,網(wǎng)站可以暫不考慮。公司當(dāng)時有PHP和Java兩種開發(fā)語言技術(shù)儲備,因為PHP在快速開發(fā)上面有著非常大的優(yōu)勢,因此決定采用前端PHP+后端Java這種模式。系統(tǒng)分成了三層:用戶層:安卓和IOS移動端;接口層:php提供用戶和交易接口;后端:后端有兩部分,后臺和定時系統(tǒng)。后臺用PHP開發(fā)和接口層公用了一個系統(tǒng),另一個是定時系統(tǒng),負(fù)責(zé)計息、派息、到期等定時任務(wù)等使用了java開發(fā)。

基礎(chǔ)服務(wù)和中間件,mysql做了最基本的主從來支持,第一代系統(tǒng)只是使用了mysql的主庫,從庫只是同步備份;memcached用來處理用戶搶標(biāo)的并發(fā)問題,也只用了這一塊;ActiveMQ用來使用二級市場的轉(zhuǎn)讓撮合以及其它一些異步消息通知。項目部署:php使用apache部署,定時服務(wù)使用tomcat6來做應(yīng)用服務(wù)器,使用lvs來做前端apache的負(fù)載,基本上第一代也就這些技術(shù)了,下面是第一代系統(tǒng)的架構(gòu)圖。