<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jack Jiang

    我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
    posts - 494, comments - 13, trackbacks - 0, articles - 1

    本文由百度搜索技術(shù)平臺(tái)研發(fā)部分享,本文有修訂和改動(dòng)。

    1、引言

    分布式數(shù)據(jù)傳輸系統(tǒng)是一種用于在多個(gè)計(jì)算節(jié)點(diǎn)之間高效傳輸大量數(shù)據(jù)的系統(tǒng),詣在高效的解決大規(guī)模數(shù)據(jù)遷移、備份、跨地域復(fù)制等問(wèn)題。其廣泛應(yīng)用在實(shí)時(shí)數(shù)據(jù)流傳輸、跨數(shù)據(jù)中心數(shù)據(jù)遷移、多媒體傳輸?shù)葓?chǎng)景,在大多數(shù)企業(yè)中的日志管理、業(yè)務(wù)數(shù)據(jù)建庫(kù)等場(chǎng)景中也都會(huì)使用到。

    眾所周知,數(shù)據(jù)的高效傳輸往往直接影響著企業(yè)對(duì)市場(chǎng)先機(jī)的把握,對(duì)企業(yè)發(fā)展有重要意義,特別是在金融領(lǐng)域,如證券行業(yè),它對(duì)分布式數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)提出了更高的要求,證券領(lǐng)域數(shù)據(jù)變化飛快,一個(gè)高時(shí)效、穩(wěn)定的數(shù)據(jù)流傳輸系統(tǒng)不僅能有效的提升用戶體驗(yàn),更能提供用戶一手的投資信息,有助于用戶的投資決策,進(jìn)而拉進(jìn)企業(yè)與用戶的距離。

    本文將通過(guò)一個(gè)百度搜索旗下的金融場(chǎng)景案例來(lái)分享構(gòu)建高實(shí)時(shí)、高可用的分布式數(shù)據(jù)傳輸系統(tǒng)的技術(shù)實(shí)踐。

     
     
    技術(shù)交流:

    - 移動(dòng)端IM開(kāi)發(fā)入門文章:《新手入門一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM

    - 開(kāi)源IM框架源碼:https://github.com/JackJiang2011/MobileIMSDK備用地址點(diǎn)此

    (本文已同步發(fā)布于:http://www.52im.net/thread-4602-1-1.html

    2、業(yè)務(wù)背景

    作為百度搜索場(chǎng)景下時(shí)效性要求較高的業(yè)務(wù),金融承載著每天數(shù)千萬(wàn)次的用戶搜索請(qǐng)求。

    而在2021年以前,金融業(yè)務(wù)的數(shù)據(jù)一直都是采用傳統(tǒng)的互聯(lián)網(wǎng)引入方式,該方式的特點(diǎn)是接入成本較低,但受公網(wǎng)等不可控因素影響,數(shù)據(jù)時(shí)效性較差,且數(shù)據(jù)斷流、錯(cuò)誤等問(wèn)題頻出,隨即而來(lái)的就是業(yè)務(wù)維護(hù)成本較高,十分不利于產(chǎn)品迭代。

    我們基于此發(fā)起了一個(gè)證券數(shù)據(jù)直連項(xiàng)目,詣在通過(guò)接駁全球各大證券交易所數(shù)據(jù)中心來(lái)構(gòu)建一個(gè)高時(shí)效、高可用的分布式傳輸系統(tǒng),從而有效的解決傳統(tǒng)數(shù)據(jù)引入方式(公網(wǎng)抓取、推送)所帶來(lái)的時(shí)效性、穩(wěn)定性、正確性等問(wèn)題,進(jìn)而滿足全國(guó)乃至全球用戶的金融需求。

    3、設(shè)計(jì)目標(biāo)

    3.1業(yè)務(wù)目標(biāo)

    接駁全球各大證券交易所Level-1行情數(shù)據(jù),來(lái)覆蓋全量上市公司股票、外匯、期貨、ETF、渦輪牛熊等證券業(yè)務(wù)來(lái)滿足用戶需求,時(shí)效性追平金融行業(yè)競(jìng)品,為打造強(qiáng)大的金融生態(tài)做數(shù)據(jù)基建儲(chǔ)備。

    Level-1行情簡(jiǎn)稱LV1行情:是交易所根據(jù)交易規(guī)則發(fā)布的即時(shí)行情信息,數(shù)據(jù)格式包括基于FIX/FAST協(xié)議的接口和TXT文件、二進(jìn)制數(shù)據(jù)流等,行情通過(guò)交易所信息技術(shù)公司的高速地面網(wǎng)和寬帶廣播衛(wèi)星系統(tǒng)發(fā)布或上證所信息網(wǎng)絡(luò)有限公司的互聯(lián)網(wǎng)和專線傳輸。

    3.2技術(shù)目標(biāo)

    1)基礎(chǔ)設(shè)施建設(shè):協(xié)同交易所、運(yùn)營(yíng)商完成物理專線的鏈路部署,通過(guò)物理專線接入的方式在百度云機(jī)房接入上海、深圳、香港、納斯達(dá)克證券交易所數(shù)據(jù)中心,適配交易所單、組播協(xié)議將二進(jìn)制流/文本數(shù)據(jù)引入到百度內(nèi)部,再分別完成華南、華北、華東、香港(支持海外訪問(wèn))地域的數(shù)據(jù)存儲(chǔ)與轉(zhuǎn)發(fā),同時(shí)支持負(fù)載和流量調(diào)度來(lái)支撐各地域的用戶請(qǐng)求。(注:這里的物理專線特指光纜)

    2)時(shí)效性和穩(wěn)定性提升:行情數(shù)據(jù)檢索99分位耗時(shí)不超過(guò)200ms,數(shù)據(jù)穩(wěn)定性從99%提升至99.99%以上,數(shù)據(jù)災(zāi)備能力從1主0備升級(jí)至1主2備。

    3)數(shù)據(jù)安全:基于百度安全能力,構(gòu)建類似的防火墻策略來(lái)嚴(yán)格控制每一個(gè)機(jī)房、每一個(gè)集群的出入權(quán)限,并且配置好相應(yīng)的安全組策略。

    4、關(guān)鍵思路

    從功能和網(wǎng)絡(luò)拓?fù)渖蟻?lái)看,一個(gè)高時(shí)效、高可用的金融數(shù)據(jù)傳輸系統(tǒng)至少需要包含以下幾個(gè)部分,我們逐個(gè)來(lái)進(jìn)行解讀。

    4.1接入層

    適配全球各大交易所單、組播傳輸協(xié)議,確保數(shù)據(jù)能在專線物理網(wǎng)絡(luò)正常傳輸。

    接入主要有2種方式:

    • 1)一種是走互聯(lián)網(wǎng);
    • 2)一種是走物理專線。

    前者相對(duì)比較靈活:各類數(shù)據(jù)協(xié)議基本都可以支持,有直接走HTTP(GET/POST),或者是走消息隊(duì)列的發(fā)布訂閱等等,接入成本較低,屬立即接入那種,但受公網(wǎng)的不可控因素影響,在傳輸效率和安全性上相對(duì)后者會(huì)有比較大的差距,我們一般會(huì)把互聯(lián)網(wǎng)的方式當(dāng)做一個(gè)災(zāi)備能力存在。

    專線方式的特點(diǎn):是僅點(diǎn)對(duì)點(diǎn)傳輸,由于用的是獨(dú)立的光纜,在有限帶寬內(nèi)理論可以做到無(wú)爭(zhēng)用狀態(tài),不受公網(wǎng)影響,屬可靠傳輸,傳輸協(xié)議私有化,增加了更多的認(rèn)證機(jī)制。因此也更安全,區(qū)分不同應(yīng)用場(chǎng)景,像證券類數(shù)據(jù)傳輸,一般交易所采用的是單播、組播方式,當(dāng)下用的多的是組播。另外專線中也有主備的概念,一般會(huì)預(yù)留1-2條線路做災(zāi)備,整體下來(lái),專線的費(fèi)用要更昂貴一些,接入的周期也更長(zhǎng),往往長(zhǎng)達(dá)幾個(gè)月。

    4.2網(wǎng)絡(luò)層

    完成華南、華北、華東百度云機(jī)房虛擬網(wǎng)絡(luò)架構(gòu)建設(shè),包括子網(wǎng)、路由、網(wǎng)關(guān)等。

    虛擬網(wǎng)絡(luò)的核心組成部分主要是子網(wǎng)、路由、網(wǎng)關(guān)、虛擬機(jī),其中每個(gè)子網(wǎng)關(guān)聯(lián)著一個(gè)虛擬機(jī)集群,我們把整個(gè)組成部分(域)統(tǒng)稱為一個(gè)VPC(Virtual private Cloud),路由又區(qū)分為TGW路由和對(duì)等連接。

    這里主要關(guān)注對(duì)等連接,它是為用戶提供了VPC級(jí)別的網(wǎng)絡(luò)互聯(lián)服務(wù),使用戶實(shí)現(xiàn)在不同虛擬網(wǎng)絡(luò)之間的流量互通,實(shí)現(xiàn)同區(qū)域/跨區(qū)域,同用戶/不同用戶之間穩(wěn)定高速的虛擬網(wǎng)絡(luò)互聯(lián),其核心是基于對(duì)路由表的操作,對(duì)等連接也支持配置地域級(jí)的DNS同步。

    網(wǎng)關(guān)又分為NAT網(wǎng)關(guān)和專線網(wǎng)關(guān):

    1)一個(gè)對(duì)外:比如設(shè)置SNAT和DNAT規(guī)則用于統(tǒng)一網(wǎng)段的外網(wǎng)出口;

    2)一個(gè)對(duì)內(nèi):對(duì)內(nèi)其實(shí)就是確保能夠走專線和內(nèi)部網(wǎng)絡(luò)打通。

    4.3傳輸層

    完成各機(jī)房?jī)?nèi)的數(shù)據(jù)解析、存儲(chǔ)、同步、轉(zhuǎn)發(fā)等。

    對(duì)于接入層獲取到的數(shù)據(jù)我們分為三個(gè)級(jí)別:

    1)像交易所主要是二進(jìn)制流、文本為一級(jí)數(shù)據(jù),我們需要保留近一段時(shí)間的原始數(shù)據(jù)落在本地(一級(jí)數(shù)據(jù)管理集群),以便用作應(yīng)急回放。

    2)而解碼后的數(shù)據(jù)為二級(jí)數(shù)據(jù),落在二級(jí)數(shù)據(jù)管理集群上,主要用于跨地域同步。

    3)最后,對(duì)解碼后的數(shù)據(jù)進(jìn)行計(jì)算&加工,作為三級(jí)數(shù)據(jù),落在三級(jí)數(shù)據(jù)管理集群用于承接應(yīng)用服務(wù)。同時(shí),按協(xié)議解碼后的數(shù)據(jù)按照使用場(chǎng)景區(qū)分為實(shí)時(shí)流(如分時(shí))、延時(shí)流(如K線),延時(shí)流經(jīng)過(guò)實(shí)時(shí)流計(jì)算得來(lái),實(shí)時(shí)流同步進(jìn)內(nèi)存用于提升IO效率,延遲流通過(guò)實(shí)時(shí)流的計(jì)算后異步進(jìn)DB,DB維護(hù)在三級(jí)數(shù)據(jù)管理集群上。

    4.4應(yīng)用層

    負(fù)載/流量調(diào)度、監(jiān)控能力等建設(shè)。

    應(yīng)用層的設(shè)計(jì),主要有兩個(gè)方面的考慮:

    1)一方面是對(duì)于接入層的負(fù)載和流量調(diào)度,如通過(guò)部署websocket/http服務(wù)來(lái)支撐百度用戶流量,使用BLB(Baidu Load Balance)將同一區(qū)域的多臺(tái)百度智能云服務(wù)器虛擬成一個(gè)組,設(shè)置一個(gè)內(nèi)網(wǎng)或外網(wǎng)的服務(wù)地址,將前端并發(fā)訪問(wèn)轉(zhuǎn)發(fā)給后臺(tái)多臺(tái)云服務(wù)器(BCC),實(shí)現(xiàn)應(yīng)用程序的流量均衡,性能上實(shí)現(xiàn)業(yè)務(wù)水平擴(kuò)展。

    負(fù)載均衡還通過(guò)故障自動(dòng)切換及時(shí)地消除服務(wù)的單點(diǎn)故障,提升服務(wù)的可用性,支持服務(wù)器調(diào)度權(quán)重策略配置,并支持TCP、HTTP等協(xié)議。

    2)一方面是對(duì)監(jiān)控的應(yīng)用,如請(qǐng)求/數(shù)據(jù)傳輸日志落盤、統(tǒng)計(jì)、分析以及流量和sla監(jiān)控等。

    4.5小結(jié)

    將以上四層能力建設(shè)后,此時(shí)單機(jī)房?jī)?nèi)的網(wǎng)絡(luò)拓?fù)鋺?yīng)該如下圖所示。

    注:DCC/BBC/BCC都是百度云范疇的機(jī)器類型,更多細(xì)節(jié)可以參考百度智能云私有網(wǎng)絡(luò):https://cloud.baidu.com/doc/VPC/s/Vjwvytu2v。

    5、核心難點(diǎn)1

    公網(wǎng)和私有網(wǎng)絡(luò)方式下如何在云上完成多協(xié)議適配,尤其是在私有網(wǎng)絡(luò)中適配單播、組播協(xié)議以及如何做組播轉(zhuǎn)單播。

    5.1公網(wǎng)&私有網(wǎng)絡(luò)接入介紹

    對(duì)于一個(gè)數(shù)據(jù)傳輸系統(tǒng)來(lái)說(shuō),最重要的一點(diǎn)其實(shí)就是能支持多協(xié)議的數(shù)據(jù)適配來(lái)提升系統(tǒng)的靈活性,證券交易所一般提供的接入方式有公網(wǎng)接入和私有網(wǎng)絡(luò)接入,公網(wǎng)接入的成本較低,一般周粒度就可完成,沒(méi)有復(fù)雜協(xié)議約束。

    而私有網(wǎng)絡(luò)往往會(huì)有更高的要求,協(xié)議上大部分都要求具備單播介入能力,少部分像納斯達(dá)克和深圳交易所會(huì)要求下游支持組播接入。絕大多數(shù)的云廠商是無(wú)法直接在虛擬機(jī)上適配的,傳統(tǒng)券商基本都是完全使用昂貴的物理機(jī)資源來(lái)承載,雖然物理機(jī)插拔更方便也更穩(wěn)定,但運(yùn)維管理成本也更高。

    兩種方式在效果和成本上也有本質(zhì)的區(qū)別:

    1)公網(wǎng)接入:公網(wǎng)比較常見(jiàn)的數(shù)據(jù)接入方式主要是HTTP/HTTPS方式,當(dāng)然也會(huì)有RPC/FTP,只是用的相對(duì)少一些。

    為了提升數(shù)據(jù)傳輸安全,雙方可以在調(diào)用前協(xié)商好數(shù)據(jù)加密算法和密鑰。優(yōu)點(diǎn)是接入成本較低,能快速應(yīng)用,尤其在跨洋傳輸上會(huì)有體現(xiàn)。缺點(diǎn)是走的公共線路,網(wǎng)絡(luò)不可靠,且數(shù)據(jù)易被截獲,當(dāng)攻擊者捕獲兩端的數(shù)據(jù)包后,哪怕不能完全解析,也可以實(shí)施一些流量攻擊手段以影響服務(wù)穩(wěn)定性。總的來(lái)說(shuō),一般不會(huì)對(duì)于安全性、時(shí)效性要求較高的數(shù)據(jù)采用該方式接入,更多是只是一種備用方式(特殊場(chǎng)景除外,如跨洋傳輸)。

    2)私有網(wǎng)絡(luò)接入:公司內(nèi)網(wǎng)其實(shí)就屬于一個(gè)私有網(wǎng)絡(luò),但是對(duì)于跨公司傳輸數(shù)據(jù)的場(chǎng)景,要想構(gòu)建私有網(wǎng)絡(luò),一般會(huì)走物理專線接入的方式。

    這種點(diǎn)對(duì)點(diǎn)傳輸方式的顯著優(yōu)點(diǎn)是專網(wǎng)專用且安全性較高,基本不受公共網(wǎng)絡(luò)影響(自然災(zāi)害等不可抗力除外),在帶寬范圍內(nèi)基本可以做到無(wú)網(wǎng)絡(luò)爭(zhēng)用狀態(tài)(數(shù)據(jù)即發(fā)即達(dá)),由于是私有網(wǎng)絡(luò)(雙端內(nèi)網(wǎng)傳輸),基本不用擔(dān)心數(shù)據(jù)安全問(wèn)題,而且往往還會(huì)增加額外的數(shù)據(jù)校驗(yàn)手段,尤其在金融場(chǎng)景,會(huì)有嚴(yán)格的token(硬/軟)認(rèn)證,該方式的缺點(diǎn)是成本相比公網(wǎng)傳輸接入成本更高,一般要持續(xù)數(shù)月,費(fèi)用更昂貴,一般在上百萬(wàn)元,依賴選取的傳輸介質(zhì)(一般選擇光纖)和帶寬。

    5.2私有網(wǎng)絡(luò)中單播、組播協(xié)議接入方案

    私有網(wǎng)絡(luò)有單播、廣播、組播之分。

    1)單播:相對(duì)比較好適配一些,走靜態(tài)路由的方式在同一個(gè)VLANID下分別配置云端和IDC端的IP段作為IPV4專線互聯(lián)地址即可。

    2)廣播:一般是對(duì)于服務(wù)端而言,比如證券交易所下游對(duì)接著全球范圍的所有券商,數(shù)據(jù)源是相同的,一般會(huì)采用廣播的機(jī)制把數(shù)據(jù)推送給所有下游。

    3)組播:一般是要求下游需要適配,現(xiàn)如今大部分業(yè)務(wù)都已經(jīng)上公有云,在云上常用虛擬化技術(shù)來(lái)完成服務(wù)器集群的部署。

    對(duì)于虛擬機(jī)來(lái)說(shuō),更多的支持單播傳輸,不支持組播傳輸,往往需要在專門的物理設(shè)備(組播路由器、或特定的組播軟件)上配置轉(zhuǎn)發(fā)組播報(bào)文的路由,路由表關(guān)聯(lián)著具體的路由協(xié)議(如PIM),再用IGMPV3協(xié)議來(lái)完成組播成員和報(bào)文的管理,通過(guò)動(dòng)態(tài)BGP維護(hù)鄰居關(guān)系(現(xiàn)在的云廠商上對(duì)BGP的可能是固定分配AS號(hào),如果有AS的要求還是需要在物理機(jī)上單獨(dú)做),我們可以圈出一部分物理資源專門承載組播數(shù)據(jù)傳輸,通過(guò)配置IGMP Snooping(可以將組播報(bào)文轉(zhuǎn)發(fā)到二層數(shù)據(jù)鏈路層,實(shí)現(xiàn)組轉(zhuǎn)單,注意版本需要是3,否則無(wú)法轉(zhuǎn)發(fā)IGMPV3報(bào)文)+ AP完成組播轉(zhuǎn)單播配置,再通過(guò)雙網(wǎng)卡(WAN口+LAN口)形式實(shí)現(xiàn)專線網(wǎng)絡(luò)數(shù)據(jù)接入&同步到百度內(nèi)網(wǎng),物理機(jī)通過(guò)三層交換機(jī)來(lái)關(guān)聯(lián),構(gòu)造出類似下面的網(wǎng)絡(luò)拓?fù)洌ㄈ缦聢D所示)。

    6、核心難點(diǎn)2

    6.1概述

    數(shù)據(jù)管理&跨地域同步,數(shù)據(jù)災(zāi)備能力、時(shí)效性提升。

    數(shù)據(jù)的分層管理主要是應(yīng)對(duì)單機(jī)房?jī)?nèi)的場(chǎng)景,而對(duì)于跨機(jī)房或者說(shuō)跨地域的主要難點(diǎn)是數(shù)據(jù)同步,后者需要更多的考慮跨機(jī)房數(shù)據(jù)傳輸效率和災(zāi)備管理,核心是網(wǎng)絡(luò)設(shè)計(jì)。

    6.2數(shù)據(jù)管理

    按使用場(chǎng)景的不同,將數(shù)據(jù)分交易所二進(jìn)制流數(shù)據(jù)(原始數(shù)據(jù)流)、文本數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)/日志等。

    1)原始數(shù)據(jù)流:主要應(yīng)對(duì)單機(jī)房、跨機(jī)房傳輸場(chǎng)景,當(dāng)出現(xiàn)下游業(yè)務(wù)服務(wù)異常導(dǎo)致的數(shù)據(jù)展現(xiàn)錯(cuò)誤時(shí),存儲(chǔ)的原始數(shù)據(jù)流可以很好的對(duì)數(shù)據(jù)進(jìn)行回放,以便快速恢復(fù)業(yè)務(wù),尤其是應(yīng)對(duì)金融證券數(shù)據(jù)傳輸場(chǎng)景,證券交易所一般不會(huì)推送重復(fù)數(shù)據(jù),如果下游業(yè)務(wù)服務(wù)異常導(dǎo)致存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)全部失效或?yàn)榕K數(shù)據(jù),那可能只能通過(guò)refresh主動(dòng)請(qǐng)求上游來(lái)重新獲取。

    但這樣做可能會(huì)出現(xiàn)核心數(shù)據(jù)丟失,由于這種方式的效率較低,還會(huì)擴(kuò)大業(yè)務(wù)受損的影響面,因此一般會(huì)先存儲(chǔ)交易所下發(fā)的原始數(shù)據(jù)流,業(yè)務(wù)可以自定義存儲(chǔ)方式和周期,當(dāng)出現(xiàn)問(wèn)題時(shí),可以通過(guò)『重播』原始數(shù)據(jù)流來(lái)止損。

    另外原始數(shù)據(jù)流還能用于在對(duì)等網(wǎng)絡(luò)中的跨機(jī)房恢復(fù)業(yè)務(wù)數(shù)據(jù)。

    2)業(yè)務(wù)數(shù)據(jù)流:主要應(yīng)對(duì)單機(jī)房傳輸?shù)膱?chǎng)景,根據(jù)模塊分工的不同,分證券的實(shí)時(shí)行情、歷史行情等等,對(duì)于單機(jī)房數(shù)據(jù)集群的管理我們有很多方式,對(duì)于自研的DB,在調(diào)度上可以用一些標(biāo)準(zhǔn)的分布式管理手段(如zk),數(shù)據(jù)同步的手段一般需要自定義,對(duì)于傳統(tǒng)的DB如Mysql、Redis、Mongo等,一般有標(biāo)準(zhǔn)化的數(shù)據(jù)同步方式和調(diào)度模式。

    6.3跨地域同步

    跨機(jī)房地域同步的前提是多個(gè)機(jī)房之間需要有直接或間接關(guān)聯(lián)關(guān)系的專用物理網(wǎng)絡(luò),即確保網(wǎng)絡(luò)是可達(dá)的,然后再結(jié)合虛擬網(wǎng)絡(luò)完成子網(wǎng)及路由配置。

    對(duì)于具有直接網(wǎng)絡(luò)關(guān)聯(lián)關(guān)系的2個(gè)機(jī)房來(lái)說(shuō),我們的對(duì)等網(wǎng)絡(luò)(Peer Connection)設(shè)計(jì)稍微簡(jiǎn)單一些。

    現(xiàn)在各個(gè)云廠商也基本都支持直接配置了,其原理是首先在同一個(gè)VPC下劃分好子網(wǎng)并規(guī)劃好集群規(guī)模,其次通過(guò)配置路由表的方式完成本端和對(duì)端的下一跳關(guān)聯(lián),這樣就完成了2個(gè)直接對(duì)端的對(duì)等網(wǎng)絡(luò)建設(shè)。

    接著再配置和內(nèi)網(wǎng)專線的路由,就能做到云機(jī)房->內(nèi)網(wǎng)機(jī)房的網(wǎng)絡(luò)互通。

    但如果2個(gè)機(jī)房沒(méi)有直接關(guān)聯(lián)關(guān)系,而又需要完成本端和對(duì)端數(shù)據(jù)同步怎么辦呢,比如有A B C三個(gè)機(jī)房,只有A-B B-C有直接關(guān)聯(lián)關(guān)系,而我們想要讓A-C關(guān)聯(lián),這時(shí)候不可能說(shuō)再建立一條物理鏈路,我們可以采用類似橋接的方式(或者叫隧道),同時(shí)關(guān)聯(lián)A-B-C三個(gè)機(jī)房,其中B作為一個(gè)"網(wǎng)橋",再通過(guò)NAT技術(shù)完成IP地址轉(zhuǎn)換,確保C可以識(shí)別從A過(guò)來(lái)的路由,而A-B B-C 正常采用對(duì)等網(wǎng)絡(luò)的方式完成基礎(chǔ)網(wǎng)絡(luò)配置,這樣就可以胯多個(gè)機(jī)房進(jìn)行通信,由于是物理網(wǎng)絡(luò)傳輸,機(jī)房間的耗時(shí)不會(huì)有很大差別(30ms內(nèi))。

    由于網(wǎng)絡(luò)細(xì)節(jié)的篇幅較多,我們不做詳細(xì)的贅述,這里我們看看跨地域同步的網(wǎng)絡(luò)架構(gòu)(如下圖所示)。

     

    注:圖中網(wǎng)段可以根據(jù)不同場(chǎng)景做劃分,這里只做簡(jiǎn)單介紹。

    6.4數(shù)據(jù)災(zāi)備能力、時(shí)效性提升

    數(shù)據(jù)災(zāi)備:我們一般選擇離各個(gè)證券交易所就近的一個(gè)接入點(diǎn),比如上證選擇在上海機(jī)房接入,深證選擇在廣州接入,納斯達(dá)克在香港接入,每個(gè)接入點(diǎn)配置2條專線用做物理鏈路的主備,同時(shí)擴(kuò)展一條互聯(lián)網(wǎng)通路(注意這里的互聯(lián)網(wǎng)也是直接和交易所對(duì)接,已經(jīng)不是傳統(tǒng)數(shù)據(jù)引入渠道)做次備,鏈路默認(rèn)都是活躍狀態(tài),有專們的物理設(shè)備會(huì)根據(jù)專線的健康狀況(自定義邏輯)自動(dòng)切換。

    最后,再根據(jù)上面提到的跨地域同步的原理,在云機(jī)房關(guān)聯(lián)各條物理鏈路,在每條物理鏈路上抽象出獨(dú)立的VPC,通過(guò)構(gòu)建網(wǎng)絡(luò)拓?fù)鋵?shí)現(xiàn)跨機(jī)房數(shù)據(jù)復(fù)制及災(zāi)備。

    時(shí)效性:物理專線(光纜)接入方式天然的優(yōu)勢(shì)就是數(shù)據(jù)"即發(fā)即達(dá)",因?yàn)樵诠潭◣拑?nèi)基本不存在網(wǎng)絡(luò)爭(zhēng)用,而且現(xiàn)在大部分線路都會(huì)配置中繼,其損耗帶來(lái)的影響相對(duì)可控,因此接入方式就決定了數(shù)據(jù)傳輸?shù)臅r(shí)效性。

    相比傳統(tǒng)互聯(lián)網(wǎng)接入方式,單從數(shù)據(jù)上來(lái)看,專線接入SLA超過(guò)5個(gè)9(互聯(lián)網(wǎng)接入2個(gè)9),當(dāng)然也會(huì)配置上重傳機(jī)制來(lái)進(jìn)一步提升數(shù)據(jù)到達(dá)的可靠性。

    交易所下發(fā)數(shù)據(jù)的數(shù)據(jù)頻率按市場(chǎng)劃分,A股一般3s/筆,港美股沒(méi)有特殊限制,即有成交即下發(fā),除去光損耗帶來(lái)的影響,最快可以到3ms/筆,由于頻率越高,對(duì)機(jī)器要求也越高,為此我們特殊做了一些限頻操作,整體的數(shù)據(jù)時(shí)效性基本會(huì)在60ms(99.99+分位)內(nèi)。

    7、核心難點(diǎn)3

    7.1概述

    集群管理&單地域、跨地域流量調(diào)度。

    流量調(diào)度生效在應(yīng)用層,主要是找到一種高效的調(diào)度/負(fù)載方式來(lái)對(duì)內(nèi)/外的業(yè)務(wù)提供數(shù)據(jù)支撐,從協(xié)議上/應(yīng)用場(chǎng)景劃分主要有TCP/HTTP,策略上因業(yè)務(wù)而異,主要還是基于對(duì)流量分配中權(quán)重的定義。

    比如有基于RS健康檢查的分配,每隔一段時(shí)間探測(cè)一下下游集群的健康狀況來(lái)動(dòng)態(tài)調(diào)整流量配比,也可以根據(jù)下游機(jī)器的連接數(shù)來(lái)分配,還可以基于對(duì)資源訪問(wèn)的熱度來(lái)分配,區(qū)分單地域和跨地域場(chǎng)景如下面所述。

    7.2單地域場(chǎng)景

    現(xiàn)在各個(gè)云廠商都有相應(yīng)的流量調(diào)度產(chǎn)品支撐,比如百度云上有BLB(Baidu Load Balance),可以很輕松構(gòu)建一個(gè)調(diào)度規(guī)則出來(lái),在BLB下可以設(shè)置調(diào)度集群的協(xié)議(TCP/HTTP),然后關(guān)聯(lián)對(duì)應(yīng)的服務(wù)器集群,最后給不同的服務(wù)器集群配置權(quán)重策略。

    當(dāng)流量進(jìn)來(lái)時(shí),BLB會(huì)幫我們完成自動(dòng)分配,在某一個(gè)集群出現(xiàn)問(wèn)題時(shí),可以手動(dòng)調(diào)整集群權(quán)重來(lái)干預(yù)流量配比,即所謂的切流。

    7.3多地域場(chǎng)景

    多個(gè)機(jī)房間的流量調(diào)度策略是在云上一般是隔離開(kāi)的,當(dāng)然我們可以在多個(gè)機(jī)房的最上層再抽象出一個(gè)專門的調(diào)度集群,對(duì)外暴露一個(gè)VIP。

    在這個(gè)VIP上配置多個(gè)地域之間的調(diào)度關(guān)系,互聯(lián)網(wǎng)公司基本上也都是這么做的,更多的是針對(duì)超大集群規(guī)模的場(chǎng)景,而且VIP的選取也是有條件/成本的。

    但如果想低成本快速在云上創(chuàng)建一個(gè)能支持多地域同時(shí)訪問(wèn)且具備自動(dòng)化流量調(diào)度的應(yīng)用,且云上又不支持多地域共享VIP的功能時(shí),我們可以盡可能多的基于云上已有的功能自己完成,在每個(gè)機(jī)房?jī)?nèi)部單獨(dú)抽出一個(gè)類似nginx的集群,每個(gè)集群上維護(hù)著不同于本地域的調(diào)度關(guān)系,它們的下游就是不同于本機(jī)房的BLB,同時(shí)互相檢查對(duì)方的健康狀況并上報(bào)監(jiān)控系統(tǒng),這樣當(dāng)出現(xiàn)異常時(shí),除了能針對(duì)性的在本機(jī)房?jī)?nèi)完成BLB級(jí)的流量調(diào)度,還能做到多機(jī)房間的流量切換,以提升機(jī)房間的災(zāi)備能力。當(dāng)然,也需要有足夠的容量。

     

    8、總體設(shè)計(jì)

    上圖各個(gè)模塊的作用如下(各模塊均采用多路復(fù)用):

    1)源數(shù)據(jù)接入集群:適配2種方式(互聯(lián)網(wǎng)/物理專線)+各類協(xié)議(互聯(lián)網(wǎng)、單播、組播)的數(shù)據(jù)源接入;

    2)源數(shù)據(jù)轉(zhuǎn)發(fā)集群:確保各機(jī)房源數(shù)據(jù)的一致性,降低由于業(yè)務(wù)服務(wù)本身帶來(lái)的數(shù)據(jù)不一致問(wèn)題;

    3)數(shù)據(jù)解析集群:公共模塊,主要是針對(duì)源數(shù)據(jù)進(jìn)行統(tǒng)一的處理,以便轉(zhuǎn)發(fā)給下游各業(yè)務(wù);

    4)業(yè)務(wù)數(shù)據(jù)集群(實(shí)時(shí)/延時(shí)流):負(fù)責(zé)將數(shù)據(jù)解析集群下發(fā)的內(nèi)容轉(zhuǎn)換成業(yè)務(wù)詳細(xì)數(shù)據(jù),也就是B端或C端用戶看到的數(shù)據(jù);

    5)網(wǎng)關(guān)集群:負(fù)責(zé)承載用戶訪問(wèn)流量;

    6)監(jiān)控集群:負(fù)責(zé)收集各個(gè)集群上報(bào)的日志情況,并作為穩(wěn)定性管理手段之一。

    可以看到:機(jī)房B相比其他機(jī)房,少了接入層配置,這主是基于成本和性能上考慮,把機(jī)房B當(dāng)做數(shù)據(jù)傳輸樞紐,不僅能保證本機(jī)房數(shù)據(jù)傳輸,也能支持跨機(jī)房的數(shù)據(jù)同步&復(fù)制。該分布式傳輸系統(tǒng)從數(shù)據(jù)接入到監(jiān)控集群,整體機(jī)器規(guī)模不大(100左右),但可支撐超過(guò)10億的流量。

    9、本文小結(jié)

    一個(gè)良好的產(chǎn)品體驗(yàn)及產(chǎn)品矩陣,其背后一定離不開(kāi)一個(gè)高可用、高時(shí)效的數(shù)據(jù)支撐,尤其是在金融領(lǐng)域,用戶只可能會(huì)為一手的信息、完善的產(chǎn)品功能買單。

    自21年完成數(shù)據(jù)通路建設(shè)以來(lái),金融的穩(wěn)定性和業(yè)務(wù)規(guī)模都有了質(zhì)的飛躍,證券數(shù)據(jù)時(shí)效性問(wèn)題從季度數(shù)十個(gè)降低到年度1個(gè)以內(nèi),99分位耗時(shí)更是從過(guò)去的分鐘級(jí)降低到60ms以內(nèi),數(shù)據(jù)SLA從2個(gè)9左右提升至5個(gè)9以上,產(chǎn)品覆蓋股票、外匯、基金、期貨等諸多領(lǐng)域,也是第一個(gè)在搜索領(lǐng)域支持行情長(zhǎng)連接的業(yè)務(wù),基于搜索生態(tài)也孵化出來(lái)了像百度股市通PC站、app等多個(gè)獨(dú)立端產(chǎn)品,目前正在結(jié)合AI能力進(jìn)行持續(xù)優(yōu)化,期望從完善用戶體驗(yàn)->幫助用戶決策進(jìn)階,也讓金融投資變得更智能,更簡(jiǎn)單。

    本文主要結(jié)合一個(gè)金融數(shù)據(jù)接入案例對(duì)分布式數(shù)據(jù)傳輸系統(tǒng)做了一個(gè)簡(jiǎn)單的介紹,包括傳輸系統(tǒng)中的一些核心節(jié)點(diǎn)的設(shè)計(jì),如數(shù)據(jù)接入層的多協(xié)議適配、數(shù)據(jù)的分層管理以及跨地域的數(shù)據(jù)同步對(duì)應(yīng)的網(wǎng)絡(luò)拓?fù)涞龋ㄟ^(guò)實(shí)驗(yàn)得出結(jié)論,該方案能很好的應(yīng)用在各種規(guī)模的分布式數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)中。當(dāng)然,由于篇幅問(wèn)題,也省略了很多實(shí)現(xiàn)上的細(xì)節(jié),讀者有任何問(wèn)題可以留言,可以一起探討,也會(huì)盡量答復(fù)。

    10、相關(guān)文章

    [1] 技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解

    [2] 以網(wǎng)游服務(wù)端的網(wǎng)絡(luò)接入層設(shè)計(jì)為例,理解實(shí)時(shí)通信的技術(shù)挑戰(zhàn)

    [3] 知乎千萬(wàn)級(jí)并發(fā)的高性能長(zhǎng)連接網(wǎng)關(guān)技術(shù)實(shí)踐

    [4] 手淘億級(jí)移動(dòng)端接入層網(wǎng)關(guān)的技術(shù)演進(jìn)之路

    [5] 喜馬拉雅自研億級(jí)API網(wǎng)關(guān)技術(shù)實(shí)踐

    [6] 石墨文檔單機(jī)50萬(wàn)WebSocket長(zhǎng)連接架構(gòu)實(shí)踐

    [7] 小米小愛(ài)單機(jī)120萬(wàn)長(zhǎng)連接接入層的架構(gòu)演進(jìn)

    [8] B站基于微服務(wù)的API網(wǎng)關(guān)從0到1的演進(jìn)之路

    [9] 百度統(tǒng)一socket長(zhǎng)連接組件從0到1的技術(shù)實(shí)踐

    [10] 淘寶移動(dòng)端統(tǒng)一網(wǎng)絡(luò)庫(kù)的架構(gòu)演進(jìn)和弱網(wǎng)優(yōu)化技術(shù)實(shí)踐

    11、其它百度技術(shù)分享

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(一):DNS優(yōu)化篇

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(二):網(wǎng)絡(luò)連接優(yōu)化篇

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(三):移動(dòng)端弱網(wǎng)優(yōu)化篇

    全面了解移動(dòng)端DNS域名劫持等雜癥:原理、根源、HttpDNS解決方案等

    深入了解百度開(kāi)源的分布式RPC框架brpc的方方面面

    直播系統(tǒng)聊天技術(shù)(四):百度直播的海量用戶實(shí)時(shí)消息系統(tǒng)架構(gòu)演進(jìn)實(shí)踐

    IM消息ID技術(shù)專題(五):開(kāi)源分布式ID生成器UidGenerator的技術(shù)實(shí)現(xiàn)

    百度統(tǒng)一socket長(zhǎng)連接組件從0到1的技術(shù)實(shí)踐

    百度網(wǎng)盤千萬(wàn)節(jié)點(diǎn)的P2P架構(gòu)設(shè)計(jì)(PPT) [附件下載]

    即時(shí)通訊音視頻開(kāi)發(fā)(二十):一文讀懂視頻的顏色模型轉(zhuǎn)換和色域轉(zhuǎn)換

    揭秘百度IM消息中臺(tái)的全量用戶消息推送技術(shù)改造實(shí)踐

    百度基于金融場(chǎng)景構(gòu)建高實(shí)時(shí)、高可用的分布式數(shù)據(jù)傳輸系統(tǒng)的技術(shù)實(shí)踐


    (本文已同步發(fā)布于:http://www.52im.net/thread-4602-1-1.html



    作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github)
    出處:http://www.52im.net/space-uid-1.html
    交流:歡迎加入即時(shí)通訊開(kāi)發(fā)交流群 215891622
    討論:http://www.52im.net/
    Jack Jiang同時(shí)是【原創(chuàng)Java Swing外觀工程BeautyEye】【輕量級(jí)移動(dòng)端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
    本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處(也可前往 我的52im.net 找到我)。


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
    主站蜘蛛池模板: 亚洲一区免费视频| 亚洲国产成人久久精品app| 四虎影视在线影院在线观看免费视频 | 丁香花在线视频观看免费| 亚洲欧美成aⅴ人在线观看| 久久夜色精品国产亚洲| 免费va在线观看| 成人性生交大片免费看午夜a| 最近免费mv在线观看动漫| 亚洲综合av一区二区三区| 亚洲国产精品无码久久一线| 亚洲美女在线国产| 亚洲日本va在线观看| 亚洲一区二区三区不卡在线播放| 亚洲av永久无码精品古装片| 亚洲男人的天堂www| 国产成人亚洲综合色影视| 国产精品国产亚洲精品看不卡| 亚洲综合国产精品第一页| 亚洲精品无码av天堂| 亚洲精品无码永久在线观看| 亚洲国产精品成人| 亚洲AV综合色区无码一区| 亚洲美女视频一区| 亚洲影视自拍揄拍愉拍| 亚洲av日韩aⅴ无码色老头| 免费很黄无遮挡的视频毛片| 成在人线av无码免费高潮喷水 | 亚洲国产美女精品久久久久| 亚洲精品国产精品国自产网站| 亚洲人成人伊人成综合网无码| 国产精品亚洲一区二区在线观看| 一级毛片在线免费视频| 人人揉揉香蕉大免费不卡| 女人18一级毛片免费观看| 亚洲性日韩精品国产一区二区| 久久亚洲国产成人亚| 久久精品国产亚洲AV未满十八| 中文字幕高清免费不卡视频| 91人成网站色www免费下载| 成人au免费视频影院|