日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
后端一次給你10萬條數(shù)據(jù)應該如何展示,面試官到底考察我什么?

業(yè)務背景

今天給大家分享一下我們在公司里,面向多個業(yè)務團隊設計的數(shù)據(jù)中心架構,他是如何一步一步的從多業(yè)務團隊數(shù)據(jù)現(xiàn)狀分析開始,然后逐步的演化設計出一個數(shù)據(jù)中心架構來的,希望能幫助大家對現(xiàn)在很流行的數(shù)據(jù)中心這個概念構建起來系統(tǒng)化的認知。

成都創(chuàng)新互聯(lián)是一家網站設計制作、網站設計,提供網頁設計,網站設計,網站制作,建網站,按需網站策劃,網站開發(fā)公司,從2013年成立是互聯(lián)行業(yè)建設者,服務者。以提升客戶品牌價值為核心業(yè)務,全程參與項目的網站策劃設計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。

首先跟大家說一下在沒有數(shù)據(jù)中心的時候,公司里的各個業(yè)務團隊是什么樣的一個狀況,簡單來說,就是不同的業(yè)務團隊有有研發(fā)自己的業(yè)務系統(tǒng),有自己獨立的數(shù)據(jù)存儲,平時就是自己的系統(tǒng)訪問自己的數(shù)據(jù)就夠了。

如下圖 1 所示:

沒引入多業(yè)務數(shù)據(jù)中心時的痛點

但是接著隨著你的系統(tǒng)逐步演進,需求越來越多,越來越復雜,逐步的會出現(xiàn)每個系統(tǒng)都需要訪問其他系統(tǒng)的數(shù)據(jù)的情況。

此時就會出現(xiàn)你每個系統(tǒng)必須開一些數(shù)據(jù)接口,讓別的系統(tǒng)來調用你的接口訪問你的數(shù)據(jù),同時你自己也可能要訪問別人的接口去獲取別人的數(shù)據(jù)。

如下圖 2 所示:

大家看到上圖是什么感覺?是不是覺得很懵逼?因為實際上隨著系統(tǒng)慢慢演化,可能會搞成系統(tǒng) A 開的接口被系統(tǒng) B 和 C 調用,系統(tǒng) B 開的接口被系統(tǒng) A 和 C 調用,系統(tǒng) C 開的接口被系統(tǒng) A 和 B 調用。

這個時候就會出現(xiàn)非常尷尬的場景,就是混亂,沒錯,我敢打賭,你盯著上面的圖看 10s,應該還是很懵逼,沒什么頭緒。

沒錯,所以其實這就是最大的痛點,各個業(yè)務系統(tǒng)其實都是一個數(shù)據(jù)孤島,也就是大家都只能訪問到自己的數(shù)據(jù),然后別人要訪問你的數(shù)據(jù),必須通過你的接口來訪問,最后導致 n 個業(yè)務系統(tǒng)之間錯綜復雜的調用關系,進而導致系統(tǒng)不好維護,運維困難。

數(shù)據(jù)中心的架構設計思想

所以這個問題,我們設計了一個面向多業(yè)務團隊的數(shù)據(jù)中心,這個數(shù)據(jù)中心的架構設計思想,就是通過各個業(yè)務系統(tǒng)的數(shù)據(jù)存儲的變更監(jiān)聽。

比如針對 MySQL 數(shù)據(jù)庫就可以部署 Canal 來監(jiān)聽他的數(shù)據(jù)變更,然后把各個業(yè)務系統(tǒng)的數(shù)據(jù)都拉取到數(shù)據(jù)中臺里統(tǒng)一存儲。

如下圖 3 所示:

接著數(shù)據(jù)中心可以提供兩種數(shù)據(jù)訪問模式,一個是主動查詢接口,一個是被動監(jiān)聽 MQ 通知。

也就是說,對于數(shù)據(jù)中心來說,你各個業(yè)務系統(tǒng)都可以調用數(shù)據(jù)中心的接口,直接獲取你想要的其他業(yè)務系統(tǒng)的數(shù)據(jù),同時數(shù)據(jù)中心也會把各個業(yè)務數(shù)據(jù)的變更通知發(fā)送到 MQ,你也可以訂閱你感興趣的業(yè)務數(shù)據(jù)變更通知。

如下圖 4 所示:

大家看到上面的架構設計圖,是不是瞬間感覺世界一下子就清凈了?

沒錯,其實在互聯(lián)網公司里,對于多業(yè)務系統(tǒng)錯綜復雜的互相調用接口訪問對方數(shù)據(jù),往往會抽出一個統(tǒng)一的公共的數(shù)據(jù)中心來,讓各個業(yè)務系統(tǒng)實現(xiàn)數(shù)據(jù)共享,這樣就可以大幅度的提升我們系統(tǒng)整體架構的整潔性了。

數(shù)據(jù)中心的數(shù)據(jù)存儲架構設計

那么再來給大家講一下數(shù)據(jù)中心架構設計的另外一個關鍵點,就是他的數(shù)據(jù)存儲架構設計。

