成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

揭秘百億級云客服實(shí)時(shí)分析架構(gòu)是怎么煉成的?

原創(chuàng)
開發(fā) 架構(gòu)
淘寶、天貓每天有上億個(gè)不同的買賣家進(jìn)行對話,產(chǎn)生百億條聊天記錄。對客服聊天記錄的實(shí)時(shí)分析是實(shí)現(xiàn)智能客服的基礎(chǔ)。本文主要分享云客服的整體架構(gòu),包括實(shí)時(shí)分析的場景、架構(gòu)、技術(shù)難點(diǎn),以及為何要從 NoSQL 遷移時(shí)序數(shù)據(jù)庫和使用心得。

[[196732]]

【51CTO.com原創(chuàng)稿件】淘寶、天貓每天有上億個(gè)不同的買賣家進(jìn)行對話,產(chǎn)生百億條聊天記錄。對客服聊天記錄的實(shí)時(shí)分析是實(shí)現(xiàn)智能客服的基礎(chǔ)。本文主要分享云客服的整體架構(gòu),包括實(shí)時(shí)分析的場景、架構(gòu)、技術(shù)難點(diǎn),以及為何要從 NoSQL 遷移時(shí)序數(shù)據(jù)庫和使用心得。

網(wǎng)購催生客服職能轉(zhuǎn)型

如下圖,是國內(nèi)客服體系發(fā)展歷程。

國內(nèi)客服體系經(jīng)歷了傳統(tǒng)客服、Web 端客戶和云客服三個(gè)發(fā)展階段。

傳統(tǒng)客服以呼叫中心為主,主要以電話客服為主,人力投入成本高,部門之間溝通少,效率低下。

隨著互聯(lián)網(wǎng)發(fā)展,出現(xiàn)了 Web 端客服,它打破單一的電話形式,客服可同時(shí)接待多個(gè)用戶,降低了客戶等待時(shí)間和客服成本。

到了移動互聯(lián)網(wǎng)時(shí)代,用戶觸達(dá)渠道越來越多,比較碎片化。聚合各渠道的反饋,并且保證各渠道一致的用戶體驗(yàn)是提升企業(yè)服務(wù)質(zhì)量的重要手段,因此出現(xiàn)了云客服。

多渠道和智能化是云客服最明顯的兩大特征。客服可以借助云客服平臺,統(tǒng)一處理來自企業(yè)官網(wǎng)、APP、公眾號等所有渠道的用戶咨詢,從而保證服務(wù)質(zhì)量的統(tǒng)一。

同時(shí)通過機(jī)器人、智能提示、營銷提示等智能插件,提升客服的工作效率,讓客服具備銷售的屬性。

如下圖,是客服職能轉(zhuǎn)型前后對比圖。

 

云客服的整體架構(gòu)

如下圖,是云客服的整體架構(gòu)。

 

云客服架構(gòu)自上而下可分為客戶接觸點(diǎn)、接入層、應(yīng)用層和支撐層。

客戶接觸點(diǎn)。官網(wǎng)、商城、微信、微博等客服接觸點(diǎn)會通過統(tǒng)一的接入網(wǎng)關(guān)接入到客服工作臺。

接入層。接入層首先會識別用戶身份,例如:VIP 還是普通用戶,新用戶還是老客戶。不同的用戶會自動路由到不同客服組進(jìn)行服務(wù)。這些客服組在應(yīng)答技巧、推薦內(nèi)容等方面都有所差別。

應(yīng)用層。應(yīng)用層是整個(gè)云客服的核心,包括客服工作臺、智能插件和客服管理三部分。客服通過客服工作臺統(tǒng)一接待各種渠道的在線和電話咨詢,并根據(jù)用戶反饋形成各種工單分發(fā)給其他部門處理。

智能插件以給客服提能為主,例如:自動催單,物流、訂單查詢等,能大大減少客服的重復(fù)工作。以及智能的組合銷售、營銷活動提示,能大大提高客服的引導(dǎo)銷售額。

客服管理包括知識庫、質(zhì)檢、績效考核、坐席、客情等,是客服主管或企業(yè)老板經(jīng)常使用的功能。

支撐層。這層包括知識庫、智能語義分析引擎、呼叫云、IM云、待客云和軌跡云等基礎(chǔ)設(shè)施。

云客服的智能插件、客服管理等核心功能都依賴于聊天記錄的實(shí)時(shí)分析能力,下面介紹下實(shí)時(shí)分析的場景、架構(gòu)和關(guān)鍵技術(shù)問題。

實(shí)時(shí)分析場景

如下圖,是云客服實(shí)時(shí)分析的幾個(gè)場景

