自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從無從下手到見招拆招,蘇寧金融移動端登錄優(yōu)化之道

原創(chuàng)
移動開發(fā) 移動應(yīng)用
古人云:天下之難事必作于易,天下之大事必作于細(xì);意思是說解決難事要從容易解決時去謀劃,做大事要從細(xì)小處做起,軟件工程也是如此。

【51CTO.com原創(chuàng)稿件】古人云:天下之難事必作于易,天下之大事必作于細(xì);意思是說解決難事要從容易解決時去謀劃,做大事要從細(xì)小處做起,軟件工程也是如此。

在登錄優(yōu)化過程中,蘇寧金融秉持“圖難于其易,為大于其細(xì)的思想”,已經(jīng)達(dá)成登錄響應(yīng)時間、成功率及用戶體驗(yàn)的提升。

本文主要從如下幾個方面介紹蘇寧金融移動端登錄優(yōu)化的道和術(shù):

  • 找到登錄優(yōu)化之道
  • 完善系統(tǒng)的監(jiān)測和度量
  • 梳理登錄的每個環(huán)節(jié)
  • 優(yōu)化登錄的各個環(huán)節(jié)

找到登錄優(yōu)化之道

隨著用戶數(shù)量的急劇增長,以及業(yè)務(wù)系統(tǒng)接入數(shù)量的不斷增多,我們經(jīng)常接到用戶的反饋:登錄響應(yīng)慢,登錄被踢等情況。從何處著手解決這個問題,對于項(xiàng)目團(tuán)隊(duì)來說非常困難,感覺如大海撈針。

我們團(tuán)隊(duì)在思考這兩個問題:

  • 登錄異常發(fā)生時,為什么我們需要花費(fèi)大量時間、人力去還原現(xiàn)場?
  • 登錄出現(xiàn)異常后,為什么我們開發(fā)人員***才發(fā)現(xiàn)?

“圖難于其易”,我們想的是應(yīng)該先拋開單個點(diǎn)的優(yōu)化,從容易的地方著手,先收集數(shù)據(jù),追溯用戶使用行為和系統(tǒng)運(yùn)行時快照,完善系統(tǒng)的監(jiān)測和度量,建立端到端全鏈路覆蓋的監(jiān)控系統(tǒng),從而建立全鏈路的數(shù)據(jù)指標(biāo)體系。

“為大于其細(xì)”,然后梳理整個流程各環(huán)節(jié),針對流程中每個細(xì)節(jié)再對癥下藥,各個擊破。

完善系統(tǒng)的監(jiān)測和度量

建立端到端全鏈路覆蓋的監(jiān)控系統(tǒng),我們把監(jiān)控系統(tǒng)分成三個細(xì)小的階段:

  • 客戶端數(shù)據(jù)收集
  • 端到端鏈路打通
  • 網(wǎng)關(guān)與后端微服務(wù)監(jiān)控打通

具體如下圖:

圖 1:端到端的監(jiān)控系統(tǒng)鏈路圖

完善客戶端監(jiān)控采集

客戶端自動收集所有登錄方法的響應(yīng)時間、成功率、異常時系統(tǒng)運(yùn)行時快照信息、用戶訪問軌跡等信息。

當(dāng)發(fā)生網(wǎng)絡(luò)異常時,使用網(wǎng)絡(luò)監(jiān)測小工具,采集相關(guān)網(wǎng)絡(luò)異常數(shù)據(jù),針對異常概率較高的網(wǎng)絡(luò)異常針對性進(jìn)行監(jiān)控。

打通端到端鏈路

客戶端每次網(wǎng)絡(luò)請求時生成全局 uniqueFlag,上傳客戶端監(jiān)控系統(tǒng)同時作為客戶端請求信息傳入 API 網(wǎng)關(guān)系統(tǒng),實(shí)現(xiàn)客戶端與后端全鏈路日志打通。

打通后端各服務(wù)系統(tǒng)監(jiān)控

API 網(wǎng)關(guān)系統(tǒng)與后端服務(wù)系統(tǒng),通過自研 RSF 微服務(wù)調(diào)用框架,每次微服務(wù)調(diào)用,用 traceID 貫穿鏈路上的所有微服務(wù),并收集后端業(yè)務(wù)邏輯、異常堆棧、運(yùn)行時快照等信息日志,異步拋送監(jiān)控系統(tǒng)。

API 網(wǎng)關(guān)系統(tǒng)和單點(diǎn)登錄系統(tǒng)都接入自研秒級監(jiān)控系統(tǒng),并實(shí)現(xiàn)秒級快速反饋系統(tǒng)問題。

[[232896]]

圖 2:移動端登錄秒級監(jiān)控系統(tǒng)大盤

梳理登錄的每個環(huán)節(jié)

蘇寧金融移動端的登錄涉及的系統(tǒng)眾多,本身又處于一個復(fù)雜的硬件和網(wǎng)絡(luò)環(huán)境中,如下圖:

圖 3:蘇寧金融移動端登錄影響因素

