5億會(huì)員融合技術(shù)實(shí)踐,力促蘇寧818井噴增長!
原創(chuàng)【51CTO.com原創(chuàng)稿件】隨著蘇寧智慧零售的發(fā)展,現(xiàn)已形成六大產(chǎn)業(yè)布局,分別是:蘇寧云商、蘇寧置業(yè)、蘇寧文創(chuàng)、蘇寧投資、蘇寧體育、蘇寧金融。
六大產(chǎn)業(yè)的資源整合中全產(chǎn)業(yè)會(huì)員融合是重中之重,全產(chǎn)業(yè)會(huì)員融合以蘇寧易購會(huì)員帳號(hào)為基準(zhǔn)進(jìn)行全產(chǎn)業(yè)打通,以達(dá)到一個(gè)帳號(hào)全產(chǎn)業(yè)使用的業(yè)務(wù)目標(biāo),整個(gè)融合依托蘇寧易購現(xiàn)有的基礎(chǔ)技術(shù)、架構(gòu)建設(shè)與現(xiàn)有業(yè)務(wù)系統(tǒng)的服務(wù)能力。
我有幸參與了全產(chǎn)業(yè)會(huì)員融合的項(xiàng)目之一,在這里從基礎(chǔ)架構(gòu)、數(shù)據(jù)流轉(zhuǎn)、營銷、效益等方面展開給大家介紹蘇寧易購、聚力 PPTV、蘇寧體育、龍珠之間的會(huì)員融合技術(shù)實(shí)踐。
我是技術(shù)出身,這里介紹數(shù)據(jù)融合和營銷融合相關(guān)過程中碰到的相關(guān)事項(xiàng),其中將重點(diǎn)介紹營銷融合相關(guān)系統(tǒng)的一些設(shè)計(jì)。
基礎(chǔ)架構(gòu)融合
網(wǎng)絡(luò)
蘇寧易購、聚力目前在全國均是多 IDC 架構(gòu),IDC 數(shù)量不下于 10 個(gè),其中聚力機(jī)房非自建。
全產(chǎn)業(yè)會(huì)員融合項(xiàng)目涉及到的系統(tǒng)眾多,每個(gè) IDC 都會(huì)有若干個(gè)系統(tǒng)部署在里面,系統(tǒng)之間相互調(diào)用經(jīng)常會(huì)跨 IDC,導(dǎo)致 IDC 之間的網(wǎng)絡(luò)拓?fù)湎喈?dāng)復(fù)雜,網(wǎng)絡(luò)鏈路也相當(dāng)長。
解決網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)鏈路過長問題主要是通過拉企業(yè)專線來解決。下圖為城市 A 的 IDC 與其他城市的 IDC 之間的全拓?fù)浣Y(jié)構(gòu),已經(jīng)是相當(dāng)復(fù)雜。
若每個(gè) IDC 之間 Point To Point 的網(wǎng)絡(luò)拓?fù)涓鼜?fù)雜,專線數(shù)量如下圖所示,企業(yè)專線成本也是相當(dāng)高。
基于成本、性能考慮,業(yè)務(wù)系統(tǒng)劃分為兩類:
- 時(shí)效性要求高的業(yè)務(wù)數(shù)據(jù)。
- 對(duì)時(shí)效不敏感且可延遲同步的業(yè)務(wù)數(shù)據(jù)。
基于這兩類業(yè)務(wù)進(jìn)行 IDC 劃分,從而減少拉企業(yè)專線的數(shù)量,同時(shí)同產(chǎn)業(yè)的同類業(yè)務(wù)盡量不跨機(jī)房,對(duì)專業(yè)需求做統(tǒng)一規(guī)劃。這樣在滿足業(yè)務(wù)的 TP90、TP99 情況下也節(jié)省了成本。
基礎(chǔ)組件
約定原則:
- 各產(chǎn)業(yè)現(xiàn)有系統(tǒng)所使用的基礎(chǔ)組件保持現(xiàn)狀。
- 新系統(tǒng)原則上可以使用蘇寧易購基礎(chǔ)組件。
部分公共組件:
部分公共系統(tǒng):
- Redis 高可用架構(gòu)方案以及 Redis client Sedis 組件,支持橫向擴(kuò)展、數(shù)據(jù)遷移、大 KEY 發(fā)現(xiàn)。
- 數(shù)據(jù)庫操作組件 DalClient,兼容 DB2、MYSQL、支持跨 DB 事務(wù),支持注解事務(wù),SQL 解析,靈活的、可自定義分庫分表等功能。
- B2C-FC 是公共流控組件,支持按用戶、URL、業(yè)務(wù)(商品、品類)等維度進(jìn)行流量頻次控制,支持令牌桶算法、用戶軌跡驗(yàn)簽、排隊(duì)、實(shí)時(shí) UA、IP 聚集分析等功能。
- RSF 中間件是一套成熟的 SOA 解決方案軟件套,包括服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn),服務(wù)治理,服務(wù)多版本管理、服務(wù)異常管理、流量控制、服務(wù)降級(jí)、服務(wù)資源隔離等。
易購基礎(chǔ)組件就不例舉了,蘇寧以易購基礎(chǔ)組件在各產(chǎn)業(yè)中為主基調(diào)進(jìn)行使用,避免了后期在各產(chǎn)業(yè)中基礎(chǔ)組件的重復(fù)研發(fā),也推進(jìn)了易購基礎(chǔ)組件的發(fā)展,這樣業(yè)務(wù)推動(dòng)技術(shù),技術(shù)驅(qū)動(dòng)業(yè)務(wù),形成一個(gè)良好的相互推動(dòng)的生態(tài)循環(huán)。
數(shù)據(jù)融合
會(huì)員基礎(chǔ)數(shù)據(jù)融合
會(huì)員基礎(chǔ)數(shù)據(jù)融合中的一帳通項(xiàng)目是全產(chǎn)業(yè)會(huì)員融合中一個(gè)關(guān)鍵項(xiàng)目,重點(diǎn)是各產(chǎn)業(yè)之間會(huì)員的打通。目前現(xiàn)狀如下圖:
易購、聚力 PPTV、龍珠、體育各產(chǎn)業(yè)自身會(huì)員自成體系(會(huì)員帳號(hào)、會(huì)員成長體系),均有各自的會(huì)員帳號(hào)、會(huì)員基礎(chǔ)數(shù)據(jù)、會(huì)員營銷數(shù)據(jù),也有各自的登錄、注冊(cè)門戶。我們的業(yè)務(wù)目標(biāo)是一個(gè)帳號(hào)可登錄六大產(chǎn)業(yè)所有系統(tǒng),且權(quán)益互通融合。
基于目前企業(yè)架構(gòu)及系統(tǒng)架構(gòu),設(shè)立一個(gè)大而全的六大產(chǎn)業(yè)的會(huì)員中心,從數(shù)據(jù)復(fù)雜度、項(xiàng)目周期、成本上來講都是難以接受的,在這種情況下我們把一帳通項(xiàng)目核心邏輯定義在會(huì)員關(guān)系綁定,會(huì)員資料互通的基本原則上。
會(huì)員關(guān)系綁定采用單向系統(tǒng)綁定原則,均由蘇寧易購會(huì)員系統(tǒng)(CMF)綁定,再異步推送綁定關(guān)系給其他產(chǎn)業(yè)的會(huì)員系統(tǒng)。
- 用戶在聚力PPTV注冊(cè),注冊(cè)成功后聚力 PPTV 的會(huì)員系統(tǒng)會(huì)異步把消息推送到易購的會(huì)員系統(tǒng)。
- 易購會(huì)員系統(tǒng)根據(jù)請(qǐng)求數(shù)據(jù)自動(dòng)生成一個(gè)易購帳號(hào),并把聚力 PPTV 帳號(hào)與易購帳號(hào)進(jìn)行關(guān)系綁定,最后易購會(huì)員系統(tǒng)把綁定關(guān)系推送給聚力 PPTV 系統(tǒng),從而實(shí)現(xiàn)了一個(gè)帳號(hào)可登錄易購、也能登錄聚力 PPTV。
- 聚力 PPTV 老用戶在登錄時(shí),會(huì)引導(dǎo)用戶去做關(guān)系綁定操作,還是由易購會(huì)員系統(tǒng)進(jìn)行關(guān)系綁定,并再異步給聚力 PPTV 系統(tǒng)。
- 易購會(huì)員系統(tǒng)具備綁定關(guān)系、會(huì)員資料補(bǔ)發(fā)能力。
數(shù)據(jù)一致性:
- 用戶資料數(shù)據(jù)一致性由各產(chǎn)業(yè)會(huì)員系統(tǒng)定時(shí)發(fā)起一致性檢查請(qǐng)求與對(duì)帳功能,類似事物消息的最終一致性。
安全:
- 涉及會(huì)員敏感信息(會(huì)員資料),與用戶端交互通信協(xié)議均采用 HTTPS+Token 驗(yàn)證。
- 接入蘇寧易購的風(fēng)控系統(tǒng),并建立特定的風(fēng)控模型,防撞庫、防刷、防 CC 攻擊等。
營銷融合
營銷融合是基于上面的會(huì)員數(shù)據(jù)融合后獲取數(shù)據(jù),依靠用戶基本數(shù)據(jù)與采集用戶行為數(shù)據(jù)進(jìn)行精準(zhǔn)化營銷。
對(duì)于蘇寧易購來講,營銷融合在閉環(huán)營銷平臺(tái)都已經(jīng)是支持的,各產(chǎn)業(yè)的融合帶來的挑戰(zhàn)是數(shù)據(jù)量、特征量、計(jì)算量等維度變化(針對(duì)原有模型增加特征)等挑戰(zhàn)。
整體邏輯架構(gòu)
我們先看整體邏輯架構(gòu)圖:
精準(zhǔn)營銷平臺(tái)分離線營銷(Offline Marketing)、實(shí)時(shí)營銷(Real Time Marketing)。
實(shí)時(shí)營銷的總體結(jié)構(gòu)是實(shí)時(shí)采集蘇寧易購、PPTV、體育等各端各渠道的數(shù)據(jù),基于大數(shù)據(jù)實(shí)時(shí)計(jì)算的能力實(shí)時(shí)對(duì)數(shù)據(jù)分析、聚集、特征抽取計(jì)算進(jìn)行精準(zhǔn)營銷,再依賴精準(zhǔn)、可靠、快速觸達(dá)的消息觸達(dá)系統(tǒng)進(jìn)行消息推送。
消息推送系統(tǒng)目前支持微信、Push、Email、SMS、站內(nèi)信 5 種類型的消息。
隨著 PPTV、體育業(yè)務(wù)數(shù)據(jù)的融合到系統(tǒng),每天業(yè)務(wù)上的消息推送量呈上千萬的增長,同時(shí)對(duì)推送時(shí)間要求更是在秒級(jí)以內(nèi)。
比如:體育賽事結(jié)果的推送,都要求秒級(jí)以內(nèi)完成,從賽事結(jié)果的出來,到通過計(jì)算用戶基本數(shù)據(jù)與行為數(shù)據(jù)來確認(rèn)哪些特征的用戶需要推送此次賽事結(jié)果,全部都是在秒級(jí)內(nèi)完成。
同時(shí) 818、雙 11 這樣的大促期間,發(fā)送的消息總量達(dá)到幾億條消息,這對(duì)觸達(dá)系統(tǒng)在設(shè)計(jì)上滿足這么大的消息量處理與保證時(shí)效性都具有很大挑戰(zhàn)。
觸達(dá)系統(tǒng)
下面是觸達(dá)系統(tǒng)的整體邏輯架構(gòu)圖:
我們整個(gè)系統(tǒng)的設(shè)計(jì)原則就是任何模塊越簡單越好,當(dāng)然簡單并不代表缺少功能和邏輯。在外部數(shù)據(jù)來源、各模塊功能上都基于簡單原則設(shè)計(jì)。
觸達(dá)系統(tǒng)為了保證其性能,我們?cè)谠O(shè)計(jì)過程中聚焦在消息發(fā)送上,不對(duì)消息進(jìn)行組裝、發(fā)送額度等業(yè)務(wù)處理。
吞吐量與數(shù)據(jù)源
觸達(dá)系統(tǒng)只接受來自按渠道+平臺(tái)劃分的 kafka topic 數(shù)據(jù),這方面保證了觸達(dá)系統(tǒng)的消息來源的單一性,同時(shí)觸達(dá)系統(tǒng)也不對(duì)外提供任何協(xié)議的服務(wù)。
使用 kafka 也解決了與數(shù)據(jù)來源系統(tǒng)的耦合,在設(shè)計(jì)上每個(gè) kakfa topic 的 partition 均按支持 2 萬 TPS 設(shè)計(jì)。
每個(gè)渠道+平臺(tái)對(duì)于消息量、消息時(shí)效性要求是不一樣的,按 topic 來劃分?jǐn)?shù)據(jù)源方便于與按 kafka topic 降級(jí)和服務(wù)器擴(kuò)展,即能滿足量不大的服務(wù)容量需求,也能保證大容量需求的業(yè)務(wù)場景同時(shí)不至于浪費(fèi)服務(wù)器。
渠道隔離與降級(jí)
每個(gè) JVM 實(shí)例只會(huì)接受一個(gè) kafka topic 的消息,這樣就能輕松做到按 kafka 進(jìn)行資源隔離,防止了相互之間的影響而可能引起的雪崩。
JVM 實(shí)例與 kafka topic 關(guān)系維護(hù)在統(tǒng)一配置平臺(tái)同時(shí)支持 JVM 實(shí)例與 kafka topic 的映射關(guān)系支持熱切換,在整個(gè)切換過程 JVM 監(jiān)聽線程池會(huì)停止對(duì) kafka topic 的監(jiān)聽,消息處理線程、消息回執(zhí)線程池均會(huì)停止工作,直到新的 topic 相關(guān)的線程池被拉起。
先停止監(jiān)聽線程池工作,再等待消息處理線程池、消息回執(zhí)線程池處理完所有 Task 后再切換,整個(gè)系統(tǒng)各模塊之間通信采用事件監(jiān)聽模式進(jìn)行交互:
- 降級(jí)支持按 topic 降級(jí)、流量控制降級(jí)、按速率降級(jí)(在消息監(jiān)聽模塊中使用)實(shí)現(xiàn)了消息方按一定的速率(速度可配,可隨時(shí)更改)從 kafka partition 中取出數(shù)據(jù)(使用的是令牌桶算法)。
營銷執(zhí)行平臺(tái)
營銷執(zhí)行平臺(tái)基于營銷事件、營銷標(biāo)簽、用戶特征計(jì)算符合條件的用戶,使用 ES 做數(shù)據(jù)聚合分析、排重、標(biāo)簽篩選等。
依靠 Hbase、Hive、DB2 等對(duì)數(shù)據(jù)存儲(chǔ)持久化,基于用戶畫像、用戶標(biāo)簽等做離線的用戶需求特性化分析、預(yù)測(cè),使用 Spark、Storm 基于用戶屬性模型、行為模型等做實(shí)時(shí)預(yù)測(cè)與營銷。
小集群大規(guī)模
用戶特征基本數(shù)據(jù)、營銷標(biāo)簽數(shù)據(jù)、排重?cái)?shù)據(jù)等數(shù)據(jù)總量達(dá)到月度十億以上,均在 ES 大集群里,分 30 個(gè)小的 ES 集群,每個(gè)集群為 5 個(gè) Shard,形成一個(gè)大的 ES 集群。
從架構(gòu)上解決了單索引量大與查詢時(shí)跨多 shards 后數(shù)據(jù)聚集到單 ES 實(shí)例導(dǎo)致此 ES 宕機(jī)等問題,同時(shí)提升了響應(yīng)時(shí)間。用戶數(shù)據(jù)由用戶唯一標(biāo)識(shí)進(jìn)行路由來決定落在哪個(gè)小集群,路由規(guī)則借鑒了 Redis 的 slots 解決方案。
離線營銷 JVM 搶占
離線營銷由運(yùn)營人員在各營銷門戶創(chuàng)建營銷活動(dòng),離線營銷活動(dòng)特點(diǎn)是計(jì)算數(shù)據(jù)量大,當(dāng)多活動(dòng)同時(shí)跑時(shí)可能會(huì)出現(xiàn)多活動(dòng)路由到同一 ES 小集群里會(huì)瞬間對(duì)此 ES 集群造成大沖擊。
基于此情況,設(shè)計(jì)了一個(gè)基于 ZK 鎖搶占 JVM 設(shè)計(jì) ,確保一個(gè) ES 小集群同時(shí)間只有一個(gè)活動(dòng)任務(wù)計(jì)算。
效益展望
“一賬通”實(shí)行后,多平臺(tái)導(dǎo)流效果表現(xiàn)較好。數(shù)據(jù)表明,PPTV 的新增用戶有超過一半會(huì)導(dǎo)流到蘇寧易購,其中有效轉(zhuǎn)化率與易購平臺(tái)本身的轉(zhuǎn)化率相似,產(chǎn)生購買行為。
另外,用戶權(quán)益更加集中,會(huì)員享受服務(wù)更加全面。在擁有更多元、更優(yōu)惠的玩法同時(shí),服務(wù)基本覆蓋衣食住行及文體娛活動(dòng)。
聚力 PPTV 新增注冊(cè)用戶很大比例導(dǎo)流結(jié)合易購新人 199 禮包也成功為聚力導(dǎo)流為易購新增用戶,訂單轉(zhuǎn)化率也增高。
聚力 PPTV 與蘇寧易購實(shí)現(xiàn)線上流量互導(dǎo),跨業(yè)態(tài)導(dǎo)流,產(chǎn)業(yè)間交叉引流,后續(xù)進(jìn)行會(huì)員權(quán)益跨產(chǎn)業(yè)共享互通,其他權(quán)益正在打通中,進(jìn)一步促進(jìn)流量互引。
流量互引后就是全產(chǎn)業(yè)會(huì)員數(shù)據(jù)完全整合,全方面采集會(huì)員各維度數(shù)據(jù),用大數(shù)據(jù)、人工智能相關(guān)技術(shù)分析用戶行為、特性,讓我們更了解用戶所需,對(duì)市場進(jìn)行預(yù)測(cè)。
尹堅(jiān)
蘇寧云商IT總部高級(jí)架構(gòu)師
主要負(fù)責(zé)基礎(chǔ)軟件架構(gòu)、系統(tǒng)架構(gòu)建設(shè)和基礎(chǔ)組件技術(shù)研發(fā)工作,同時(shí),參與 818、雙 11 大促保障、系統(tǒng)穩(wěn)定和性能優(yōu)化工作。在蘇寧的任職期間,經(jīng)歷了公司線上線下的快速融合,以及公司技術(shù)能力的飛速發(fā)展,曾參與與負(fù)責(zé)蘇寧易購大聚惠、四級(jí)頁、云信、流控排隊(duì)等系統(tǒng)的架構(gòu)和研發(fā)工作。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】