熱點(diǎn)問題分析。及時(shí)分析出用戶反饋?zhàn)疃嗟膯栴},優(yōu)先解決。特別在新品上線或大促時(shí),作用很大。

實(shí)時(shí)接待。實(shí)時(shí)展示接待情況,哪個(gè)客服沒按時(shí)上線,哪個(gè)店鋪接待不過來,都一目了然。

實(shí)時(shí)質(zhì)檢。及時(shí)發(fā)現(xiàn)客服是否按規(guī)定交流,如是否用尊稱,話術(shù)上是否達(dá)到要求等。還可分析客戶情緒、滿意度,及時(shí)介入客服與客戶的爭執(zhí)。對于客服人員變化頻繁、新客服多等情況很有用。

實(shí)時(shí)分析架構(gòu)

如下圖,是云客服的實(shí)時(shí)分析架構(gòu)。

數(shù)據(jù)采集

數(shù)據(jù)采集階段主要注意幾個(gè)點(diǎn):

  • 盡可能采集更多的數(shù)據(jù)。“巧婦難為無米之炊”,以客服場景為例,除了聊天記錄外,結(jié)合交易數(shù)據(jù)可以算出客服引導(dǎo)的成交量,結(jié)合瀏覽軌跡可以猜測用戶的問題。
  • 盡量降低性能消耗和實(shí)時(shí)性,這里可以用批量發(fā)送、日志不落磁盤直接發(fā)送等方式。

數(shù)據(jù)通道

數(shù)據(jù)通道主要是消息隊(duì)列和 API 兩種方式,消息隊(duì)列傳輸原始數(shù)據(jù),API 提供輔助的原數(shù)據(jù)。使用消息隊(duì)列時(shí)要注意

  • 發(fā)送時(shí)注意消息體的大小,每種消息隊(duì)列的***消息體大小都不一樣,例如:RocketMQ 推薦 4KB。打包成***大小再發(fā)送可以***程度提高系統(tǒng)吞吐。
  • 消費(fèi)時(shí)是批量消費(fèi)還是單條消費(fèi)。一般數(shù)據(jù)量大,對精確度要求不高時(shí)用批量消費(fèi)方式,可提高節(jié)點(diǎn)處理能力,但相對的,失敗補(bǔ)償和事務(wù)性比較難保證。
  • 記錄消息軌跡。有些消息隊(duì)列可通過 MsgID 查詢消息的生產(chǎn)端、消費(fèi)端、消費(fèi)次數(shù)等,方便丟消息或出現(xiàn)重復(fù)時(shí)進(jìn)行排查。
  • 支持消息重置。當(dāng)消費(fèi)端故障或發(fā)布時(shí),往往要將消費(fèi)的偏移(offset)設(shè)置到之前的某個(gè)時(shí)間點(diǎn),重新消費(fèi)。

實(shí)時(shí)計(jì)算引擎

常用的有 Storm、Spark 或 Flink,基本環(huán)節(jié)如下

  • 解析器(Parser)和過濾器(Filter),盡早把不需要的數(shù)據(jù)過濾掉,為后續(xù)的環(huán)節(jié)減輕壓力。
  • 分詞器(Segmenter),分詞的關(guān)鍵是詞庫的積累,不同行業(yè)、不同場景會有不同的術(shù)語,詞庫直接影響 Solver 的質(zhì)量。
  • 解答器(Solver),有三個(gè)功能。一是問題歸類,如商品咨詢、物流咨詢、活動咨詢等。二是話術(shù)檢驗(yàn),如:敏感詞、禮貌用語等。三是情感分析,分析客戶當(dāng)前的情緒。
  • 規(guī)則引擎(Rule Engine),根據(jù)前面分析和結(jié)合運(yùn)營規(guī)則,計(jì)算業(yè)務(wù)指標(biāo)。用規(guī)則引擎有兩個(gè)好處,一是方便計(jì)算一些比較復(fù)雜的指標(biāo),如:復(fù)購率。

二是支持動態(tài)修改,像調(diào)整某個(gè)參數(shù)的權(quán)重這種需求,可即時(shí)修改生效,不用發(fā)布。

  • 指標(biāo)聚合器(Metric Aggregator),對算好的基礎(chǔ)數(shù)據(jù)進(jìn)行聚合,如按時(shí)間,一分鐘、一小時(shí)把數(shù)據(jù)進(jìn)行匯總、求評價(jià)或方差等。

數(shù)據(jù)存儲

聚合后的數(shù)據(jù)會存儲到Hbase。如下圖,是基礎(chǔ)的Hbase存儲結(jié)構(gòu)。

Rowkey = metric name + timestamp + tags