這里面涉及的因素很多,包含客戶端、網(wǎng)絡(luò)、后端各系統(tǒng)等等,具體如下:

  • 用戶網(wǎng)絡(luò)狀態(tài)--用戶網(wǎng)絡(luò)是否連接、可用
  • 用戶網(wǎng)絡(luò)質(zhì)量--用戶網(wǎng)絡(luò)接入方式、是不是弱網(wǎng)環(huán)境
  • 客戶端登錄相關(guān)邏輯處理
  • 客戶端 Cookie 管理
  • 運(yùn)營商 DNS 服務(wù)
  • CDN 服務(wù)
  • 網(wǎng)絡(luò)鏈路連接質(zhì)量
  • 后端各系統(tǒng)環(huán)境
  • 后端各系統(tǒng)間調(diào)用
  • 后端各系統(tǒng)登錄相關(guān)業(yè)務(wù)邏輯
  • 后端系統(tǒng) Cookie 管理
  • ...

優(yōu)化登錄的各個環(huán)節(jié)

優(yōu)化網(wǎng)絡(luò)鏈路

建立端到端的全鏈路監(jiān)控之后,我們發(fā)現(xiàn),分析以前難以定位的問題,已經(jīng)不再那么困難了。

表 1:優(yōu)化前登錄響應(yīng)時間

如上圖,從監(jiān)控數(shù)據(jù)看:網(wǎng)絡(luò)耗時明顯太長,證明我們蘇寧金融 App 的網(wǎng)絡(luò)質(zhì)量并不好。

那么,首要是提高網(wǎng)絡(luò)質(zhì)量,有如下幾個方法:

升級 CDN 服務(wù)

由于歷史遺留問題,我們之前的客戶端網(wǎng)絡(luò)庫不支持 SNI,導(dǎo)致接入了不支持 SNI 擴(kuò)展的舊版本加速平臺。舊平臺不僅邊緣節(jié)點(diǎn)少而且覆蓋范圍也小。

客戶端立即更新了支持 SNI 的網(wǎng)絡(luò)基礎(chǔ)庫,并把我們金融 CDN 服務(wù)也切到新的加速平臺。

新平臺對比舊平臺,有了一個質(zhì)的提高,特點(diǎn)有:效率高,節(jié)點(diǎn)多,覆蓋廣,支持 HTTP/2.0。

使用 HTTP/2,多路復(fù)用,加速傳輸

HTTP/2 采用二進(jìn)制幀格式而非文本格式進(jìn)行傳輸,突破了請求并發(fā)數(shù)的限制,能夠?qū)崿F(xiàn)完全的多路復(fù)用,帶來數(shù)據(jù)的傳輸效率和建鏈復(fù)用效益***化。在 3G/4G/Wi-Fi 網(wǎng)絡(luò)下,HTTP2 均提供了***的網(wǎng)絡(luò)性能。

圖 4:HTTP/2.0 加速效果

在實(shí)施了網(wǎng)絡(luò)鏈路優(yōu)化后,查看監(jiān)控數(shù)據(jù)顯示,網(wǎng)絡(luò)鏈接性能平均提升了 200ms,但我們并不是很滿意。

合并網(wǎng)絡(luò)請求,去掉所有的重定向

能否進(jìn)一步優(yōu)化網(wǎng)絡(luò)鏈路?通過鏈路分析,網(wǎng)絡(luò)鏈路涉及到用戶設(shè)備,基礎(chǔ)運(yùn)營商網(wǎng)絡(luò),CDN 廠商,服務(wù)器性能,在網(wǎng)絡(luò)上進(jìn)一步優(yōu)化的難度很大,而提升空間有限。

“圖難于其易”,我們在想,能否減少不確定的網(wǎng)絡(luò)交互,從登錄核心流程調(diào)整進(jìn)行優(yōu)化呢?

通過分析監(jiān)控系統(tǒng)采集的日志,發(fā)現(xiàn)每次客戶端與后端系統(tǒng)均有三次網(wǎng)絡(luò)請求交互(兩次重定向請求),時序圖如下:

圖 5:優(yōu)化前登錄核心流程時序圖

很明顯,我們需要做減法,較容易解決的方案就是減少重定向。通過改造單點(diǎn)登錄系統(tǒng)和 API 網(wǎng)關(guān)系統(tǒng),客戶端與后端系統(tǒng)的三次網(wǎng)絡(luò)請求變?yōu)橐淮尉W(wǎng)絡(luò)請求。

之前客戶端重定向請求改為 API 網(wǎng)關(guān)系統(tǒng)通過 RPC 遠(yuǎn)程服務(wù)調(diào)用其他后端各系統(tǒng)。時序圖如下:

圖 6:優(yōu)化后登錄核心流程時序圖

合并網(wǎng)絡(luò)請求優(yōu)化后,效果令人驚喜。登錄響應(yīng)時間,如下圖:

表 2:優(yōu)化后登錄響應(yīng)時間對比

規(guī)范 Cookie 管理

