為了解決大型網(wǎng)站面臨的高并發(fā)訪問、海量數(shù)據(jù)處理、高可靠運(yùn)行等一系列問題與挑戰(zhàn),大型互聯(lián)網(wǎng)公司在實(shí)踐中提出了許多解決方案,以實(shí)現(xiàn)網(wǎng)站高性能、高可用、易伸縮、可擴(kuò)展、安全等各種技術(shù)架構(gòu)目標(biāo)。這些解決方案又被更多網(wǎng)站重復(fù)使用,從而逐漸形成大型網(wǎng)站架構(gòu)模式。
分層
分層是企業(yè)應(yīng)用系統(tǒng)中最常見的一種架構(gòu)模式,將系統(tǒng)在橫向維度上切分成幾個(gè)部分,每個(gè)部分負(fù)責(zé)一部分相對(duì)比較單一的職責(zé),然后通過上層對(duì)下層的依賴和調(diào)用組成一個(gè)完整的系統(tǒng)。分層結(jié)構(gòu)在計(jì)算機(jī)世界中無處不在,網(wǎng)絡(luò)的7層通信協(xié)議是一種分層結(jié)構(gòu);計(jì)算機(jī)硬件、操作系統(tǒng)、應(yīng)用軟件也可以看作是一種分層結(jié)構(gòu)。在大型網(wǎng)站架構(gòu)中也采用分層結(jié)構(gòu),將網(wǎng)站軟件系統(tǒng)分為應(yīng)用層、服務(wù)層、數(shù)據(jù)層。
網(wǎng)站分層架構(gòu)
應(yīng)用層:負(fù)責(zé)具體業(yè)務(wù)和視圖展示,如網(wǎng)站首頁及搜索輸入和結(jié)果展示
服務(wù)層:為應(yīng)用層提供服務(wù)支持,如用戶管理服務(wù),購(gòu)物車服務(wù)等
數(shù)據(jù)層:提供數(shù)據(jù)存儲(chǔ)訪問服務(wù),如數(shù)據(jù)庫(kù)、緩存、文件、搜索引擎等
通過分層,可以更好地將一個(gè)龐大的軟件系統(tǒng)切分成不同的部分,便于分工合作開發(fā)和維護(hù);各層之間具有一定的獨(dú)立性,只要維持調(diào)用接口不變,各層可以根據(jù)具體問題獨(dú)立演化發(fā)展而不需要其他層必須做出相應(yīng)調(diào)整。
但是分層架構(gòu)也有一些挑戰(zhàn),就是必須合理規(guī)劃層次邊界和接口,在開發(fā)過程中,嚴(yán)格遵循分層架構(gòu)的約束,禁止跨層次的調(diào)用(應(yīng)用層直接調(diào)用數(shù)據(jù)層)及逆向調(diào)用(數(shù)據(jù)層調(diào)用服務(wù)層,或者服務(wù)層調(diào)用應(yīng)用層)。
在實(shí)踐中,大的分層結(jié)構(gòu)內(nèi)部還可以繼續(xù)分層,如應(yīng)用層可以再細(xì)分為視圖層(美工負(fù)責(zé))和業(yè)務(wù)邏輯層(工程師負(fù)責(zé));服務(wù)層也可以細(xì)分為數(shù)據(jù)接口層(適配各種輸入和輸出的數(shù)據(jù)格式)和邏輯處理層。分層架構(gòu)是邏輯上的,在物理部署上,三層結(jié)構(gòu)可以部署在同一個(gè)物理機(jī)器上,但是隨著網(wǎng)站業(yè)務(wù)的發(fā)展,必然需要對(duì)已經(jīng)分層的模塊分離部署,即三層結(jié)構(gòu)分別部署在不同的服務(wù)器上,使網(wǎng)站擁有更多的計(jì)算資源以應(yīng)對(duì)越來越多的用戶訪問。所以雖然分層架構(gòu)模式最初的目的是規(guī)劃軟件清晰的邏輯結(jié)構(gòu)便于開發(fā)維護(hù),但在網(wǎng)站的發(fā)展過程中,分層結(jié)構(gòu)對(duì)網(wǎng)站支持高并發(fā)向分布式方向發(fā)展至關(guān)重要。因此在網(wǎng)站規(guī)模還很小的時(shí)候就應(yīng)該采用分層的架構(gòu),這樣將來網(wǎng)站做大時(shí)才能有更好地應(yīng)對(duì)。
分割
如果說分層是將軟件在橫向方面進(jìn)行切分,那么分割就是在縱向方面對(duì)軟件進(jìn)行切分。
網(wǎng)站越大,功能越復(fù)雜,服務(wù)和數(shù)據(jù)處理的種類也越多,將這些不同的功能和服務(wù)分割開來,包裝成高內(nèi)聚低耦合的模塊單元,一方面有助于軟件的開發(fā)和維護(hù);另一方面,便于不同模塊的分布式部署,提高網(wǎng)站的并發(fā)處理能力和功能擴(kuò)展能力。大型網(wǎng)站分割的粒度可能會(huì)很小。比如在應(yīng)用層,將不同業(yè)務(wù)進(jìn)行分割,例如將購(gòu)物、論壇、搜索、廣告分割成不同的應(yīng)用,由獨(dú)立的團(tuán)隊(duì)負(fù)責(zé),部署在不同的服務(wù)器上;在同一個(gè)應(yīng)用內(nèi)部,如果規(guī)模龐大業(yè)務(wù)復(fù)雜,會(huì)繼續(xù)進(jìn)行分割,比如購(gòu)物業(yè)務(wù),可以進(jìn)一步分割成機(jī)票酒店業(yè)務(wù)、3C業(yè)務(wù),小商品業(yè)務(wù)等更細(xì)小的粒度。而即使在這個(gè)粒度上,還是可以繼續(xù)分割成首頁、搜索列表、商品詳情等模塊,這些模塊不管在邏輯上還是物理部署上,都可以是獨(dú)立的。同樣在服務(wù)層也可以根據(jù)需要將服務(wù)分割成合適的模塊。
分布式
對(duì)于大型網(wǎng)站,分層和分割的一個(gè)主要目的是為了切分后的模塊便于分布式部署,即將不同模塊部署在不同的服務(wù)器上,通過遠(yuǎn)程調(diào)用協(xié)同工作。分布式意味著可以使用更多的計(jì)算機(jī)完成同樣的功能,計(jì)算機(jī)越多,CPU、內(nèi)存、存儲(chǔ)資源也就越多,能夠處理的并發(fā)訪問和數(shù)據(jù)量就越大,進(jìn)而能夠?yàn)楦嗟挠脩籼峁┓?wù)。
但分布式在解決網(wǎng)站高并發(fā)問題的同時(shí)也帶來了其他問題。首先,分布式意味著服務(wù)調(diào)用必須通過網(wǎng)絡(luò),這可能會(huì)對(duì)性能造成比較嚴(yán)重的影響;其次,服務(wù)器越多,服務(wù)器宕機(jī)的概率也就越大,一臺(tái)服務(wù)器宕機(jī)造成的服務(wù)不可用可能會(huì)導(dǎo)致很多應(yīng)用不可訪問,使網(wǎng)站可用性降低;另外,數(shù)據(jù)在分布式的環(huán)境中保持?jǐn)?shù)據(jù)一致性也非常困難,分布式事務(wù)也難以保證,這對(duì)網(wǎng)站業(yè)務(wù)正確性和業(yè)務(wù)流程有可能造成很大影響;分布式還導(dǎo)致網(wǎng)站依賴錯(cuò)綜復(fù)雜,開發(fā)管理維護(hù)困難。因此分布式設(shè)計(jì)要根據(jù)具體情況量力而行,切莫為了分布式而分布式。在網(wǎng)站應(yīng)用中,常用的分布式方案有以下幾種。
分布式應(yīng)用和服務(wù):將分層和分割后的應(yīng)用和服務(wù)模塊分布式部署,除了可以改善網(wǎng)站性能和并發(fā)性、加快開發(fā)和發(fā)布速度、減少數(shù)據(jù)庫(kù)連接資源消耗外;還可以使不同應(yīng)用復(fù)用共同的服務(wù),便于業(yè)務(wù)功能擴(kuò)展。
分布式靜態(tài)資源:網(wǎng)站的靜態(tài)資源如JS,CSS,Logo圖片等資源獨(dú)立分布式部署,并采用獨(dú)立的域名,即人們常說的動(dòng)靜分離。靜態(tài)資源分布式部署可以減輕應(yīng)用服務(wù)器的負(fù)載壓力;通過使用獨(dú)立域名加快瀏覽器并發(fā)加載的速度;由負(fù)責(zé)用戶體驗(yàn)的團(tuán)隊(duì)進(jìn)行開發(fā)維護(hù)有利于網(wǎng)站分工合作,使不同技術(shù)工種術(shù)業(yè)有專攻。
分布式數(shù)據(jù)和存儲(chǔ):大型網(wǎng)站需要處理以P為單位的海量數(shù)據(jù),單臺(tái)計(jì)算機(jī)無法提供如此大的存儲(chǔ)空間,這些數(shù)據(jù)需要分布式存儲(chǔ)。除了對(duì)傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)進(jìn)行分布式部署外,為網(wǎng)站應(yīng)用而生的各種NoSQL產(chǎn)品幾乎都是分布式的。
分布式計(jì)算:嚴(yán)格說來,應(yīng)用、服務(wù)、實(shí)時(shí)數(shù)據(jù)處理都是計(jì)算,網(wǎng)站除了要處理這些在線業(yè)務(wù),還有很大一部分用戶沒有直觀感受的后臺(tái)業(yè)務(wù)要處理,包括搜索引擎的索引構(gòu)建、數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)分析統(tǒng)計(jì)等。這些業(yè)務(wù)的計(jì)算規(guī)模非常龐大,目前網(wǎng)站普遍使用Hadoop及其MapReduce分布式計(jì)算框架進(jìn)行此類批處理計(jì)算,其特點(diǎn)是移動(dòng)計(jì)算而不是移動(dòng)數(shù)據(jù),將計(jì)算程序分發(fā)到數(shù)據(jù)所在的位置以加速計(jì)算和分布式計(jì)算。
此外,還有可以支持網(wǎng)站線上服務(wù)器配置實(shí)時(shí)更新的分布式配置;分布式環(huán)境下實(shí)現(xiàn)并發(fā)和協(xié)同的分布式鎖;支持云存儲(chǔ)的分布式文件系統(tǒng)等。
集群
使用分布式雖然已經(jīng)將分層和分割后的模塊獨(dú)立部署,但是對(duì)于用戶訪問集中的模塊(比如網(wǎng)站的首頁),還需要將獨(dú)立部署的服務(wù)器集群化,即多臺(tái)服務(wù)器部署相同應(yīng)用構(gòu)成一個(gè)集群,通過負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)。
因?yàn)榉?wù)器集群有更多服務(wù)器提供相同服務(wù),因此可以提供更好的并發(fā)特性,當(dāng)有更多用戶訪問的時(shí)候,只需要向集群中加入新的機(jī)器即可。同時(shí)因?yàn)橐粋€(gè)應(yīng)用由多臺(tái)服務(wù)器提供,當(dāng)某臺(tái)服務(wù)器發(fā)生故障時(shí),負(fù)載均衡設(shè)備或者系統(tǒng)的失效轉(zhuǎn)移機(jī)制會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到集群中其他服務(wù)器上,使服務(wù)器故障不影響用戶使用。所以在網(wǎng)站應(yīng)用中,即使是訪問量很小的分布式應(yīng)用和服務(wù),也至少要部署兩臺(tái)服務(wù)器構(gòu)成一個(gè)小的集群,目的就是提高系統(tǒng)的可用性。
緩存
緩存就是將數(shù)據(jù)存放在距離計(jì)算最近的位置以加快處理速度。緩存是改善軟件性能的第一手段,現(xiàn)代CPU越來越快的一個(gè)重要因素就是使用了更多的緩存,在復(fù)雜的軟件設(shè)計(jì)中,緩存幾乎無處不在。大型網(wǎng)站架構(gòu)設(shè)計(jì)在很多方面都使用了緩存設(shè)計(jì)。
CDN:即內(nèi)容分發(fā)網(wǎng)絡(luò),部署在距離終端用戶最近的網(wǎng)絡(luò)服務(wù)商,用戶的網(wǎng)絡(luò)請(qǐng)求總是先到達(dá)他的網(wǎng)絡(luò)服務(wù)商那里,在這里緩存網(wǎng)站的一些靜態(tài)資源(較少變化的數(shù)據(jù)),可以就近以最快速度返回給用戶,如視頻網(wǎng)站和門戶網(wǎng)站會(huì)將用戶訪問量大的熱點(diǎn)內(nèi)容緩存在CDN。
反向代理:反向代理屬于網(wǎng)站前端架構(gòu)的一部分,部署在網(wǎng)站的前端,當(dāng)用戶請(qǐng)求到達(dá)網(wǎng)站的數(shù)據(jù)中心時(shí),最先訪問到的就是反向代理服務(wù)器,這里緩存網(wǎng)站的靜態(tài)資源,無需將請(qǐng)求繼續(xù)轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器就能返回給用戶。
本地緩存:在應(yīng)用服務(wù)器本地緩存著熱點(diǎn)數(shù)據(jù),應(yīng)用程序可以在本機(jī)內(nèi)存中直接訪問數(shù)據(jù),而無需訪問數(shù)據(jù)庫(kù)。分布式緩存:大型網(wǎng)站的數(shù)據(jù)量非常龐大,即使只緩存一小部分,需要的內(nèi)存空間也不是單機(jī)能承受的,所以除了本地緩存,還需要分布式緩存,將數(shù)據(jù)緩存在一個(gè)專門的分布式緩存集群中,應(yīng)用程序通過網(wǎng)絡(luò)通信訪問緩存數(shù)據(jù)。使用緩存有兩個(gè)前提條件,一是數(shù)據(jù)訪問熱點(diǎn)不均衡,某些數(shù)據(jù)會(huì)被更頻繁的訪問,這些數(shù)據(jù)應(yīng)該放在緩存中;二是數(shù)據(jù)在某個(gè)時(shí)間段內(nèi)有效,不會(huì)很快過期,否則緩存的數(shù)據(jù)就會(huì)因已經(jīng)失效而產(chǎn)生臟讀,影響結(jié)果的正確性。網(wǎng)站應(yīng)用中,緩存除了可以加快數(shù)據(jù)訪問速度,還可以減輕后端應(yīng)用和數(shù)據(jù)存儲(chǔ)的負(fù)載壓力,這一點(diǎn)對(duì)網(wǎng)站數(shù)據(jù)庫(kù)架構(gòu)至關(guān)重要,網(wǎng)站數(shù)據(jù)庫(kù)幾乎都是按照有緩存的前提進(jìn)行負(fù)載能力設(shè)計(jì)的。2.1.6 異步計(jì)算機(jī)軟件發(fā)展的一個(gè)重要目標(biāo)和驅(qū)動(dòng)力是降低軟件耦合性。事物之間直接關(guān)系越少,就越少被彼此影響,越可以獨(dú)立發(fā)展。大型網(wǎng)站架構(gòu)中,系統(tǒng)解耦合的手段除了前面提到的分層、分割、分布等,還有一個(gè)重要手段是異步,業(yè)務(wù)之間的消息傳遞不是同步調(diào)用,而是將一個(gè)業(yè)務(wù)操作分成多個(gè)階段,每個(gè)階段之間通過共享數(shù)據(jù)的方式異步執(zhí)行進(jìn)行協(xié)作。在單一服務(wù)器內(nèi)部可通過多線程共享內(nèi)存隊(duì)列的方式實(shí)現(xiàn)異步,處在業(yè)務(wù)操作前面的線程將輸出寫入到隊(duì)列,后面的線程從隊(duì)列中讀取數(shù)據(jù)進(jìn)行處理;在分布式系統(tǒng)中,多個(gè)服務(wù)器集群通過分布式消息隊(duì)列實(shí)現(xiàn)異步,分布式消息隊(duì)列可以看作內(nèi)存隊(duì)列的分布式部署。異步架構(gòu)是典型的生產(chǎn)者消費(fèi)者模式,兩者不存在直接調(diào)用,只要保持?jǐn)?shù)據(jù)結(jié)構(gòu)不變,彼此功能實(shí)現(xiàn)可以隨意變化而不互相影響,這對(duì)網(wǎng)站擴(kuò)展新功能非常便利。除此之外,使用異步消息隊(duì)列還有如下特性。
提高系統(tǒng)可用性。消費(fèi)者服務(wù)器發(fā)生故障,數(shù)據(jù)會(huì)在消息隊(duì)列服務(wù)器中存儲(chǔ)堆積,生產(chǎn)者服務(wù)器可以繼續(xù)處理業(yè)務(wù)請(qǐng)求,系統(tǒng)整體表現(xiàn)無故障。消費(fèi)者服務(wù)器恢復(fù)正常后,繼續(xù)處理消息隊(duì)列中的數(shù)據(jù)。加快網(wǎng)站響應(yīng)速度。處在業(yè)務(wù)處理前端的生產(chǎn)者服務(wù)器在處理完業(yè)務(wù)請(qǐng)求后,將數(shù)據(jù)寫入消息隊(duì)列,不需要等待消費(fèi)者服務(wù)器處理就可以返回,響應(yīng)延遲減少。消除并發(fā)訪問高峰。用戶訪問網(wǎng)站是隨機(jī)的,存在訪問高峰和低谷,即使網(wǎng)站按照一般訪問高峰進(jìn)行規(guī)劃和部署,也依然會(huì)出現(xiàn)突發(fā)事件,比如購(gòu)物網(wǎng)站的促銷活動(dòng),微博上的熱點(diǎn)事件,都會(huì)造成網(wǎng)站并發(fā)訪問突然增大,這可能會(huì)造成整個(gè)網(wǎng)站負(fù)載過重,響應(yīng)延遲,嚴(yán)重時(shí)甚至?xí)霈F(xiàn)服務(wù)宕機(jī)的情況。使用消息隊(duì)列將突然增加的訪問請(qǐng)求數(shù)據(jù)放入消息隊(duì)列中,等待消費(fèi)者服務(wù)器依次處理,就不會(huì)對(duì)整個(gè)網(wǎng)站負(fù)載造成太大壓力。
但需要注意的是,使用異步方式處理業(yè)務(wù)可能會(huì)對(duì)用戶體驗(yàn)、業(yè)務(wù)流程造成影響,需要網(wǎng)站產(chǎn)品設(shè)計(jì)方面的支持。2.1.7 冗余網(wǎng)站需要7724小時(shí)連續(xù)運(yùn)行,但是服務(wù)器隨時(shí)可能出現(xiàn)故障,特別是服務(wù)器規(guī)模比較大時(shí),出現(xiàn)某臺(tái)服務(wù)器宕機(jī)是必然事件。要想保證在服務(wù)器宕機(jī)的情況下網(wǎng)站依然可以繼續(xù)服務(wù),不丟失數(shù)據(jù),就需要一定程度的服務(wù)器冗余運(yùn)行,數(shù)據(jù)冗余備份,這樣當(dāng)某臺(tái)服務(wù)器宕機(jī)時(shí),可以將其上的服務(wù)和數(shù)據(jù)訪問轉(zhuǎn)移到其他機(jī)器上。訪問和負(fù)載很小的服務(wù)也必須部署至少兩臺(tái)服務(wù)器構(gòu)成一個(gè)集群,其目的就是通過冗余實(shí)現(xiàn)服務(wù)高可用。數(shù)據(jù)庫(kù)除了定期備份,存檔保存,實(shí)現(xiàn)冷備份外,為了保證在線業(yè)務(wù)高可用,還需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行主從分離,實(shí)時(shí)同步實(shí)現(xiàn)熱備份。為了抵御地震、海嘯等不可抗力導(dǎo)致的網(wǎng)站完全癱瘓,某些大型網(wǎng)站會(huì)對(duì)整個(gè)數(shù)據(jù)中心進(jìn)行備份,全球范圍內(nèi)部署災(zāi)備數(shù)據(jù)中心。網(wǎng)站程序和數(shù)據(jù)實(shí)時(shí)同步到多個(gè)災(zāi)備數(shù)據(jù)中心。2.1.8 自動(dòng)化在無人值守的情況下網(wǎng)站可以正常運(yùn)行,一切都可以自動(dòng)化是網(wǎng)站的理想狀態(tài)。目前大型網(wǎng)站的自動(dòng)化架構(gòu)設(shè)計(jì)主要集中在發(fā)布運(yùn)維方面。發(fā)布對(duì)網(wǎng)站都是頭等大事,許多網(wǎng)站故障出在發(fā)布環(huán)節(jié),網(wǎng)站工程師經(jīng)常加班也是因?yàn)榘l(fā)布不順利。通過減少人為干預(yù),使發(fā)布過程自動(dòng)化可有效減少故障。發(fā)布過程包括諸多環(huán)節(jié)。自動(dòng)化代碼管理,代碼版本控制、代碼分支創(chuàng)建合并等過程自動(dòng)化,開發(fā)工程師只要提交自己參與開發(fā)的產(chǎn)品代號(hào),系統(tǒng)就會(huì)自動(dòng)為其創(chuàng)建開發(fā)分支,后期會(huì)自動(dòng)進(jìn)行代碼合并;自動(dòng)化測(cè)試,代碼開發(fā)完成,提交測(cè)試后,系統(tǒng)自動(dòng)將代碼部署到測(cè)試環(huán)境,啟動(dòng)自動(dòng)化測(cè)試用例進(jìn)行測(cè)試,向相關(guān)人員發(fā)送測(cè)試報(bào)告,向系統(tǒng)反饋測(cè)試結(jié)果;自動(dòng)化安全檢測(cè),安全檢測(cè)工具通過對(duì)代碼進(jìn)行靜態(tài)安全掃描及部署到安全測(cè)試環(huán)境進(jìn)行安全攻擊測(cè)試,評(píng)估其安全性;最后進(jìn)行自動(dòng)化部署,將工程代碼自動(dòng)部署到線上生產(chǎn)環(huán)境。此外,網(wǎng)站在運(yùn)行過程中可能會(huì)遇到各種問題:服務(wù)器宕機(jī)、程序Bug、存儲(chǔ)空間不足、突然爆發(fā)的訪問高峰。網(wǎng)站需要對(duì)線上生產(chǎn)環(huán)境進(jìn)行自動(dòng)化監(jiān)控,對(duì)服務(wù)器進(jìn)行心跳檢測(cè),并監(jiān)控其各項(xiàng)性能指標(biāo)和應(yīng)用程序的關(guān)鍵數(shù)據(jù)指標(biāo)。如果發(fā)現(xiàn)異常、超出預(yù)設(shè)的閾值,就進(jìn)行自動(dòng)化報(bào)警,向相關(guān)人員發(fā)送報(bào)警信息,警告故障可能會(huì)發(fā)生。在檢測(cè)到故障發(fā)生后,系統(tǒng)會(huì)進(jìn)行自動(dòng)化失效轉(zhuǎn)移,將失效的服務(wù)器從集群中隔離出去,不再處理系統(tǒng)中的應(yīng)用請(qǐng)求。待故障消除后,系統(tǒng)進(jìn)行自動(dòng)化失效恢復(fù),重新啟動(dòng)服務(wù),同步數(shù)據(jù)保證數(shù)據(jù)的一致性。在網(wǎng)站遇到訪問高峰,超出網(wǎng)站最大處理能力時(shí),為了保證整個(gè)網(wǎng)站的安全可用,還會(huì)進(jìn)行自動(dòng)化降級(jí),通過拒絕部分請(qǐng)求及關(guān)閉部分不重要的服務(wù)將系統(tǒng)負(fù)載降至一個(gè)安全的水平,必要時(shí),還需要自動(dòng)化分配資源,將空閑資源分配給重要的服務(wù),擴(kuò)大其部署規(guī)模。2.1.9 安全互聯(lián)網(wǎng)的開放特性使得其從誕生起就面對(duì)巨大的安全挑戰(zhàn),網(wǎng)站在安全架構(gòu)方面也積累了許多模式:通過密碼和手機(jī)校驗(yàn)碼進(jìn)行身份認(rèn)證;登錄、交易等操作需要對(duì)網(wǎng)絡(luò)通信進(jìn)行加密,網(wǎng)站服務(wù)器上存儲(chǔ)的敏感數(shù)據(jù)如用戶信息等也進(jìn)行加密處理;為了防止機(jī)器人程序?yàn)E用網(wǎng)絡(luò)資源攻擊網(wǎng)站,網(wǎng)站使用驗(yàn)證碼進(jìn)行識(shí)別;對(duì)于常見的用于攻擊網(wǎng)站的XSS攻擊、SQL注入、進(jìn)行編碼轉(zhuǎn)換等相應(yīng)處理;對(duì)于垃圾信息、敏感信息進(jìn)行過濾;對(duì)交易轉(zhuǎn)賬等重要操作根據(jù)交易模式和交易信息進(jìn)行風(fēng)險(xiǎn)控制。
Copyright All Rights GreatGoal Design co.,ltd. 魯ICP備16002128號(hào)-3