Rowkey 由指標(biāo)名、時(shí)間戳和標(biāo)識這個(gè)數(shù)據(jù)的一組鍵值對構(gòu)成,后面會介紹如何對這種存儲進(jìn)行優(yōu)化。

實(shí)時(shí)分析的常見問題

做海量數(shù)據(jù)的實(shí)時(shí)分析、聚合時(shí),都會遇到一些問題,本文主要挑選數(shù)據(jù)傾斜、窗口切分和海量時(shí)間線這三個(gè)最常見的問題來解析。

問題一,數(shù)據(jù)傾斜

數(shù)據(jù)傾斜,也叫數(shù)據(jù)熱點(diǎn)。如下圖,上面是 MapReduce 過程,下面是流處理過程。

不管是 MapReduce 還是流處理,總有某類數(shù)據(jù)量會多于其他數(shù)據(jù),如上圖綠色三角比其他圖形多。實(shí)際生產(chǎn)中熱點(diǎn)數(shù)據(jù)的量可能是其他數(shù)據(jù)的幾十倍。

這種數(shù)據(jù)熱點(diǎn)的出現(xiàn),會導(dǎo)致消息列隊(duì)堆積,處理節(jié)點(diǎn)內(nèi)存過高,出發(fā) Full GC 或 OOM,***是工作節(jié)點(diǎn)的不停 crash 和遷移,從而加劇這種現(xiàn)象。

那么,如何應(yīng)對呢?常見方法有:

  • 盡可能細(xì)粒度 hash。以聊天記錄示例,如果以用戶為最小粒度,一個(gè)用戶的所有聊天都 hash 到一起,那有些賬號的數(shù)據(jù)會很多,就容易出現(xiàn)熱點(diǎn)。

如果進(jìn)一步細(xì)分,以聊天為最小粒度,把 A 和 B 聊天為一類、A 和 C 為另一類,這樣數(shù)據(jù)就會均勻很多。

  • 特殊 key 處理。大部分應(yīng)用場景都會有一些標(biāo)桿用戶,其數(shù)據(jù)量是其他用戶的幾十倍,針對這類客戶可以白名單的方式,進(jìn)行特殊處理。
  • 二段 Merge。把一次性的 Merge 操作劃分成多次。一開始不要求把最終的結(jié)果統(tǒng)計(jì)出來,可先做局部的 Merge,再做***的 Merge,這樣可緩解數(shù)據(jù)熱點(diǎn)的問題。但相應(yīng)的工作節(jié)點(diǎn)會變多,成本變高。

問題二:窗口切分

流式計(jì)算本質(zhì)上是把源源不斷的數(shù)據(jù),按時(shí)間區(qū)間把數(shù)據(jù)給劃分開,這個(gè)動作叫窗口切分。如下圖,按照 5 秒或 15 秒進(jìn)行切分:

常見計(jì)算窗口有三種:固定窗口、滑動窗口和會話窗口。如下圖:

  • 固定窗口。按照工作節(jié)點(diǎn)的系統(tǒng)時(shí)間,將數(shù)據(jù)按固定周期切開,之間沒有重疊,這是理想狀態(tài)。

事實(shí)上,由于分布式系統(tǒng)在系統(tǒng)時(shí)間、網(wǎng)絡(luò)延時(shí)方面都會存在差異,工作節(jié)點(diǎn)收到數(shù)據(jù)的數(shù)據(jù)是亂序的,接收時(shí)間不能視作數(shù)據(jù)產(chǎn)生的時(shí)間。

  • 滑動窗口。固定統(tǒng)計(jì)周期上加一個(gè)滑動時(shí)間,等滑動時(shí)間到了再保存結(jié)果,關(guān)閉窗口。例如:如果預(yù)估數(shù)據(jù)一般延遲 10s,那滑動時(shí)間可以設(shè)置為 15s,15s 之后才到達(dá)的數(shù)據(jù)。

可以考慮拋棄或者進(jìn)行特殊的處理邏輯。滑動窗口要緩存的數(shù)據(jù)比固定窗口多,窗口關(guān)閉、狀態(tài)存儲、恢復(fù)也要復(fù)雜一些。

  • 會話窗口。不以時(shí)間,而是以某些事件作為窗口的劃分,就是會話窗口。以聊天為例,A 和 B 聊天,A 說了一句或多句話后,只有當(dāng) B 回復(fù)時(shí),才形成一個(gè)窗口。這時(shí)可以得出響應(yīng)時(shí)間、答問的次數(shù)等各類指標(biāo)。

