国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

對(duì)話(huà)架構(gòu)師:魅族應(yīng)用商店云端架構(gòu)實(shí)踐

468122151 / 2440人閱讀

摘要:本文系魅族架構(gòu)師胡成元,在直聘主辦的直聘學(xué)院對(duì)話(huà)架構(gòu)師活動(dòng)上的分享整理,介紹魅族應(yīng)用商店云端架構(gòu)實(shí)踐的總結(jié)。年加入魅族,一直致力于移動(dòng)應(yīng)用架構(gòu)研發(fā),提升產(chǎn)品體驗(yàn)和研發(fā)效率。目前主要負(fù)責(zé)魅族應(yīng)用商店的研發(fā)工作,關(guān)注服務(wù)化分布式大數(shù)據(jù)等領(lǐng)域。

本文系魅族Flyme架構(gòu)師胡成元,在Boss直聘主辦的直聘學(xué)院「對(duì)話(huà)架構(gòu)師」活動(dòng)上的分享整理,介紹魅族應(yīng)用商店云端架構(gòu)實(shí)踐的總結(jié)。

胡成元,Boss直聘「直聘學(xué)院」特邀分享嘉賓。2011年加入魅族,一直致力于移動(dòng)應(yīng)用架構(gòu)研發(fā),提升產(chǎn)品體驗(yàn)和研發(fā)效率。 目前主要負(fù)責(zé)魅族應(yīng)用商店的研發(fā)工作,關(guān)注服務(wù)化、分布式、NoSQL、大數(shù)據(jù)等領(lǐng)域。

以下是分享實(shí)錄整理:《 魅族應(yīng)用商店云端架構(gòu)實(shí)踐 》

魅族應(yīng)用商店作為國(guó)內(nèi)最早的應(yīng)用分發(fā)平臺(tái),積極探索,首創(chuàng)了許多新業(yè)務(wù)模式,比較典型的:應(yīng)用內(nèi)付費(fèi)。受限于早期的封閉生態(tài),其發(fā)展速度緩慢,這并不影響魅族人對(duì)技術(shù)架構(gòu)的追尋與創(chuàng)新。

水平分層、垂直拓展
應(yīng)用商店首先定位于應(yīng)用管理平臺(tái),其次更是應(yīng)用分發(fā)平臺(tái),其典型業(yè)務(wù)場(chǎng)景包括:
?幫助Flyme用戶(hù)找應(yīng)用;
?幫助Flyme開(kāi)發(fā)者推廣、分發(fā)應(yīng)用;
?營(yíng)造維護(hù)應(yīng)用分發(fā)生態(tài)圈。

根據(jù)業(yè)務(wù)場(chǎng)景,不難推導(dǎo)出業(yè)務(wù)架構(gòu)特點(diǎn):
?讀多寫(xiě)少;
?請(qǐng)求量大、并發(fā)高;
?系統(tǒng)要求延時(shí)低;
?數(shù)據(jù)規(guī)??煽?;
?用戶(hù)關(guān)聯(lián)弱。

隨著用戶(hù)規(guī)模的增長(zhǎng),不斷的重構(gòu)、線(xiàn)上運(yùn)行、探索與沉淀,逐步形成了當(dāng)前平臺(tái)的架構(gòu)。如下圖所示。橫向、典型的三層架構(gòu);縱向、以業(yè)務(wù)為驅(qū)動(dòng),積累沉淀了眾多技術(shù)規(guī)范、基礎(chǔ)組件,豐富完善全棧業(yè)務(wù)監(jiān)控。依托完善的監(jiān)控體系,衍生出相應(yīng)的服務(wù)治理機(jī)制。

服務(wù)化框架
平臺(tái)早期,規(guī)模小、結(jié)構(gòu)簡(jiǎn)單。伴隨公司互聯(lián)網(wǎng)轉(zhuǎn)型,用戶(hù)規(guī)模高速增長(zhǎng)、業(yè)務(wù)增多,平臺(tái)關(guān)系復(fù)雜、擴(kuò)展難、開(kāi)發(fā)效率低,原有架構(gòu)完全無(wú)法服務(wù)大規(guī)模的Flyme用戶(hù)。

