公司網(wǎng)站制作多少錢好用的磁力搜索引擎
一、項目介紹
JDV(可視化大屏)是京東內(nèi)部搭建可視化大屏的數(shù)據(jù)工具平臺,內(nèi)置10+種模版特效,40+種風(fēng)格各異的圖表、導(dǎo)航等組件。與集團(tuán)其他數(shù)據(jù)工具打通,支持一站式、自助化、拖拽式搭建大屏,實現(xiàn)數(shù)據(jù)切換、聯(lián)動刷新、大屏下鉆等呈現(xiàn)效果,便利高管、采銷、產(chǎn)研等全集團(tuán)范圍內(nèi)的數(shù)據(jù)可視化訴求。在大促期間京東視界大屏項目,主要服務(wù)作戰(zhàn)指揮、慶功會、公關(guān)場景,實現(xiàn)在大促期間實時數(shù)據(jù)監(jiān)控分析,并基于大屏數(shù)據(jù)進(jìn)行決策和總結(jié),同時在公關(guān)場景下實現(xiàn)對外部媒體、政府、外部企業(yè)領(lǐng)導(dǎo)參觀,協(xié)助公關(guān)部對外宣傳公司的良好形象。
二、項目挑戰(zhàn)
JDV做為可視化大屏搭建平臺,平臺主要由可視化編排和后端服務(wù)組成,由于大屏在頁面中渲染后會通過指定刷新頻率主動獲取數(shù)據(jù),每次在頁面中渲染后就是一個獨(dú)立運(yùn)行實例,系統(tǒng)具體架構(gòu)如下圖所示。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-YXyh9sfA-1691381013950)(https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MWRjMjgzNzNiZTc1N2I0OGIzMDhlODc5YjlhMzdjYzQsMTY5MTM3MjQ3MDM1Mg==)]
基于可視化大屏特點,為了解決大屏在使用過程中能夠滿足秒級更新、跨0點停數(shù)、指標(biāo)數(shù)據(jù)快速調(diào)整、數(shù)據(jù)高穩(wěn)定性、備用屏秒級切換等業(yè)務(wù)場景需要JDV平臺能夠足夠靈活,具體場景細(xì)節(jié)如下:
?數(shù)據(jù)秒級更新:秒級數(shù)據(jù)刷新對底層數(shù)據(jù)服務(wù)壓力較大,我們使用請求隔離、限流等技術(shù)手段對大屏請求實現(xiàn)高可用保障,實現(xiàn)全鏈路讀寫真實場景多次高保真壓測提前發(fā)現(xiàn)并解決鏈路性能問題,并針對QPS高峰等有足夠預(yù)案處理。
?跨0點停數(shù):針對周期累計的數(shù)據(jù)來講處于臨界點也是突變點,0點過后數(shù)據(jù)接口會重新開始新周期累計,我們必須在多服務(wù)多機(jī)房多容器存在系統(tǒng)時間偏差場景中精準(zhǔn)停數(shù)。
?數(shù)據(jù)快速調(diào)整:在大促期間經(jīng)常需要根據(jù)業(yè)務(wù)看數(shù)需求緊急快速調(diào)整,當(dāng)前基于我們PaaS大屏搭建方案,能保證90%以上需求調(diào)整能在分鐘內(nèi)調(diào)整完并交付使用。
?數(shù)據(jù)高穩(wěn)定性:大屏一般會投放在高管作戰(zhàn)指揮室、各業(yè)務(wù)線指揮室等,我們要以高質(zhì)量交付,方便業(yè)務(wù)基于實時數(shù)據(jù)調(diào)整,避免跳數(shù)、刷新異常等問題影響業(yè)務(wù)看數(shù),從而錯過最佳決策時間。
?備用大屏切換:在搭建大屏過程需要考慮線上和線下大屏使用過程中出現(xiàn)的問題情況,所有在搭建大屏過程除了需要搭建預(yù)估場景下使用的大屏外,還需要搭建部分備用屏及拖底屏,確保在大促期間所有大屏的使用都萬無一失。
基于以上大屏在大促期間使用場景,本次618大促期間相關(guān)挑戰(zhàn)也是非常大,主要在大屏搭建量大、使用場景復(fù)雜多變、時間緊任務(wù)重等方面,具體如下:
?大屏搭建量大:在大促期間需要搭建大屏數(shù)據(jù)較多,過程中還需要根據(jù)大促場景隨時增加大屏數(shù)量,大促期間共搭建了80+張大屏,搭建大屏過程中由于大屏涉及相關(guān)人員較多,在大促期間溝通成本巨大,從4月底開始陸續(xù)評審需求后,5月初就需要完成作戰(zhàn)指揮大屏配合全鏈路壓測,京東視界和公關(guān)屏逐步進(jìn)行搭建,過程中大屏需求須隨時響應(yīng)調(diào)整。
?場景復(fù)雜多變:大促期間主要分為作戰(zhàn)指揮、慶功會、公關(guān)大屏3類大屏,每類大屏又涉及各種使用場景,在本次大促過程中開門紅后大屏還緊急支持了28H大屏跨0點停數(shù)、615高潮期累計、28H實時訂單累計、618晚宴等場景。
?時間緊任務(wù)重:大屏搭建整體時間范圍在1個月左右,需要完成與業(yè)務(wù)方溝通確認(rèn)細(xì)節(jié)、完成三方接口和三方屏人員質(zhì)量把控以及完善平臺不同場景相關(guān)預(yù)案并確認(rèn)預(yù)案操作人等事項,預(yù)案涉及跨0點停數(shù)、制定大屏限流、代理數(shù)據(jù)源管控、雙流切換、線下斷網(wǎng)停數(shù)、設(shè)備切換等不同場景下團(tuán)隊聯(lián)動演練。
三、技術(shù)創(chuàng)新
基于JDV平臺在大促期間的重要性及上面提到的各種挑戰(zhàn),在大促前期3月底就已梳理規(guī)劃對平臺進(jìn)行大促技改事項,主要目的是提升大屏在復(fù)用性、實時監(jiān)控、請求鏈路合理性、QPS管控等方向能力建設(shè),下面將重點介紹平臺在請求狀態(tài)控制和實時監(jiān)控方向的思考及技術(shù)方案。
1、請求狀態(tài)管控
背景:定時刷新和數(shù)據(jù)秒級更新是大屏的一個重要能力,大屏編排過程中能夠靈活指定數(shù)據(jù)刷新間隔,當(dāng)開屏的數(shù)量增加都會提升底層數(shù)據(jù)服務(wù)QPS壓力,考慮到大屏定時發(fā)送請求的特殊性,可以通過控制頁面數(shù)據(jù)請求輪詢機(jī)制,來避免用戶未看大屏情況下定時請求問題。
方案:在該場景下需要通過實現(xiàn)大屏狀態(tài)識別能力來控制大屏是否定時發(fā)送請求,當(dāng)頁面不在當(dāng)前窗口、頁面隱藏、窗口最小化等非活躍狀態(tài)時,識別頁面渲染實例狀態(tài)動態(tài)控制對服務(wù)端發(fā)送請求機(jī)制,通過該方案在一定程度上降低大屏對數(shù)據(jù)服務(wù)QPS壓力。
2、大屏實例監(jiān)控
背景:JDV平臺是基于編排能力搭建大屏,在系統(tǒng)監(jiān)控上除了需要接入各種泰山平臺監(jiān)控功能外,同時也要解決降低相同大屏請求QPS、確保不同用戶在相同時刻訪問的數(shù)據(jù)一致。為了解決該場景,JDV后端服務(wù)采用代理數(shù)據(jù)源獲取數(shù)據(jù)方式,為了確保數(shù)據(jù)請求準(zhǔn)確無誤需要對大屏渲染實例進(jìn)行實時監(jiān)控,實時了解用戶使用大屏情況、不同用戶同時打開大屏數(shù)量、對數(shù)據(jù)服務(wù)QPS請求壓力等數(shù)據(jù)的呈現(xiàn),基于大屏實時使用情況決定是否需要采取預(yù)案處理。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-lvxXLXxQ-1691381013952)(https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=OTg0MTZkYzVkYTMzZTQyMGRiZjQzYTZmZWU4Y2EyMDcsMTY5MTM3MjQ3MDM1Mg==)]
心跳上報流程
方案:基于以上大屏使用場景,對大屏渲染實例的實時監(jiān)控將是非常非常重要功能,為了方便我們基于大屏實時監(jiān)控進(jìn)行異常預(yù)案決策,在本次618大促前我們已增加了大屏實時監(jiān)控能力,該功能也被我們團(tuán)隊內(nèi)部認(rèn)為是監(jiān)控能力細(xì)化的升級版。具體方案流程如“心跳上報流程”圖所示,對實例監(jiān)控的思路主要是基于socket長連接心跳機(jī)制(它像心跳一樣每隔固定時間發(fā)送一次,以此來告訴服務(wù)器當(dāng)前客戶端還活著)的借鑒,基于socket心跳上報機(jī)制和JDV大屏項目的使用場景通過在頁面前端收集用戶賬號、版本號、IP地址、大屏ID編碼、大屏實例ID、大屏交互參數(shù)、訪問端標(biāo)識等信息,大屏前端組件將相應(yīng)心跳上報參數(shù)統(tǒng)一進(jìn)行維護(hù),在指定的上報時間后將會進(jìn)行心跳上報,同時服務(wù)端接收到心跳信息后與代理數(shù)據(jù)源任務(wù)進(jìn)行關(guān)聯(lián)實時維護(hù)任務(wù)的存活狀態(tài)。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-2tn3gLIi-1691381013952)(https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=ZjRhYWMzMTQzZjNhMjNlNmMyMGMyNjkzN2FiODNiNWQsMTY5MTM3MjQ3MDM1Mw==)]
實時監(jiān)控與預(yù)案聯(lián)動效果
基于心跳上報數(shù)據(jù)為基礎(chǔ),將心跳上報日志信息進(jìn)行分析匯總實時掌握每張大屏當(dāng)前的開屏用戶數(shù)、開屏實例數(shù)、開屏實例數(shù)與預(yù)估峰值占比、任務(wù)創(chuàng)建等信息,具體效果如“實時監(jiān)控與預(yù)案聯(lián)動效果”圖所示,并基于每張大屏異常情況決策是否需要進(jìn)行預(yù)案聯(lián)動處理。
四、技術(shù)保障
JDV平臺為了應(yīng)對各種業(yè)務(wù)場景,除了上面提到的技術(shù)創(chuàng)新方面來保障系統(tǒng)質(zhì)量外,還在大屏視頻錄制、編排輔助工具、跳數(shù)停止更新、跨0點精準(zhǔn)停數(shù)、代理數(shù)據(jù)源任務(wù)等方面分別輔助編排提效以及系統(tǒng)質(zhì)量保障,具體細(xì)節(jié)如下:
1、大屏視頻錄制
背景:JDV 京東視界場景中跨0點停數(shù)及倒計時功能在線下場景使用,即便我們已經(jīng)進(jìn)行了相對完備的解決方案,但還需要每次等到凌晨進(jìn)行功能驗證,將極大消耗團(tuán)隊成員時間和精力。
方案:為更好的對停數(shù)和倒計時功能進(jìn)行驗證,我們通過指定大屏訪問鏈接和時間創(chuàng)建錄制任務(wù),設(shè)計出 JDV 錄屏功能。當(dāng)任務(wù)到達(dá)指定時間后將進(jìn)行大屏錄制,并將錄制的視頻保存儲到OSS,這樣就可以實現(xiàn)對指定時間的大屏進(jìn)行錄制。在這套錄制系統(tǒng)的配置下,我們通過視頻回放進(jìn)行功能測試和驗證,確保了大屏停數(shù)和倒計時功能準(zhǔn)確性,極大減少了成員時間和精力的消耗,保障了618慶功宴停數(shù)場景的順利完成。
2、編排輔助工具
背景:JDV京東視界場景中需求變化頻繁,我們需要對大屏內(nèi)容進(jìn)行相應(yīng)的調(diào)整,而且需要保證極快的響應(yīng),在極端場景下還需要對大屏布局進(jìn)行重構(gòu),由于大量編排配置調(diào)整后需要快速進(jìn)行交付使用,所以需要解決需求修改后能高效確認(rèn)配置的正確性,避免修改錯誤影響正常使用。
方案:為減少重復(fù)工作提高響應(yīng)效率,我們開發(fā)出一些工具提高在大屏編排過程中的工作效率,具體如下:
1.JDV-Relay 瀏覽器插件,實現(xiàn)一鍵復(fù)制 Relay 元素尺寸、位置、樣式、屬性等配置信息,可以直接將其粘貼到大屏中,可以一鍵粘貼完成配置,將之前10多項的配置節(jié)省到一次復(fù)制粘貼中,極大減少了配置的時間,提高了搭屏的效率。
2.JDV 批量組件修改功能,可以搜索大屏中匹配的組件,并進(jìn)行統(tǒng)一的修改,可一次修改批量同步操作相關(guān)組件需求變更。
3.JDV DIFF工具,在大屏搭建過程中為保障配置的正確性,我們建立了更改通知機(jī)制,一旦發(fā)布后的大屏需要修改,我們將采用DIFF工具對新舊版本的配置進(jìn)行比對,并針對改動內(nèi)容標(biāo)記凸顯出來,快速識別其中改動內(nèi)容確保改動的正確性。
3、跳數(shù)停止更新
背景:因為大屏數(shù)據(jù)秒級刷新,在當(dāng)前使用場景和分布式微服務(wù)場景下,任何跨時間周期、服務(wù)或網(wǎng)絡(luò)抖動等問題在大屏上都能被用戶感知影響系統(tǒng)穩(wěn)定性,造成用戶體驗差數(shù)據(jù)不準(zhǔn)確等問題。
方案:JDV采用未獲取新數(shù)據(jù)不更新數(shù)據(jù)機(jī)制,利用該機(jī)制解決偶發(fā)性抖動造成跳數(shù)問題,確保JDV大促依賴的10多個團(tuán)隊幾十個數(shù)據(jù)接口整個鏈路服務(wù)返回統(tǒng)一狀態(tài)碼,通過對錯誤或異常狀態(tài)返回狀態(tài)碼進(jìn)行區(qū)分,實現(xiàn)對數(shù)據(jù)是否更新準(zhǔn)確控制。
4、跨0點精準(zhǔn)停數(shù)
背景:大屏展示某個累計周期統(tǒng)計數(shù)據(jù),在線下慶功會場景需要在周期結(jié)束最后一秒進(jìn)行停數(shù)。大屏涉及零售、科技、物流等集團(tuán)多業(yè)務(wù)線幾十?dāng)?shù)據(jù)接口方,接口實現(xiàn)邏輯、接口協(xié)議、部署方式等都不統(tǒng)一,并且系統(tǒng)時間理論上不能保證百分之百無差異,如果不能精確停數(shù)會導(dǎo)致數(shù)據(jù)變小、跳0等突變情況,如果停數(shù)異常將造成重大事故。
方案:停數(shù)問題核心就是精準(zhǔn)和穩(wěn)定平衡關(guān)系,精準(zhǔn)主要指數(shù)據(jù)是否能無限接近獲取最后一秒真實值,穩(wěn)定是指能不能100%停到下個累計周期開始之前。因為最后一秒是臨界點也是突變點,我們通過監(jiān)控系統(tǒng)時間偏差和各接口TP99,經(jīng)過多次演練和測試驗證,我們最終設(shè)定一個毫秒級兼顧精準(zhǔn)和停數(shù)穩(wěn)定的時間點。
5、代理數(shù)據(jù)源任務(wù)
背景:大屏秒級刷新機(jī)制,是前端組件定時固定間隔發(fā)起批量數(shù)據(jù)請求,這個機(jī)制情況下會隨著開屏數(shù)量增加,對底層數(shù)據(jù)服務(wù)請求QPS線性增長。
方案:我們通過分析發(fā)現(xiàn)大多數(shù)大屏請求具有共性,不同人打開同一個屏,看到往往是同一份數(shù)據(jù)?;谶@個特性,我們實現(xiàn)了代理數(shù)據(jù)源功能,對不同人開屏請求進(jìn)行合并,在后臺生成一個查詢?nèi)蝿?wù)定時獲取數(shù)據(jù),將數(shù)據(jù)寫入緩存,大屏直接查詢緩存中的數(shù)據(jù),從而避免多個相同請求對DB或底層數(shù)據(jù)服務(wù)造成查詢壓力。
五、總結(jié)&反思
基于本次618大促JDV平臺支持大促過程中的表現(xiàn),共從大促總結(jié)、能力沉淀、待提升項3個方向也進(jìn)行了相應(yīng)總結(jié)和反思。
1、大促總結(jié)
針對這次大屏在大促期間能快速響應(yīng)完美支持大促場景,通過提前識別大促技改、系統(tǒng)多場景預(yù)案、技術(shù)方案上的創(chuàng)新、ISV人員介入、真實場景演練以及底層PaaS化和配置化能力快速響應(yīng)緊急需求等密切相關(guān)。在大促前能提前規(guī)劃和識別出根本問題,遇到難點能夠通過采用創(chuàng)新方案,精準(zhǔn)識別出技改功能點,在系統(tǒng)保障機(jī)制等方面起到了非常關(guān)鍵的作用。具體細(xì)節(jié)如下:
?識別大促技改:主要在大促前期研發(fā)已經(jīng)識別出歷來大促過程中的痛點,通過對大屏組件升級、QPS請求管控、代理數(shù)據(jù)源任務(wù)實時管控等功能上的優(yōu)化調(diào)整,全面提升大屏搭建效率和降低對底層的訪問壓力,提升系統(tǒng)健壯性及擴(kuò)展能力。
?多場景預(yù)案:為保障大屏滿足各場景下都能穩(wěn)定運(yùn)行,基于用戶訪問限制、跨0點停數(shù)、數(shù)據(jù)雙流切換、斷網(wǎng)停數(shù)、大屏管控切換、視界硬件設(shè)備切換等都有相應(yīng)操作預(yù)案,并針對作戰(zhàn)指揮、京東視界、公關(guān)大屏場景進(jìn)行停數(shù)和預(yù)案演練,同時在跨0點特殊場景下,借助錄屏工具定時執(zhí)行實現(xiàn)對跨夜節(jié)點場景上對人力資源的釋放,提升開發(fā)及備戰(zhàn)效率。
?技術(shù)創(chuàng)新方向:過去大屏只有系統(tǒng)層級上的監(jiān)控能力,對用戶實時訪問大屏情況不能及時進(jìn)行監(jiān)控,考慮到大屏項目的重要性及配置化的特殊性,本次大促對大屏設(shè)計了心跳上報的能力,通過大屏心跳檢測實時掌握用戶訪問大屏情況以及系統(tǒng)壓力,并結(jié)合相關(guān)預(yù)案出現(xiàn)異常情況快速進(jìn)行操作。
?高效響應(yīng)需求:大屏搭建前提前識別大屏搭建工作量巨大而公關(guān)屏數(shù)量占了一半以上,為解決大量公關(guān)屏搭建工作本次公關(guān)屏通過數(shù)據(jù)脫敏組織人員培訓(xùn)引入3個ISV人員主導(dǎo)進(jìn)行公關(guān)屏的搭建,高效解決大屏搭建效率。同時大促過程中借助大屏強(qiáng)大的配置化和底層PaaS化搭建大屏能力,每次有緊急需求都能快速支持,過程中共支持了28H大屏跨0點停數(shù)、615高潮期累計、28H實時訂單累計、618晚宴等場景需求,為公司高層在大促期間快速決策起到保駕護(hù)航的作用。
2、能力沉淀
基于本次大促過程遇到的問題共性及能力復(fù)用的思考,JDV平臺項目中相關(guān)功能也能進(jìn)行復(fù)用,以下功能將實現(xiàn)項目賦能提升其他項目的開發(fā)效率。
?實例實時監(jiān)控:本次大促增加的心跳上報和基于上報日志搭建大屏實時監(jiān)控功能,剛好可以補(bǔ)齊目前我們系統(tǒng)中更精細(xì)化的實時監(jiān)控能力,通過沉淀為可統(tǒng)一復(fù)用能力后方便我們基于用戶實時監(jiān)控進(jìn)行異常預(yù)案聯(lián)動確保大促穩(wěn)定性保障。
?代理數(shù)據(jù)源:對相同用戶請求進(jìn)行合并,在后臺生成查詢?nèi)蝿?wù),以降低對依賴數(shù)據(jù)服務(wù)層的請求壓力,從而避免由于用戶量增加造成對數(shù)據(jù)服務(wù)和DB查詢壓力,避免觸發(fā)底層限流等場景使用。
?錄屏任務(wù)服務(wù):當(dāng)系統(tǒng)需要跨0點停數(shù)、倒計時功能驗證時,為確保在跨0點場景做到真實驗證而又無需人員每次等到指定時間點,通過指定時間段自動錄屏后續(xù)進(jìn)行回放驗證等方式,避免大促期間人員經(jīng)常凌晨驗證釋放人員精力提升工作效率。
?編排配置DIFF:隨著開發(fā)提效的逐步實踐各系統(tǒng)的編排配置能力也將逐步提升,在頻繁的配置修改過程中,為保障配置的正確性,各自系統(tǒng)也將越來越需要配置變更通知機(jī)制,將配置DIFF工具能力形成復(fù)用,對新舊版本的配置進(jìn)行 DIFF 比對,提升功能修改的高效驗證也將變得越來越重要。
3、待提升項
同時在本次大促中JDV平臺也存在不足需要在后續(xù)工作中逐步進(jìn)行提升,主要體現(xiàn)在溝通成本高、標(biāo)準(zhǔn)規(guī)范統(tǒng)一等方面上,后續(xù)也將基于本次大促過程中遇到的問題逐步完成項目在更多方向的數(shù)字化能力建設(shè)。
?溝通成本高:由于大促期間涉及各方向人員主要有業(yè)務(wù)方、產(chǎn)研測以及三方接口及三方大屏對應(yīng)的產(chǎn)研等人員,期間大屏共涉及86張各團(tuán)隊配合過程中各種大小事都需要及時溝通確認(rèn),出現(xiàn)這些問題的原因都是由于需求變更調(diào)整沒有統(tǒng)一在JDV平臺數(shù)據(jù)化造成的,需要先收集到文檔再由大屏搭建人員調(diào)整編排引發(fā)的,在這樣的情況下需求調(diào)整越多溝通成本也就越高。后續(xù)將逐步規(guī)劃抽取需求變更共性,當(dāng)修改文案、數(shù)字等配置內(nèi)容時相關(guān)業(yè)務(wù)方或產(chǎn)品能直接在JDV平臺進(jìn)行錄入調(diào)整,調(diào)整后又能立馬查看效果實現(xiàn)大屏編排中期也能可見即可得能力。
?標(biāo)準(zhǔn)規(guī)范統(tǒng)一:為降低大屏搭建過程中出問題概率和提升溝通效率,涉及各方依賴項在性能要求、壓測文檔、停數(shù)控制、信息收集反饋等方向上都需要更加的規(guī)范,目前各方接口人輸出結(jié)果時間及要求讓JDV大屏多團(tuán)隊協(xié)作方向上也能沉淀出一套完整模版,甚至在每次大促過程中各接口人和研發(fā)等角色都能收到各自需要完成事項的XBP流程,按照流程標(biāo)準(zhǔn)輸出待辦事項等。
最后平臺發(fā)展也希望有更多的建議,大家如果在系統(tǒng)編排等方向上有更好的思路和建議,也可以聯(lián)系我們讓JDV發(fā)揮更大的價值!
作者:京東零售 劉衛(wèi)程
來源:京東云開發(fā)者社區(qū)