總體來說,處理難度上,Tumbling(固定) < Sliding(滑動) < Session(會話)。固定窗口只是理想的狀態(tài),用于實(shí)際場景會導(dǎo)致數(shù)據(jù)不精確。實(shí)際使用還是滑動窗口的多。

問題三:海量時(shí)間線

什么是時(shí)間線(Series)呢?數(shù)據(jù)按各時(shí)間區(qū)間統(tǒng)計(jì)出一個(gè)個(gè)的值,按時(shí)間進(jìn)行展示就形成一條線,故稱作時(shí)間線。如下圖,三種圖案形成三條時(shí)間線。

海量時(shí)間線是指當(dāng)統(tǒng)計(jì)維度變多時(shí),時(shí)間線個(gè)數(shù)會指數(shù)上漲!還是以聊天指標(biāo)為例。

假設(shè),每天有十萬個(gè)買家和一萬賣家聊天,每個(gè)聊天要統(tǒng)計(jì) 10 個(gè)指標(biāo),時(shí)間線的個(gè)數(shù)就是 10w *1w * 10 = 100 億!

時(shí)間線的增加會導(dǎo)致存儲的結(jié)果數(shù)據(jù)大大增加,存儲成本升高、查詢速度下降。因此,我們選擇了時(shí)序數(shù)據(jù)庫代替原來的 Hbase。

從 NoSQL 到時(shí)序數(shù)據(jù)庫

面對實(shí)時(shí)聚合技術(shù)復(fù)雜、成本高等情況,是否有優(yōu)化方案?時(shí)序數(shù)據(jù)庫(TSDB)應(yīng)運(yùn)而生。

什么是 TSDB?它是專門存儲按時(shí)間順序變化(即時(shí)間序列化)的數(shù)據(jù),支持原始數(shù)據(jù)查詢和實(shí)時(shí)聚合,支持?jǐn)?shù)據(jù)壓縮,適合海量數(shù)據(jù)處理。

以下是比較熱門的開源解決方案:

  • InfluxDB。短小精悍,社區(qū)很活躍。但集群方案收費(fèi),適合小規(guī)模用戶。
  • OpenTSDB。基于 Hbase 的成熟的 TSDB 方案,被很多大公司使用。
  • Druid。基于時(shí)間的 OLAP 列存數(shù)據(jù)庫,長處在于 AD-Hoc 的聚合/分析。

如下圖,是基于 NoSQL 預(yù)計(jì)算方案與基于時(shí)序數(shù)據(jù)庫(TSDB)的實(shí)時(shí)聚合方案優(yōu)劣對比。

對比來看,TSDB 的方案能比較好的解決聚合邏輯復(fù)雜、存儲成本高的問題,但由于聊天數(shù)據(jù)量大,查詢慢的問題也比較嚴(yán)重。下面將以 OpenTSDB 為例,介紹其存儲優(yōu)化的原理和查詢優(yōu)化的經(jīng)驗(yàn)。

OpenTSDB 存儲優(yōu)化原理

存儲優(yōu)化前,Rowkey = metric name + timestamp + tags 的組合。Rowkey 很長且重復(fù)很多。如下圖。

OpenTSDB 存儲優(yōu)化原理歸納如下

  • 為每個(gè) metric、tag key 和 tag value 都分配一個(gè) UID,縮短 row key。
  • 將同一小時(shí)的數(shù)據(jù)存儲到不同的列中,減少 key-value 數(shù)。
  • 使用偏移量時(shí)間戳,進(jìn)一步減少列名占用空間。

優(yōu)化后的存儲結(jié)構(gòu)如下圖所示。

 

OpenTSDB 查詢優(yōu)化經(jīng)驗(yàn)

OpenTSDB 查詢優(yōu)化可以從使用端和服務(wù)端兩個(gè)方面著手:

使用端優(yōu)化:

  • 合理拆分 Metric,這類似于關(guān)系型數(shù)據(jù)庫的分表,將相關(guān)性不強(qiáng)的屬性拆開到多個(gè) Metric 中,減少時(shí)間線個(gè)數(shù),查詢時(shí)自然會有所改進(jìn)。
  • 注意 Tag 順序,要將經(jīng)常指定維度往前排,最明顯的就是用戶 ID,查詢數(shù)據(jù)時(shí)指定用戶 ID 進(jìn)行范圍查詢,Hbase Scan 的數(shù)量就會少很多。
  • 并發(fā)查優(yōu)化,OpenTSDB 默認(rèn)是一個(gè)小時(shí)數(shù)據(jù)存一行,那么可以按小時(shí)把請求拆分,如查最近二十四小時(shí)就拆成二十四個(gè)請求進(jìn)行查詢,整體的響應(yīng)時(shí)間就會有所改進(jìn)。

