日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

看苏宁易购的运营保障体系如何hold住818大促

發(fā)布時間:2024/4/13 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 看苏宁易购的运营保障体系如何hold住818大促 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

運營質(zhì)量的好壞關(guān)系著用戶的體驗。在日常的業(yè)務運營過程中,商品無貨、頁面或券過期、商鋪下架、視頻無法播放等問題都嚴重影響用戶體驗。如果僅憑運營的人工監(jiān)控和維護來保證服務質(zhì)量,不僅效率低,而且效果也不佳。業(yè)務的需求是驅(qū)使技術(shù)革新的原動力。818 前夕,面向蘇寧易購線上運營質(zhì)量保障的先知平臺正式上線。

\\

先知平臺的設計理念基于“As was foreseen”,正如預想的那樣,線上運營過程的服務質(zhì)量是完全可控制的。先知運營保障體系包括線上故障發(fā)現(xiàn)、應急響應、故障定位、快速恢復,形成完整閉環(huán),能自動化幫助運營修復線上問題。

\\

下面就來看一看先知平臺背后的技術(shù)實現(xiàn)細節(jié)。

\\

\\

圖 1. 基于先知的運營保障體系

\\

基于 Selenium ChomeDriver 的性能監(jiān)控

\\

先知平臺最基本的功能是模擬用戶(帶有真實用戶會話信息)來對頁面進行掃描(爬蟲),在瀏覽和購物的過程中發(fā)現(xiàn)潛在的運營問題。我們將問題分為三類:業(yè)務、功能和性能。業(yè)務類問題包括商品無貨、頁面或券過期、商鋪下架等;功能類問題包括數(shù)據(jù)埋點缺失、風控失效、推薦降級等用戶無法直觀感受,但會產(chǎn)生嚴重后果的問題;性能類問題包括頁面 yslow 評分、狀態(tài)碼錯誤、接口響應超時等問題。

\\

技術(shù)上,我們基于 Selenium ChomeDriver 實現(xiàn)對頁面的掃描,它提供了一套用于 Web 應用程序的自動化爬蟲工具。這里有幾個技術(shù)實現(xiàn)細節(jié)值得分享:

\\
  • ChomeDriver 使用的是 Headless 模式。Headless Chrome 是 Chrome 瀏覽器的無界面形態(tài),可以在不打開瀏覽器的前提下,使用所有 Chrome 支持的特性運行你的程序。相比于 UI 操作,Headless 模式大幅提高了我們的掃描效率和性能。\\t
  • 實現(xiàn)了針對頁面性能數(shù)據(jù)的采集。一般的爬蟲主要是針對功能邏輯的驗證,很少覆蓋頁面和接口的加載性能。我們參考谷歌的 Chrome DevTools Protocol,開啟 ChromeDriver 的 PERFORMANCE 日志,可以收集到頁面交互過程中的頁面(Page)性能和網(wǎng)絡(Network)性能數(shù)據(jù)。\\t
  • 啟用 ChromeDriverService。這完全是出于提高測試性能的考慮。我們知道每次創(chuàng)建一個 ChromeDriver,完成測試以后再釋放掉這個對象,等下次來了一個新的測試,仍要再新建一個對象,如此反復。這相當于每次都打開瀏覽器,再關(guān)閉瀏覽器,再打開瀏覽器。這種實現(xiàn)方式并不利于高并發(fā)大規(guī)模的使用。我們希望如 Java 的池化設計思想一樣,初始化生成多個持久化的瀏覽器對象,后面每次測試都用這些瀏覽器對象進行,這樣會極大提升測試性能,避免了往復創(chuàng)建和關(guān)閉 Chrome 進程的過程。因此引入 ChromeDriverService,ChromeDriverService 是一個管理 ChromeDriver server 的的持久化實例。\
  • 下面是一個簡單 demo:

    \\\// 設置 Chromedriver 路徑\System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY,\ ? ? ? ? ? ? ? ? ? ?System.getProperty(\"user.dir\") + \"/drivers/chromedriver\");\// 啟用 ChromeDrvierService 持有瀏覽器進程\ChromeDriverService chromeDriverService = new ChromeDriverService.Builder()\ ? ? ? ? ? ? ? ? ? ?.withVerbose(true)\ ? ? ? ? ? ? ? ? ? ?.usingAnyFreePort()\ ? ? ? ? ? ? ? ? ? ?.build();\// 啟用 Headless 模式\ChromeOptions options = new ChromeOptions();\options.addArguments(\"--headless\");\\// 開啟 PERFORMANCE 日志采集\DesiredCapabilities cap = DesiredCapabilities.chrome();\LoggingPreferences logPrefs = new LoggingPreferences();\logPrefs.enable(LogType.PERFORMANCE, Level.ALL);\cap.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);\cap.setCapability(ChromeOptions.CAPABILITY, options);\\driver = new ChromeDriver(chromeDriverService, cap);\\

    動態(tài)編譯引擎 DynamicEngine 實時加載監(jiān)控腳本

    \\

    在監(jiān)控的過程中,不同的業(yè)務需要關(guān)注的指標往往不同,且隨著促銷活動的進行不斷變化。比如,之前我們沒有對商品售罄狀態(tài)的監(jiān)控,運營有這樣訴求時,要求我們必須馬上能在生產(chǎn)環(huán)境實現(xiàn)對商品狀態(tài)的監(jiān)控。為了做到監(jiān)控腳本的熱拔插,我們自己實現(xiàn)了動態(tài)腳本編譯引擎 DynamicEngine,能夠?qū)崟r在生產(chǎn)環(huán)境增加監(jiān)控模板,面對需求變化具備靈活的可擴展性。

    \\

    要實現(xiàn) DynamicEngine,基于 JavaCompiler 讀取源碼,編譯診斷,輸出 class。JavaClassObject 負責文件抽象,代表源代碼或者編譯后的 class。ClassFileManager 管理 JavaClassObject,負責 JavaClassObject 的創(chuàng)建和保存位置,根據(jù) Java ClassLoader 的雙親委托模式,我們需要實現(xiàn)自己的 DynamicClassLoader,DynamicClassLoader 繼承自 URLClassLoader,將生成的 class 動態(tài)加載到 JVM。

    \\

    \\

    圖 2. DynamicEngine 類依賴圖

    \\

    Quartz 實現(xiàn)定時任務調(diào)度

    \\

    定時任務的實現(xiàn)基于 Java Quartz,Quartz 是目前最為成熟, 使用最廣泛的 Java 任務調(diào)度框架。Quartz 運行時由 QuartzSchedulerThread 類作為主體,循環(huán)執(zhí)行調(diào)度流程。JobStore 作為中間層,按照 quartz 的并發(fā)策略執(zhí)行數(shù)據(jù)庫操作,完成主要的調(diào)度邏輯。JobRunShellFactory 負責實例化 JobDetail 對象,將其放入線程池運行。LockHandler 負責獲取 LOCKS 表中的數(shù)據(jù)庫鎖。

    \\

    \\

    圖 3. Java Quartz 任務調(diào)度交互圖

    \\

    先知的監(jiān)控模式包括主動監(jiān)控、被動監(jiān)控和漫游監(jiān)控三種。主動監(jiān)控是運營在后臺直接配置的監(jiān)控任務。被動監(jiān)控是與業(yè)務系統(tǒng)打通,提供公共接入 API,運營頁面或者事件生成時自動構(gòu)建監(jiān)控任務。漫游監(jiān)控的設計初衷借鑒了 Chaos Monkey 的思想,運營很難知道下一個出問題的是哪一個活動頁面,既然如此,我們建立了從流量入口頁開始的漫游任務,會不斷爬取鏈接建立任務來發(fā)現(xiàn)問題。不同的監(jiān)控模式的集群是隔離的,避免任務占用資源互相影響。

    \\

    \\

    圖 4. 先知平臺的任務調(diào)度

    \\

    先知智能運營的場景應用

    \\

    前面我們所闡述的監(jiān)控掃描、腳本執(zhí)行和定時任務調(diào)度方案,雖然能幫助運營發(fā)現(xiàn)線上問題,但解決問題仍需要運營的人工干預。在某些情況下,運營并不能及時完成頁面的修復和維護,需要自動化的運營方案。所以,先知不僅僅是一個針對運營的監(jiān)控告警平臺,它還能自動化修復線上問題。

    \\

    智能運營的設計思想是,先知與推薦系統(tǒng)、泰坦系統(tǒng)(運營內(nèi)容管理平臺)打通。如下圖所示,我們以促銷商品售罄問題為例,當先知發(fā)現(xiàn)這個問題后,先判斷這個商品坑位是否允許降級,如果允許,則調(diào)用推薦系統(tǒng),根據(jù)用戶信息推薦出與此款商品偏好類似的替代商品。在通知泰坦系統(tǒng),將替代商品維護到這個坑位。這樣既保證了線上熱點坑位始終有貨可賣,又滿足了用戶的購物偏好,保證了用戶體驗。

    \\

    \\

    圖 5. 先知智能運營的場景應用

    \\

    總結(jié)? ??

    \\

    目前,先知承擔了蘇寧易購所有線上運營頁面和活動的服務保障工作,日監(jiān)控任務 10 萬余個,發(fā)現(xiàn)并解決問題 6400 余個,幫助運營迅速定位線上問題,平均縮短解決問題時間 30 分鐘,顯著提高了易購的線上服務質(zhì)量。未來,蘇寧易購將致力于把先知打造成為開放的一站式線上服務質(zhì)量保障平臺,大規(guī)模監(jiān)控任務并發(fā)執(zhí)行、海量數(shù)據(jù)分析、智慧運營服務化都將成為蘇寧易購新的技術(shù)研究和攻關(guān)課題。

    \\

    作者簡介

    \\

    朱羿全,南京航空航天大學碩士研究生畢業(yè),蘇寧易購消費者研發(fā)中心高級技術(shù)經(jīng)理,主要負責易購各系統(tǒng)架構(gòu)優(yōu)化與大促保障工作。先后參與了易購整站 Https 改造、蘇寧拼購架構(gòu)改造、先知業(yè)務監(jiān)控平臺建設等工作。專注于打造高可靠、高性能、高并發(fā)服務系統(tǒng)的技術(shù)研究。

    總結(jié)

    以上是生活随笔為你收集整理的看苏宁易购的运营保障体系如何hold住818大促的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。