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

魅族架構(gòu)師胡成元 剖析魅族應(yīng)用商店架構(gòu)

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

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

【作者簡介】

[[149915]]

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

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

服務(wù)化框架

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

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

服務(wù)分為兩類,一類是基礎(chǔ)服務(wù),該類型服務(wù)不依賴其他服務(wù),業(yè)務(wù)邏輯簡單,僅提供基礎(chǔ)業(yè)務(wù)邏輯,例如應(yīng)用詳情服務(wù)。另一類是聚合服務(wù),該類聚合多個(gè)基礎(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)實(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ù)支撐。

接口規(guī)范

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

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

#p#

分布式緩存

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

MySQL水平分片

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

水平分層、垂直拓展

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

多機(jī)房部署

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

下載防劫持

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

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

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

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

 
責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2015-09-28 11:32:34

51CTOIT技術(shù)周刊

2015-09-22 16:10:09

魅族

2011-12-06 10:28:12

魅族魅族MX

2013-07-01 13:35:52

2018-06-13 11:36:26

WeexUI渲染魅族

2014-09-02 17:33:05

魅族黃章MX4

2015-09-16 18:28:41

魅族

2013-03-28 09:47:38

魅族MEIZU

2011-03-23 10:18:16

魅友內(nèi)測MStore魅族

2015-10-14 14:32:48

魅族

2009-12-10 14:23:03

M8軟件應(yīng)用商店

2012-04-24 09:24:57

魅族MX

2011-12-15 20:59:01

MX

2020-01-08 17:57:03

移動(dòng)市場品牌資訊

2021-05-28 13:44:02

華為MatePad Pro鴻蒙系統(tǒng)

2023-02-24 15:57:02

魅族FlymeAuto

2020-01-08 15:37:11

移動(dòng)市場品牌資訊

2015-10-19 15:26:59

魅族

2011-12-08 10:57:36

魅族MX魅族
點(diǎn)贊
收藏

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