服務(wù)端優(yōu)化:

  • 預(yù)集合,先把慢查詢撈出來,提前去執(zhí)行查詢。查詢之后,把結(jié)果存儲到另一個(gè)地方。預(yù)集合可以由使用方或服務(wù)端實(shí)現(xiàn)。

服務(wù)端實(shí)現(xiàn)對使用方更友好,正如 InfluxDB 的 Continuous Queries 功能。

  • 降精度,OpenTSDB 默認(rèn)是每一秒存一個(gè)數(shù)據(jù),假設(shè)只要一分鐘,是不是可以每一分鐘只記一個(gè)數(shù)據(jù),那樣數(shù)據(jù)量就會變成原來的六十分之一。

但是要注意降精度后,使用端要將這一分鐘的數(shù)據(jù)先自行累加然后再發(fā)送到服務(wù)端,因?yàn)?Hbase 是默認(rèn)覆蓋而不進(jìn)行累加。

  • 結(jié)果緩存,這里不是指請求級別的結(jié)果緩存,而是要做到 Metric 或者時(shí)間線結(jié)果的緩存。

以上內(nèi)容由編輯王雪燕根據(jù)李灼靈老師在 WOTA2017 “大數(shù)據(jù)應(yīng)用創(chuàng)新”專場的演講內(nèi)容整理。

[[196735]]

李灼靈 (千慕)

阿里巴巴資深研發(fā)工程師

在浙江大學(xué)計(jì)算機(jī)系本碩畢業(yè)后,加入阿里巴巴。先后在共享、商家事業(yè)部負(fù)責(zé)過 TAE、APM、客服 SAAS、千牛問答等產(chǎn)品的架構(gòu)和研發(fā)工作,通過 Docker、流式計(jì)算、APM、SAAS 化等技術(shù)推動開放平臺的架構(gòu)升級。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2017-12-22 21:42:24

游戲語音游戲?qū)崟r(shí)語音

2014-08-25 10:11:18

極致用戶體驗(yàn)

2010-12-28 10:40:50

admin

2023-03-14 16:23:55

Apache Dor架構(gòu)開發(fā)

2019-04-17 09:36:39

日志系統(tǒng)HDFS

2016-10-31 19:19:20

實(shí)時(shí)分析

2020-05-15 10:28:04

實(shí)時(shí)分析客戶需求CIO

2018-01-30 14:26:49

監(jiān)控應(yīng)用性能管理運(yùn)維管理

2016-06-13 14:38:46

開源Skydive

2018-12-18 15:21:22

海量數(shù)據(jù)Oracle

2012-02-20 09:52:40

IE性能

2022-12-21 18:02:07

架構(gòu)MQ消息中間件

2010-02-06 15:14:36

ibmdw架構(gòu)師

2016-08-31 14:41:31

大數(shù)據(jù)實(shí)時(shí)分析算法分類

2022-09-29 09:08:15

數(shù)據(jù)體系

2021-06-07 10:20:26

實(shí)時(shí)分析IT領(lǐng)導(dǎo)者CIO

2018-07-22 22:36:21

首席信息安全官CISO網(wǎng)絡(luò)風(fēng)險(xiǎn)

2018-09-05 10:14:32

小程序

2011-10-09 09:36:45

項(xiàng)目經(jīng)理
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 成人三级视频在线观看 | 欧美综合国产精品久久丁香 | 日韩精品一区二区三区四区 | 久久亚洲精品国产精品紫薇 | 亚洲国产精品第一区二区 | 黄色一级电影在线观看 | 粉嫩一区二区三区四区公司1 | 国产精品大片在线观看 | 精品一区在线看 | 永久精品 | 亚洲免费福利视频 | 国产精品视频网 | 密室大逃脱第六季大神版在线观看 | 青青草av在线播放 | 麻豆一区二区三区 | 九九99精品| 中文字幕综合在线 | 天天操天天干天天透 | 久久久精品国产 | 久久久精品高清 | 在线国产一区 | 精品免费视频一区二区 | 你懂的免费在线 | 黄色激情毛片 | 欧美jizzhd精品欧美巨大免费 | 一区二区三区不卡视频 | 美女视频.| 西西裸体做爰视频 | 久久精品中文字幕 | se婷婷| 国产在线一区二区三区 | 亚洲精品v| 欧美日本免费 | 国产一区二区三区免费观看在线 | 91精品国产91久久久久青草 | 亚洲精品在线看 | 国产精品一区二区视频 | 欧美一级高潮片免费的 | 亚洲精品美女视频 | 国产欧美一区二区三区在线看 | 亚洲免费在线播放 |