818 汽車(chē)狂歡數(shù)據(jù)看板業(yè)務(wù)架構(gòu)圖
在整個(gè) 818 活動(dòng)中,TiDB 被用作 818 汽車(chē)狂歡節(jié)數(shù)據(jù)看板的核心數(shù)據(jù)庫(kù)。易車(chē)準(zhǔn)備了兩套 TiDB 集群,和實(shí)時(shí)計(jì)算的主備方案一一對(duì)應(yīng)。業(yè)務(wù)研發(fā)通過(guò)雙寫(xiě)的方式把數(shù)據(jù)同時(shí)寫(xiě)入兩個(gè)集群,一部分業(yè)務(wù)的查詢(xún)連接集群 1 ,另一部分業(yè)務(wù)的查詢(xún)連接集群 2,當(dāng)其中一個(gè)集群出現(xiàn)問(wèn)題,應(yīng)用端就會(huì)切換到另外一個(gè)集群。兩個(gè) TiDB 集群都是部署了 3 個(gè) TiDB Server、3 個(gè) PD Server、6 個(gè) TiKV 節(jié)點(diǎn)、2 個(gè) TiFlash 節(jié)點(diǎn)。此外,還準(zhǔn)備了 4 臺(tái)機(jī)器做擴(kuò)容以免數(shù)據(jù)量暴漲集群支撐不了。
最終,易車(chē) 818 汽車(chē)狂歡節(jié)期間數(shù)據(jù)量達(dá)到了平時(shí)的 10 倍以上,在直播最后蔡徐坤出場(chǎng)時(shí),數(shù)據(jù)庫(kù)流量更是直接翻了四倍,差點(diǎn)啟用事先準(zhǔn)備好兜底用的一鍵擴(kuò)容方案。在整個(gè)過(guò)程中,818 汽車(chē)狂歡數(shù)據(jù)看板業(yè)務(wù) SQL 999 始終控制在 8ms 以?xún)?nèi),SQL 99 在 3ms 左右,QPS 達(dá)到 62k。
紅包搖一搖業(yè)務(wù)架構(gòu)圖
同時(shí),TiDB 也作為容災(zāi)方案被應(yīng)用在紅包搖一搖業(yè)務(wù)中,避免由于業(yè)務(wù)流量暴漲引起 MySQL 不可用的情況。一旦發(fā)生不可用,業(yè)務(wù)方可以直接將數(shù)據(jù)庫(kù)切換到 TiDB。TiDB 在整個(gè)業(yè)務(wù)中需要作為數(shù)據(jù)源、實(shí)時(shí)計(jì)算維表和實(shí)時(shí)計(jì)算結(jié)果存儲(chǔ)引擎三個(gè)角色。TiDB 通過(guò) TiCDC 將數(shù)據(jù)實(shí)時(shí)推送到 Kafka 中,為了保證 TiCDC 穩(wěn)定高效,易車(chē)為 TiDB 中的每個(gè)庫(kù)創(chuàng)建了一個(gè) TiCDC 任務(wù),將數(shù)據(jù)實(shí)時(shí)推送到指定 Kafka 中,然后 Flink 負(fù)責(zé)將同一個(gè) TOPIC 中的屬于不同庫(kù)表的數(shù)據(jù)進(jìn)行解析,分流到庫(kù)表對(duì)應(yīng)的 TOPIC 中,提供給實(shí)時(shí)計(jì)算業(yè)務(wù)使用。實(shí)時(shí)計(jì)算任務(wù)消費(fèi) Kafka 中的 TiDB 數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯計(jì)算,同時(shí)還需要從 TiDB 中查詢(xún)對(duì)應(yīng)的維度數(shù)據(jù),最終將計(jì)算結(jié)果再輸出到 TiDB 中。
高速增長(zhǎng)的挑戰(zhàn):技術(shù)棧統(tǒng)一
大促的極限場(chǎng)景總能發(fā)現(xiàn)一些平時(shí)注意不到的問(wèn)題,在易車(chē)的高速發(fā)展中,很多業(yè)務(wù)為了快速迭代、迅速上線,引入了非常多的技術(shù)棧,如 Lambda 、 Kappa 等大數(shù)據(jù)架構(gòu),Kylin、Druid、Clickhouse 等實(shí)時(shí)數(shù)倉(cāng)等等。但易車(chē) DBA 團(tuán)隊(duì)卻只有 6個(gè)人,管理如此多的技術(shù)棧無(wú)疑是一個(gè)很大的挑戰(zhàn)。
統(tǒng)一技術(shù)棧成為易車(chē) DBA 團(tuán)隊(duì)的最佳選擇,借著這次大促的機(jī)會(huì),易車(chē)希望用 TiDB 上線取代 Kylin、Druid、Clickhouse ,簡(jiǎn)化技術(shù)棧,DBA 團(tuán)隊(duì)也能將注意力放回專(zhuān)職工作上。
TiDB 的 HTAP 架構(gòu)是一個(gè)混合了交易型事務(wù)和分析處理的融合架構(gòu),由于都是在同一個(gè)架構(gòu)、同一套數(shù)據(jù)中,解決了易車(chē)實(shí)時(shí)數(shù)倉(cāng)數(shù)據(jù)流延遲的問(wèn)題。數(shù)據(jù)不用再?gòu)?OLTP 數(shù)據(jù)庫(kù)復(fù)制出來(lái),經(jīng)過(guò)漫長(zhǎng)的 ETL 清洗等過(guò)程進(jìn)入分析工具。
而 TiDB 對(duì) MySQL 的完美兼容,對(duì) DBA 和開(kāi)發(fā)者意味著不需要做什么改變,只要會(huì) SQL 就能使用。在以往應(yīng)用 Hadoop 或 Spark 時(shí),由于學(xué)習(xí)成本比較高,對(duì)使用造成了一定壁壘。
經(jīng)此一役,易車(chē)的業(yè)務(wù)方對(duì) TiDB 平添了許多期待與信任。未來(lái),易車(chē)的廣告、媒體平臺(tái)、網(wǎng)站、投放數(shù)據(jù)、廣告效果都希望能夠?qū)崟r(shí)看到,田震希望借用 TiDB 覆蓋易車(chē)整個(gè)混合技術(shù)棧的場(chǎng)景,與其他數(shù)據(jù)流進(jìn)行打通,這些都需要 TiDB HTAP 對(duì)實(shí)時(shí)數(shù)倉(cāng)進(jìn)行支持。
大促對(duì)于企業(yè)而言,除了支持業(yè)務(wù)創(chuàng)新,也是一次對(duì)自身技術(shù)架構(gòu)的大練兵和全鏈路演練。通過(guò)大促的極致考驗(yàn),企業(yè)的 IT 架構(gòu)、組織流程、人才技能都獲得了大幅提升。而在大促中的經(jīng)驗(yàn)和思