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


