為了減少業(yè)務(wù)依賴(lài)、提升集群效率、提高開(kāi)發(fā)部署效率,我們基于業(yè)務(wù)典型場(chǎng)景,把業(yè)務(wù)邏輯模塊化,單元化。拆分出了應(yīng)用管理、應(yīng)用展示(榜單)、應(yīng)用推薦(個(gè)性化推薦)、應(yīng)用搜索等多個(gè)服務(wù)。

服務(wù)分為兩類(lèi),一類(lèi)是基礎(chǔ)服務(wù),該類(lèi)不依賴(lài)其他服務(wù),業(yè)務(wù)邏輯簡(jiǎn)單,僅提供基礎(chǔ)業(yè)務(wù)邏輯,例如應(yīng)用管理服務(wù)。另一類(lèi)是聚合服務(wù),該類(lèi)聚合多個(gè)基礎(chǔ)服務(wù),形成相對(duì)復(fù)雜的業(yè)務(wù)邏輯,例如應(yīng)用搜索服務(wù)。

成型服務(wù)化框架能滿(mǎn)足大眾化的需求,如遠(yuǎn)程調(diào)用、動(dòng)態(tài)發(fā)現(xiàn)、負(fù)載均衡、監(jiān)控等,同時(shí)勢(shì)必會(huì)引入一些無(wú)關(guān)的功能,影響性能。外加此類(lèi)產(chǎn)品無(wú)法滿(mǎn)足我們的定制化需求,我們重復(fù)造輪子。

與以往同類(lèi)產(chǎn)品不同,我們做了如下改進(jìn):
?精細(xì)化度量指標(biāo)
?實(shí)時(shí)度量計(jì)算
?系統(tǒng)依賴(lài)、調(diào)用鏈
?無(wú)縫IT系統(tǒng)集成

服務(wù)間采用自研的Kiev框架通訊。Kiev底層通訊基于Netty網(wǎng)絡(luò)框架,序列化支持協(xié)議支持Hessian、Protobuffer等,支持跨語(yǔ)言(C/Java)調(diào)用,通訊協(xié)議支持TCP、UDP等。框架基于ZK(ZooKeeper)實(shí)現(xiàn)了High Availability與Load Balance策略。服務(wù)調(diào)用時(shí)會(huì)采樣,生成詳細(xì)的調(diào)用鏈,收集,產(chǎn)生豐富的服務(wù)狀態(tài)數(shù)據(jù)(Response Time,QPS),為服務(wù)治理提供了詳實(shí)有力的數(shù)據(jù)支撐。

消息隊(duì)列(MetaQ)
消息隊(duì)列是分布式應(yīng)用間交換信息的一種技術(shù)。為了解核心業(yè)務(wù)及輔助業(yè)務(wù),我們引入消息隊(duì)列,將搜索團(tuán)隊(duì)、大數(shù)據(jù)團(tuán)隊(duì)需要的業(yè)務(wù)數(shù)據(jù)定期全量同步,實(shí)時(shí)增量更新。既隔離了業(yè)務(wù)間的強(qiáng)耦合,又保障了數(shù)據(jù)的及時(shí)性。

接口規(guī)范
接口眾多、形式多樣,管理維護(hù)成本高,為了規(guī)范開(kāi)發(fā)流程、便于問(wèn)題跟蹤定位,我們制定了統(tǒng)一的接口規(guī)范。例如接口采用RESTful風(fēng)格,統(tǒng)一接口返回形式,約定每個(gè)業(yè)務(wù)層的錯(cuò)誤編碼,每個(gè)錯(cuò)誤編碼還會(huì)攜帶可選的錯(cuò)誤提示,方便問(wèn)題跟蹤。

安全性也是平臺(tái)不可忽略的一個(gè)關(guān)鍵點(diǎn),基于通用型的原則,我們采用了業(yè)界通用OAuth協(xié)議來(lái)保障接口安全。為了應(yīng)對(duì)異常流量對(duì)系統(tǒng)造成的沖擊,我們給接口層添加了流量控制功能。