優(yōu)化結(jié)果很***,但登錄成功率依然不是特別高,結(jié)合監(jiān)控系統(tǒng)分析,主要有以下幾種原因:

  • 各類網(wǎng)絡(luò)錯誤,因?yàn)榈卿泩鼍暗奶厥庑?,?jīng)常出現(xiàn)用戶網(wǎng)絡(luò)異常、網(wǎng)絡(luò)不穩(wěn)定的情況。
  • Cookie 失效或?yàn)榭?,情況一:用戶超過 15 天未使用,用戶登錄 Cookie 正常過期,屬于正常登錄業(yè)務(wù)邏輯。

情況二:非正常 Cookie 失效或?yàn)榭眨ㄟ^分析,主要是由于客戶端和后端多系統(tǒng)的 Cookie 管理混亂導(dǎo)致的,這也是導(dǎo)致登錄被踢的主要原因。

那怎么才能做到更加規(guī)范管理,我們主要從下面幾個細(xì)節(jié)來規(guī)范前后端 Cookie 管理:

規(guī)范后端系統(tǒng) Cookie 管理

后端系統(tǒng)(API 網(wǎng)關(guān)系統(tǒng)、單點(diǎn)登錄系統(tǒng))Cookie 各屬性進(jìn)行規(guī)范設(shè)置,特別是 domain,path,expires 等屬性進(jìn)行統(tǒng)一規(guī)范管理。

規(guī)范客戶端 Cookie 管理,由手動管理改為系統(tǒng)自動管理

客戶端需支持各種業(yè)務(wù)系統(tǒng)的登錄狀態(tài)管理,包含 native 和 H5 等不同形式。

由于每個業(yè)務(wù)系統(tǒng)的差異,Android 之前的設(shè)計是手動處理 Cookie,導(dǎo)致后期維護(hù)成本特別大。

優(yōu)化后,Android 端使用系統(tǒng) framework CookieManager 管理 Cookie,使用 UC 的 CookieManager 存儲 Cookie。如下圖:

圖 7:優(yōu)化后 AndroidCookie 管理

規(guī)范 Cookie 管理后,登陸成功率提升非常明顯。見下圖:

表 3:優(yōu)化后登錄成功率對比

從登錄異常發(fā)生時的大海撈針、無從下手,到問題的快速、準(zhǔn)確定位;從登錄過程中每個環(huán)節(jié)的梳理到登錄流程每一步的優(yōu)化,我們始終秉持“圖難于其易,為大于其細(xì) ”的理念!

結(jié)束語

路漫漫其修遠(yuǎn)兮,吾將上下而求索!經(jīng)過項(xiàng)目團(tuán)隊(duì)的不懈努力,蘇寧金融 App 的登錄更加高效、穩(wěn)定。

然而,以極客的精神打造***物種,追求***體驗(yàn)的腳步從來沒有終點(diǎn)!未來,我們將在監(jiān)控系統(tǒng)智能化、網(wǎng)絡(luò)鏈路深度優(yōu)化、登錄新型交互方式等方向繼續(xù)努力探索,永不停歇!

作者:張旭東、谷裕

簡介:張旭東,蘇寧易購金融研發(fā)中心資深工程師,主要負(fù)責(zé)移動端性能監(jiān)控、性能優(yōu)化相關(guān)工作。有社交、電商、教育、支付、金融等相關(guān)行業(yè) 7 年以上工作經(jīng)歷,對移動互聯(lián)網(wǎng)技術(shù)研發(fā)具有深刻認(rèn)識和豐富經(jīng)驗(yàn)。

谷裕,蘇寧易購金融研發(fā)中心資深服務(wù)端工程師,9 年移動互聯(lián)網(wǎng)開發(fā)工作經(jīng)驗(yàn),擅長服務(wù)端架構(gòu)和規(guī)劃?,F(xiàn)負(fù)責(zé)蘇寧金融移動端網(wǎng)關(guān)架構(gòu)相關(guān)工作,對互聯(lián)網(wǎng)服務(wù)端的規(guī)劃、需求、體驗(yàn)等各個方面都有著深刻、系統(tǒng)性的理解和認(rèn)識。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

 

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2022-07-05 08:23:21

網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2009-10-19 13:57:39

2019-08-27 09:03:48

抽樣技術(shù)數(shù)據(jù)科學(xué)算法

2015-04-18 20:52:28

安全運(yùn)維

2021-02-05 15:54:30

AI

2011-07-12 22:05:42

噴墨打印機(jī)技巧

2018-05-09 14:45:50

蘇寧前端Nodejs

2022-11-16 09:27:58

flexbox左右布局均分布局

2020-02-27 08:00:41

混沌工程系統(tǒng)失控條件

2022-08-12 10:41:57

接口性能優(yōu)化

2016-08-26 21:18:39

蘇寧易購移動開發(fā)

2011-11-30 15:30:50

360手機(jī)防盜

2018-11-07 10:00:00

微服務(wù)Service MesIstio

2024-07-15 09:08:51

源碼debug根節(jié)點(diǎn)

2020-11-02 11:37:15

大數(shù)據(jù)

2017-11-29 09:34:03

MVP蘇寧移動

2022-03-09 18:54:30

HTTP緩存協(xié)議cache

2013-02-20 10:07:29

蘇寧電器蘇寧云商云服務(wù)

2019-01-08 09:34:05

蘇寧金融紅包流量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號