日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
魅族架構(gòu)師胡成元剖析魅族應(yīng)用商店架構(gòu)

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

創(chuàng)新互聯(lián)建站主營龍港網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),龍港h5微信小程序定制開發(fā)搭建,龍港網(wǎng)站營銷推廣歡迎龍港等地區(qū)企業(yè)咨詢

【作者簡介】

胡成元·魅族Flyme互聯(lián)網(wǎng)架構(gòu)師

胡成元,魅族Flyme互聯(lián)網(wǎng)架構(gòu)師。2011年加入魅族, 一直致力于移動應(yīng)用架構(gòu)研發(fā),提升產(chǎn)品體驗和研發(fā)效率, 目前主要負(fù)責(zé)魅族應(yīng)用商店的研發(fā)架構(gòu)工作。

服務(wù)化框架

平臺早期,規(guī)模小、結(jié)構(gòu)簡單,職責(zé)多、關(guān)系復(fù)雜、變更影響大、擴(kuò)展難。伴隨公司互聯(lián)網(wǎng)轉(zhuǎn)型,用戶規(guī)模高速增長,原有架構(gòu)完全無法很好的服務(wù)大規(guī)模的Flyme用戶。

應(yīng)用分發(fā)平臺主要解決兩個問題,一是如何讓Flyme用戶方便快捷的找到自己需要的應(yīng)用;另一個是如何幫助開發(fā)者簡單迅速的將應(yīng)用推廣給Flyme用戶。基于這兩個基本需求,我們把業(yè)務(wù)邏輯模塊化,單元化。拆分出了應(yīng)用管理、應(yīng)用展示(榜單)、應(yīng)用推薦(個性化推薦)、應(yīng)用搜索等多個服務(wù)。

服務(wù)分為兩類,一類是基礎(chǔ)服務(wù),該類型服務(wù)不依賴其他服務(wù),業(yè)務(wù)邏輯簡單,僅提供基礎(chǔ)業(yè)務(wù)邏輯,例如應(yīng)用詳情服務(wù)。另一類是聚合服務(wù),該類聚合多個基礎(chǔ)服務(wù),形成相對復(fù)雜的業(yè)務(wù)邏輯,例如應(yīng)用搜索服務(wù)。

服務(wù)間采用自研的Kiev框架通訊,當(dāng)然也有成型的開源方案(DUBBO)可以選擇。Kiev底層通訊基于Netty網(wǎng)絡(luò)框架,序列化支持協(xié)議支持Hessian、Protobuffer等,通訊協(xié)議支持TCP、UDP等??蚣芑赯K(ZooKeeper)實現(xiàn)了High Availability與Load Balance策略。服務(wù)調(diào)用時會采樣生成詳細(xì)的調(diào)用鏈,收集產(chǎn)生豐富的服務(wù)狀態(tài)數(shù)據(jù)(Response Time,QPS),為服務(wù)治理提供了詳實有力數(shù)據(jù)支撐。

接口規(guī)范

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

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

#p#

分布式緩存

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

MySQL水平分片

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

水平分層、垂直拓展

如下圖所示。橫向、典型的三層架構(gòu)??v向、以業(yè)務(wù)為驅(qū)動,積累沉淀了眾多技術(shù)規(guī)范、基礎(chǔ)組件,豐富完善了全棧業(yè)務(wù)監(jiān)控。依托完善的監(jiān)控體系,衍生出了相應(yīng)的服務(wù)治理機(jī)制。

消息隊列(MetaQ)

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

多機(jī)房部署

當(dāng)業(yè)務(wù)規(guī)模增長到一定規(guī)模后,機(jī)房的網(wǎng)絡(luò)、帶塊、機(jī)架等相關(guān)資源都會成為瓶頸。所有的雞蛋放在一個籃子里,對產(chǎn)品來說也是一個巨大的風(fēng)險點。為此我們陸續(xù)引進(jìn)了主備機(jī)房、雙活機(jī)房、多地多中心的部署結(jié)構(gòu)。為了動態(tài)調(diào)度機(jī)房間流量,保障用戶就近訪問,故障無縫切換,我們上線了GSLB(Global Server Load Balance)。

下載防劫持

HTTP劫持是指網(wǎng)頁或文件在網(wǎng)絡(luò)節(jié)點間傳輸時,信息被篡改替換的網(wǎng)絡(luò)攻擊行為。近來國內(nèi)各大應(yīng)用分發(fā)平臺都有不同的程度的應(yīng)用下載被劫持現(xiàn)象,我們也難置身事外,為此,我們上線文件下載防劫持方案。

如下圖所示。平臺客戶端在下載應(yīng)用前后根據(jù)應(yīng)用分發(fā)時攜帶的應(yīng)用信息校驗應(yīng)用文件(APK)的合法性,如果文件校驗成功,直接下載并安裝應(yīng)用,否則更換為HTTPS通道繼續(xù)下載應(yīng)用。為防止CDN與源站的網(wǎng)絡(luò)被劫持,CDN回原前后也會校驗文件信息。無論劫持動作是否成功修復(fù),客戶端均會上報操作日志,以便分析改進(jìn)防劫持功能。

業(yè)務(wù)在不斷發(fā)展,架構(gòu)也隨之而演進(jìn)。魅族人也在不斷追尋夢想。

了解更多魅族應(yīng)用商店精彩信息戳這里http://open.flyme.cn。

 


分享標(biāo)題:魅族架構(gòu)師胡成元剖析魅族應(yīng)用商店架構(gòu)
本文網(wǎng)址:http://m.5511xx.com/article/ccccjij.html