大家可以想一下,雖然我們的各個業(yè)務系統(tǒng)的數(shù)據(jù)存儲基本都是以 MySQL 為主的,但是我們的數(shù)據(jù)中心的存儲架構其實跟業(yè)務系統(tǒng)的需求是不同的,因為業(yè)務系統(tǒng)一般都是需要利用 MySQL 的事務機制實現(xiàn)復雜的業(yè)務邏輯。

但是對于我們數(shù)據(jù)中心來說,本質僅僅是將數(shù)據(jù)同步過來,然后后續(xù)的重點是對外提供查詢。

這是功能上定位的不同,另外一個不同就是數(shù)據(jù)量級的不同,因為我們的數(shù)據(jù)中心是存儲所有業(yè)務系統(tǒng)的全量數(shù)據(jù)的,所以這就導致了可能各個業(yè)務系統(tǒng)的數(shù)據(jù)量級是百萬級到億級,而我們的數(shù)據(jù)中心他的數(shù)據(jù)量級可能是百億級的,這是很大的一個特點。

如下圖 5 所示:

所以最終我們的數(shù)據(jù)中心存儲架構采用的是 HBase+Elasticsearch 作為核心架構。

也就是說,基于 HBase 把數(shù)據(jù)以 kv 的格式分布式的存儲在多臺服務器上,寫入的時候是 kv 格式,讀取的時候也是 kv 格式,key 就是數(shù)據(jù)的主鍵 id,value 就是一行完整的數(shù)據(jù)。

同時會為各個查詢接口的查詢條件,把要查詢的字段值寫入 ES 里建立查詢索引,讓查詢接口可以基于 ES 中的索引先搜索數(shù)據(jù)主鍵 id,然后根據(jù)數(shù)據(jù)主鍵 id 去 HBase 里查詢完整的一行數(shù)據(jù)。

如下圖 6 所示:

?接下來給大家說一下這套架構下的一些技術難點和問題:

一個是 Hbase 和 ES 之間的一致性問題如何保證,也就是說,萬一寫入 Hbase 成功了,結果寫入 ES 失敗了,此時應該怎么辦?

這個時候其實應該設計一個補償機制,也就是說,寫入 Hbase 成功,而寫入 ES 失敗的時候,需要發(fā)一個補償消息到 MQ 里去,然后下次再重試做一個寫入,實現(xiàn)最終一致性的效果。

如下圖 7 所示:?

?另外一個比較關鍵的生產架構經驗就是多業(yè)務資源隔離,也就是要限制每個業(yè)務方對數(shù)據(jù)中臺接口的訪問量。

否則可能會出現(xiàn)一個問題,就是某個業(yè)務方因為自身業(yè)務激增或者是業(yè)務 bug,導致讀數(shù)據(jù)局中心的接口進行了瞬時高并發(fā)訪問,一下子就把數(shù)據(jù)中心的請求處理線程都打滿了,接著就沒法處理別的業(yè)務系統(tǒng)的查詢請求了。

如下圖 8 所示:?

所以說往往在這種情況下,我們必須在數(shù)據(jù)中心里設計多業(yè)務資源隔離的機制,就是說讓每個業(yè)務系統(tǒng)接入接口訪問的時候,最多就是使用數(shù)據(jù)中心里一部分的線程資源,超過這個閾值,就會限流,不允許這個業(yè)務方過量訪問。

如下圖 9 所示:

數(shù)據(jù)中心的離線數(shù)據(jù)備份和恢復的機制

接著我們還有另外一個重要的架構方案設計,數(shù)據(jù)中心現(xiàn)在是極為重要的是數(shù)據(jù)存儲,因為所有業(yè)務系統(tǒng)的數(shù)據(jù)都會在數(shù)據(jù)中心內部進行匯總存儲,然后各個業(yè)務系統(tǒng)都會強依賴數(shù)據(jù)中心提供的所有數(shù)據(jù)。

所以如果數(shù)據(jù)中心要是出現(xiàn)數(shù)據(jù)存儲故障甚至是數(shù)據(jù)丟失一類的問題,那就會導致很大的麻煩,因此我們設計了離線數(shù)據(jù)備份和恢復的機制。

也就是說,基于大數(shù)據(jù)技術將所有數(shù)據(jù)定時同步一份到 Hadoop 集群中去,如果要是出現(xiàn)了 Hbase 或者 ES 集群的崩潰或者數(shù)據(jù)丟失,此時可以基于 Hadoop 集群中的離線備份數(shù)據(jù),把數(shù)據(jù)恢復到某個時間點,繼續(xù)對外提供服務。

如下圖 10 所示:

總結

好了,今天給大家分享的一個互聯(lián)網公司的多業(yè)務系統(tǒng)數(shù)據(jù)中心架構設計就到這里了,希望大家看了我們的架構設計思路之后,未來在公司里遇到類似問題的時候,能夠有一個整體的設計和解決思路。


當前文章:后端一次給你10萬條數(shù)據(jù)應該如何展示,面試官到底考察我什么?
分享鏈接:http://www.5511xx.com/article/dpghdgi.html