• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Node.js的高性能應(yīng)用服務(wù)平臺(tái)構(gòu)建

      2018-12-18 01:09:10李騫
      中國(guó)傳媒科技 2018年10期
      關(guān)鍵詞:多維度答題用戶

      文/李騫

      近期,新華社“馬克思主義新聞?dòng)^手機(jī)在線學(xué)習(xí)競(jìng)賽活動(dòng)”圓滿落幕。在15天的線上答題期間里,70家社屬單位全員參與,全社共有12000余人下載活動(dòng)APP參與答題,參與率接近100%,營(yíng)造了良好的學(xué)習(xí)氛圍,有效地將新華社馬克思主義新聞?dòng)^教育向縱深推進(jìn)。而在這次活動(dòng)的背后,技術(shù)的支撐尤為關(guān)鍵。短短3個(gè)月的時(shí)間,我?guī)ьI(lǐng)三人的自主研發(fā)團(tuán)隊(duì),從無(wú)到有,從構(gòu)想到落地,完成了競(jìng)賽答題平臺(tái)的完全自主研發(fā)。正是依托這一平臺(tái),才能在短時(shí)間內(nèi)快速構(gòu)建起整個(gè)活動(dòng)的框架。那么這個(gè)平臺(tái)究竟是通過(guò)什么樣的技術(shù)手段來(lái)支撐這種活動(dòng)的呢?

      1.平臺(tái)設(shè)計(jì)難點(diǎn)

      既謂之“平臺(tái)”,我們的初衷當(dāng)然不是一套一次性使用的后臺(tái)應(yīng)用,而是一個(gè)能夠提供給不同用戶開(kāi)展多次活動(dòng)反復(fù)使用的競(jìng)賽答題平臺(tái)。

      我們首先通過(guò)與活動(dòng)主辦部門的多次研究討論,建立了本次馬克思主義新聞?dòng)^學(xué)習(xí)競(jìng)賽活動(dòng)的業(yè)務(wù)場(chǎng)景:活動(dòng)分為數(shù)個(gè)章節(jié),各章題目隨機(jī),以闖關(guān)形式為主,依次進(jìn)行。參與者還可對(duì)排名靠前者發(fā)起挑戰(zhàn),挑戰(zhàn)者、被挑戰(zhàn)者均有機(jī)會(huì)獲得積分獎(jiǎng)勵(lì)。另外,答完全部章節(jié)的參與者繼續(xù)自行答題,可反復(fù)獲得積分獎(jiǎng)勵(lì),積分不設(shè)上限。所有問(wèn)答題目均可實(shí)時(shí)顯示正確答案供參與者學(xué)習(xí)。

      隨后我們結(jié)合本次活動(dòng)的業(yè)務(wù)場(chǎng)景、需求并結(jié)合平臺(tái)化的構(gòu)想,綜合梳理出了競(jìng)賽答題平臺(tái)設(shè)計(jì)中的難點(diǎn),具體如下。

      1.1 活動(dòng)模式多

      答題競(jìng)賽類活動(dòng)包括闖關(guān)、挑戰(zhàn)、練習(xí)等多種模式,各模式需要能夠進(jìn)行靈活的配置。

      1.2 參與單位、參與人員數(shù)量多

      一次活動(dòng)應(yīng)該既可以針對(duì)一個(gè)單位又可以針對(duì)多個(gè)單位,由于每個(gè)單位又有眾多的下屬部門、人員,這就造成活動(dòng)涉及到的人員和單位(部門)數(shù)量相當(dāng)之多。平臺(tái)如果沒(méi)有有效的參與單位(部門)、參與人員的管理功能,將會(huì)導(dǎo)致很高的管理成本,并影響活動(dòng)組織效率。

      1.3 高并發(fā)訪問(wèn)

      存在不同程度的并發(fā)訪問(wèn)情況。如較長(zhǎng)周期的活動(dòng)會(huì)在活動(dòng)剛開(kāi)始和即將結(jié)束兩個(gè)時(shí)間點(diǎn)產(chǎn)生較大的并發(fā)量等。需保證在有較大并發(fā)訪問(wèn)的情況下,系統(tǒng)及系統(tǒng)產(chǎn)生的數(shù)據(jù)不會(huì)發(fā)生異常,并且維持高性能運(yùn)轉(zhuǎn),及時(shí)地返回?cái)?shù)據(jù)請(qǐng)求結(jié)果。

      1.4 多維度的活動(dòng)統(tǒng)計(jì)

      活動(dòng)中及活動(dòng)后的統(tǒng)計(jì)數(shù)據(jù)對(duì)于這類活動(dòng)而言十分重要。對(duì)于參與者而言,直觀的活動(dòng)統(tǒng)計(jì)是他們確認(rèn)自身答題情況、排名的重要手段;對(duì)于組織者而言,多維度的活動(dòng)統(tǒng)計(jì)往往可以作為判斷這次活動(dòng)是否成功的關(guān)鍵參考。

      1.5 靈活快速地響應(yīng)業(yè)務(wù)變化

      平臺(tái)運(yùn)行長(zhǎng)久與否,很重要的一方面在于其是否能夠適應(yīng)不斷變化的業(yè)務(wù)需求,并進(jìn)行快速迭代更新。

      1.6 數(shù)據(jù)安全不得有失

      活動(dòng)中涉及到的用戶數(shù)據(jù)及活動(dòng)本身的數(shù)據(jù)都需要有較好的安全保障。對(duì)于任何數(shù)據(jù)非法獲取或篡改的操作及各種非法請(qǐng)求都必須嚴(yán)加防范。

      2.平臺(tái)的設(shè)計(jì)

      在平臺(tái)的設(shè)計(jì)過(guò)程中,我?guī)ьI(lǐng)團(tuán)隊(duì)成員們進(jìn)行了充分的前期調(diào)研,完成了多次 的頭腦風(fēng)暴,從功能設(shè)計(jì)、技術(shù)選型、部署保障等多方面充分應(yīng)對(duì)設(shè)計(jì)難點(diǎn)。

      2.1 功能設(shè)計(jì)

      平臺(tái)提供人員管理、組織機(jī)構(gòu)管理、題庫(kù)管理、活動(dòng)管理、統(tǒng)計(jì)分析、用戶認(rèn)證、API服務(wù)等一系列功能和服務(wù),以支撐不同的答題類活動(dòng)。

      通過(guò)活動(dòng)、關(guān)卡等的交互式配置界面,支持多活動(dòng)、多關(guān)卡,活動(dòng)組織者可以輕松地對(duì)活動(dòng)的參數(shù)進(jìn)行調(diào)整。

      通過(guò)提供分級(jí)管理、批量數(shù)據(jù)導(dǎo)入等方式,減輕組織者的單位、人員管理成本。提供按組織結(jié)構(gòu)、活動(dòng)關(guān)卡等多維度的統(tǒng)計(jì)查詢功能,方便組織者進(jìn)行實(shí)時(shí)的統(tǒng)計(jì)。

      而API服務(wù)則給活動(dòng)終端提供多種API接口,使得活動(dòng)終端可以靈活實(shí)現(xiàn)各種用戶交互功能。

      平臺(tái)所有功能通過(guò)角色、內(nèi)容權(quán)限進(jìn)行劃分,只有具備相應(yīng)權(quán)限的用戶才可以進(jìn)行具體功能操作。

      2.2 技術(shù)框架

      平臺(tái)采用B/S架構(gòu)。

      2.2.1 服務(wù)端

      其中,服務(wù)器端基于Node.js、MySQL等技術(shù),采用Express框架進(jìn)行開(kāi)發(fā),并提供符合RESTful規(guī)范的API接口。

      Node.js技術(shù)是由事件驅(qū)動(dòng)、非阻塞式 I/O 的編程模型,可充分提高程序執(zhí)行效率,降低接口延遲。

      表1 各場(chǎng)景下Node.js與JAVA的性能比較[1]

      通過(guò)數(shù)據(jù)比較我們可以看到,除了計(jì)算密集型場(chǎng)景,在I/O密集、計(jì)算I/O平衡、長(zhǎng)阻塞I/O請(qǐng)求等各場(chǎng)景下,每秒可處理的請(qǐng)求數(shù)Node.js比Java要多數(shù)倍,在并發(fā)情況下,Node.js性能還可以再有數(shù)倍的提升。

      根據(jù)我們的分析,競(jìng)賽答題平臺(tái)主要是進(jìn)行用戶請(qǐng)求的快速處理,很少涉及到復(fù)雜的計(jì)算,其就是一個(gè)典型的I/O密集型應(yīng)用,為了獲得最好的平臺(tái)性能,我們選擇使用Node.js。

      Express是一個(gè)簡(jiǎn)潔、靈活的Node.js Web應(yīng)用開(kāi)發(fā)框架,可以方便快捷地編寫Web請(qǐng)求處理邏輯并創(chuàng)建API服務(wù),并且由于其模塊化的特性,便于進(jìn)行后續(xù)的功能擴(kuò)展。

      數(shù)據(jù)庫(kù)采用關(guān)系型數(shù)據(jù)庫(kù)MySQL,并根據(jù)業(yè)務(wù)需求設(shè)計(jì)請(qǐng)求性能及擴(kuò)展性良好的數(shù)據(jù)庫(kù)表,保證數(shù)據(jù)結(jié)構(gòu)的可擴(kuò)展性,以應(yīng)對(duì)可能的業(yè)務(wù)變化。由于關(guān)系型數(shù)據(jù)庫(kù)本身的關(guān)系特性,其適合完成復(fù)雜的統(tǒng)計(jì)查詢操作,可以根據(jù)業(yè)務(wù)需求進(jìn)行多維度的數(shù)據(jù)查詢統(tǒng)計(jì)操作。

      2.2.2 瀏覽器端

      瀏覽器端基于HTML5、CSS3、JavaScript等技術(shù),采用Vue.js框架和Element UI庫(kù)進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)簡(jiǎn)潔、易用、模塊化的UI界面。Vue.js框架簡(jiǎn)潔、輕量化,易于進(jìn)行快速迭代開(kāi)發(fā),其組件化的特性使得瀏覽器端的功能擴(kuò)展性得到保障。Element UI庫(kù)提供多樣的UI組件,可以給用戶提供優(yōu)雅的交互體驗(yàn),并使得平臺(tái)管理界面的開(kāi)發(fā)、組裝變得更加快速。

      2.3 部署設(shè)計(jì)

      平臺(tái)使用CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))技術(shù)為平臺(tái)活動(dòng)靜態(tài)內(nèi)容提供內(nèi)容加速服務(wù)。CDN能夠自動(dòng)判別新華通網(wǎng)站動(dòng)靜態(tài)內(nèi)容,通過(guò)智能負(fù)載均衡系統(tǒng)將用戶的訪問(wèn)定位至最佳節(jié)點(diǎn)[2],能有效避開(kāi)網(wǎng)絡(luò)中的擁塞,實(shí)現(xiàn)用戶最快訪問(wèn),改善服務(wù)效果,為用戶訪問(wèn)活動(dòng)內(nèi)容提供快捷、穩(wěn)定的支撐,同時(shí)降低應(yīng)用服務(wù)器的訪問(wèn)負(fù)載。下面的兩幅圖為本次活動(dòng)CDN命中示意圖(深色為命中),通過(guò)CDN的使用,保護(hù)了源站并有效避免了網(wǎng)絡(luò)擁塞,從而支撐了來(lái)自國(guó)內(nèi)全部34個(gè)省級(jí)行政區(qū)和海外100多個(gè)國(guó)家及地區(qū)的訪問(wèn)。

      圖1 CDN命中示意圖(國(guó)內(nèi))

      圖2 CDN命中示意圖(海外)

      平臺(tái)通過(guò)使用負(fù)載均衡技術(shù),平衡用戶的應(yīng)用服務(wù)器訪問(wèn)請(qǐng)求。同時(shí),支持系統(tǒng)在負(fù)載較大的情況下,根據(jù)系統(tǒng)瓶頸,橫向擴(kuò)展相應(yīng)組件,如負(fù)載均衡服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器等。

      平臺(tái)通過(guò)定期的系統(tǒng)數(shù)據(jù)備份,確保平臺(tái)數(shù)據(jù)在意外丟失時(shí)能夠及時(shí)恢復(fù)。

      2.4 安全性設(shè)計(jì)

      平臺(tái)在安全方面采取了多種安全防護(hù)措施,確保系統(tǒng)、數(shù)據(jù)的安全性。例如:

      (1)使用SSL安全證書,對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行加密;(2)對(duì)關(guān)鍵信息進(jìn)行加密處理,從數(shù)據(jù)源頭上進(jìn)行安全保護(hù);

      (3)對(duì)服務(wù)器進(jìn)行定期漏洞檢測(cè)、基線檢查、病毒查殺;

      (4)使用Web應(yīng)用防火墻對(duì)系統(tǒng)業(yè)務(wù)流量進(jìn)行惡意特征識(shí)別及防護(hù),將正常、安全的流量回源到服務(wù)器。避免網(wǎng)站服務(wù)器被惡意入侵,保障業(yè)務(wù)的核心數(shù)據(jù)安全,解決因惡意攻擊導(dǎo)致的服務(wù)器性能異常問(wèn)題;

      (5)進(jìn)行系統(tǒng)訪問(wèn)控制,僅允許指定范圍的訪入請(qǐng)求;

      對(duì)技術(shù)手段作弊行為進(jìn)行識(shí)別,確保活動(dòng)公平性。

      3.成果及改進(jìn)方向

      通過(guò)有針對(duì)性的分析、設(shè)計(jì)和在短短兩三個(gè)月的時(shí)間完成近8萬(wàn)行代碼編寫迭代的高效率敏捷化開(kāi)發(fā),實(shí)現(xiàn)了整個(gè)競(jìng)賽答題平臺(tái)的構(gòu)建。正是基于這一平臺(tái),“馬克思主義新聞?dòng)^手機(jī)在線學(xué)習(xí)競(jìng)賽活動(dòng)”取得了如前言所述的圓滿成功?;顒?dòng)充分調(diào)動(dòng)了職工的參與積極性,并受到了社領(lǐng)導(dǎo)及眾多職工的廣泛贊譽(yù)。活動(dòng)組織者們也紛紛對(duì)平臺(tái)的穩(wěn)定運(yùn)行和易用性表示了肯定。

      正如前文提到的那樣,作為一個(gè)平臺(tái),一次活動(dòng),一次成功只能算是其生命周期的一小步,這一平臺(tái)還有巨大的潛力可以挖掘,還有許多可以改進(jìn)的地方,例如:

      (1)根據(jù)業(yè)務(wù)需求升級(jí)、優(yōu)化系統(tǒng)功能;

      (2)系統(tǒng)交互易用性的提升,提供多維度的查詢、篩選、排序等功能;

      (3)提供更多的活動(dòng)統(tǒng)計(jì)維度;

      (4)更完善的作弊行為處理機(jī)制;

      (5)進(jìn)一步增強(qiáng)系統(tǒng)的安全性;

      (6)面向更多單位提供平臺(tái)服務(wù)。

      4.總結(jié)

      通過(guò)自主研發(fā)的方式,提高開(kāi)發(fā)效率,縮短迭代周期,快速適應(yīng)變化,通過(guò)對(duì)業(yè)務(wù)的認(rèn)真分析、抽象,然后進(jìn)行有針對(duì)性的設(shè)計(jì)開(kāi)發(fā),最終形成高效易用的平臺(tái)并良好地服務(wù)于業(yè)務(wù)。相信以此為起點(diǎn),該平臺(tái)未來(lái)還會(huì)不斷進(jìn)化,并將發(fā)揮更為重要的作用。

      猜你喜歡
      多維度答題用戶
      邀你來(lái)答題
      邀你來(lái)答題
      邀你來(lái)答題
      邀你來(lái)答題
      “多維度評(píng)改”方法初探
      多維度市南
      商周刊(2017年7期)2017-08-22 03:36:22
      關(guān)注用戶
      商用汽車(2016年11期)2016-12-19 01:20:16
      關(guān)注用戶
      商用汽車(2016年6期)2016-06-29 09:18:54
      關(guān)注用戶
      商用汽車(2016年4期)2016-05-09 01:23:12
      如何獲取一億海外用戶
      丰镇市| 绥中县| 华安县| 常山县| 霍林郭勒市| 寻乌县| 靖宇县| 柯坪县| 宜昌市| 博客| 郸城县| 泸水县| 菏泽市| 淮安市| 靖边县| 漯河市| 斗六市| 恩施市| 梅州市| 博罗县| 库车县| 理塘县| 吴桥县| 台东县| 屏东县| 石家庄市| 巧家县| 南皮县| 丹凤县| 新巴尔虎右旗| 会同县| 班玛县| 扎鲁特旗| 清丰县| 安乡县| 瑞丽市| 杂多县| 绥芬河市| 谷城县| 鹤庆县| 行唐县|