分布式緩存
平臺(tái)早期,分發(fā)接口采用DB+本地緩存的方式提供數(shù)據(jù),這種模式DB壓力大、接口吞吐量小、本地緩存更新不及時(shí)。為了解決這些問(wèn)題,我們引入分布式緩存Redis。業(yè)務(wù)接口數(shù)據(jù)全部被緩存到Redis集群,緩存數(shù)據(jù)由定時(shí)任務(wù)主動(dòng)刷新,零穿透,緩存即存儲(chǔ)、存儲(chǔ)即緩存。依托Redis的高性能極大的提高了系統(tǒng)吞吐量。Redis集群先按業(yè)務(wù)場(chǎng)景做垂直切分、再根據(jù)數(shù)據(jù)量做水平分片。業(yè)務(wù)通過(guò)代理(Twemproxy)連接所有分片。 Redis集群基于ZK實(shí)現(xiàn)HA(High Availability),基于定制化腳本實(shí)現(xiàn)線(xiàn)上自動(dòng)擴(kuò)容,這樣既保障了緩存集群的高可用性,又滿(mǎn)足了集群容量自動(dòng)擴(kuò)充的需求。

MySQL水平分片

隨著用戶(hù)規(guī)模增長(zhǎng),單庫(kù)單表已無(wú)法滿(mǎn)足業(yè)務(wù)需求,為此我們將數(shù)據(jù)量大的用戶(hù)數(shù)據(jù)庫(kù)橫向拆分出多個(gè)數(shù)據(jù)庫(kù)。為了降低運(yùn)維成本,我們采用了單實(shí)例多數(shù)據(jù)庫(kù)的部署模式。業(yè)務(wù)層通過(guò)分庫(kù)路由組件透明的訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。當(dāng)單實(shí)例多數(shù)據(jù)庫(kù)的模式無(wú)法支撐當(dāng)前業(yè)務(wù)需求時(shí),通過(guò)更新路由規(guī)則就可以平滑的完成DB擴(kuò)容。

GSLB(Global Server Load Balance)

使用域名提供服務(wù)的互聯(lián)網(wǎng)企業(yè),都無(wú)法避免在有中國(guó)特色的互聯(lián)網(wǎng)環(huán)境中遭遇到各種域名被緩存、用戶(hù)跨網(wǎng)訪(fǎng)問(wèn)緩慢等問(wèn)題。Flyme互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)推出了一種全新的域名解析調(diào)度系統(tǒng):GSLB。GSLB是為移動(dòng)客戶(hù)端量身定做的基于Http(s)協(xié)議的流量調(diào)度解決方案,解決LocalDNS解析異常以及流量調(diào)度不準(zhǔn)。

GSLB的原理非常簡(jiǎn)單,主要有兩步:
A.客戶(hù)端直接訪(fǎng)問(wèn)GSLB服務(wù)接口,獲取業(yè)務(wù)在GSLB服務(wù)中配置的訪(fǎng)問(wèn)最優(yōu)的IP?;谌轂?zāi)考慮,我們保留了運(yùn)營(yíng)商LocalDNS域名解析的方式。
B.客戶(hù)端獲取到的業(yè)務(wù)服務(wù)IP后,直接向此IP發(fā)送業(yè)務(wù)協(xié)議請(qǐng)求。

GSLB將域名解析的協(xié)議由DNS協(xié)議換成了Http(s)協(xié)議,并不復(fù)雜。但是這一轉(zhuǎn)換,卻帶來(lái)了許多收益:

A.解決域名解析異常:用戶(hù)使用Http(s)協(xié)議向魅族GSLB服務(wù)發(fā)起域名解析請(qǐng)求,繞過(guò)了運(yùn)營(yíng)商的LocalDNS,用戶(hù)在客戶(hù)端的域名解析請(qǐng)求將不會(huì)遭受到域名解析異常的困擾,有效預(yù)防DNS劫持。
B.用戶(hù)就近訪(fǎng)問(wèn):GSLB能直接獲取到用戶(hù)IP,結(jié)合魅族自有IP地址庫(kù)以及測(cè)速機(jī)制,可以為用戶(hù)搜索最優(yōu)的IDC服務(wù)節(jié)點(diǎn)。
C.實(shí)現(xiàn)精準(zhǔn)流量調(diào)度:流量異常(周年慶推廣活動(dòng))或機(jī)房故障時(shí),方便快捷的將流量平滑的調(diào)度到附近的機(jī)房,保障服務(wù)的高可用性。

下載防劫持

運(yùn)營(yíng)商HTTP劫持推送廣告的情況相信大家并不陌生,近來(lái)國(guó)內(nèi)各大應(yīng)用分發(fā)平臺(tái)都有不同的程度的應(yīng)用下載被劫持現(xiàn)象,我們也難置身事外,為此,我們上線(xiàn)文件下載防劫持方案。

如下圖所示。應(yīng)用商店在分發(fā)應(yīng)用時(shí),會(huì)同時(shí)分發(fā)應(yīng)用文件的摘要等相關(guān)信息,客戶(hù)端下載獲取到應(yīng)用文件(Apk)后,會(huì)計(jì)算并比對(duì)文件的摘要,以此來(lái)判別文件是否被修改或替換。如果文件比對(duì)失敗,則更換為HTTPS通道繼續(xù)下載應(yīng)用。為防止CDN與源站的網(wǎng)絡(luò)被劫持,CDN回源前后也會(huì)校驗(yàn)文件信息。

除了比對(duì)應(yīng)用文件的摘要,我們還會(huì)比對(duì)文件的大小、包名(Android應(yīng)用的唯一標(biāo)識(shí))、版本號(hào)等信息。針對(duì)APK下載場(chǎng)景,生產(chǎn)環(huán)境我們主要使用文件大小和包名來(lái)做校驗(yàn)。

有些游戲應(yīng)用文件比較大,如熱門(mén)游戲《植物大戰(zhàn)僵尸》大小在100M左右、熱門(mén)網(wǎng)絡(luò)游戲《夢(mèng)幻西游》大小在300M左右。如果全量計(jì)算文件摘要這樣會(huì)比較耗時(shí)、耗資源,對(duì)硬件資源有限的手機(jī)來(lái)說(shuō)是一筆很大的開(kāi)銷(xiāo),勢(shì)必會(huì)影響到用戶(hù)的操作體驗(yàn)。為此,針對(duì)大文件,我們采用了部分比對(duì)文件摘要的方式。

應(yīng)用商店應(yīng)用數(shù)量大、渠道不單一,為了預(yù)防分發(fā)信息異常造成大面積應(yīng)用下載失敗事故,云端新增了動(dòng)態(tài)關(guān)閉、調(diào)整客戶(hù)端判別邏輯的機(jī)制。

無(wú)論劫持動(dòng)作是否成功修復(fù),客戶(hù)端均會(huì)上報(bào)操作日志,借助大數(shù)據(jù)的優(yōu)勢(shì),我們可以分析改進(jìn)防劫持效果。

[對(duì)話(huà)架構(gòu)師] 是Boss直聘「直聘學(xué)院」旗下對(duì)話(huà)系列沙龍。聯(lián)合業(yè)內(nèi)明星創(chuàng)業(yè)公司&合作伙伴聯(lián)合發(fā)起,為架構(gòu)師、運(yùn)維、程序員、開(kāi)發(fā)者等舉辦的技術(shù)沙龍,旨在通過(guò)大咖干貨分享,構(gòu)建純業(yè)內(nèi)、純技術(shù)交流圈,共同推動(dòng)技術(shù)進(jìn)步。此次活動(dòng)參與對(duì)象主要是CTO,架構(gòu)師,運(yùn)維和技術(shù)經(jīng)理等。
主辦:Boss直聘(互聯(lián)網(wǎng)招聘第一APP)
特別支持社區(qū):SegmentFault

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/65390.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<