業務開發轉基礎開發,這三種「高可用」架構你會麼?

程式設計一生發表於2019-02-28

一、業務開發與基礎開發的區別

- 劃分方式

    一種將後臺開發細分的方式:前臺開發(業務)、中臺開發(中介軟體、應用基礎服務、PAAS服務、IAAS服務)、後臺開發(運維開發)。一般前臺開發對應於業務開發,中臺開發對應基礎開發,後臺開發對應運維。

- 規模

    基礎開發的目標是解決業務的公共痛點,所以一般資料量、併發量大於業務。就美團來說,一般的基礎服務日呼叫量在十億到千億。因此,高併發、高可用是常規話題。

 

二、三種高可用架構

- 多租戶叢集架構

定義:

    多租戶技術(Multi-tenancy Technology),或稱多重租賃技術,是一種軟體架構技術。它是在探討與實現如何在多使用者公用相同的系統或元件時,仍可確保各使用者間的資料隔離性。

目標:

    按照業務情況分為不同租戶,單個租戶出現問題,不會影響其他租戶。

關鍵功能模組:

  • 租戶管理

  • 許可權管理

  • 資源管理

應用舉例:

   《美團分散式服務通訊框架及服務治理系統OCTO》裡使用appkey作為租戶、許可權和資源劃分的依據來實現多租戶叢集管理。各個公司自己的Kafka叢集也是根據接入業務實現了多租戶叢集管理。

 

- 應用熔斷架構

目標:

    針對混合使用叢集,單個應用的問題可能拖垮整個叢集,單個服務異常情況下,提供熔斷機制,不會由於單個應用影響整個叢集的問題。

常用熔斷條件:

  • 執行緒數過高

    熔斷原因:由於容器化技術的廣泛流行,CPU超售普遍存在。一個業務的異常執行緒會影響其他業務。

  • 大量慢查詢

    熔斷原因:在集中式ES叢集、Redis叢集等場景,由於存在連線數資源共享,一個業務的慢查詢會阻塞其他業務。

  • 呼叫量異常

    熔斷原因:在同步呼叫時,每個呼叫都不釋放執行緒,等待結果返回。一個業務的呼叫量異常可能會拖垮整個叢集。

 

- 立體監控架構

黑天鵝現象:

    非常難以預測的罕見現象,通常會引起連鎖負面反應甚至顛覆。

目標:

    為了從海量監控、報警風暴資料中找到產生影響的「黑天鵝」,立體監控應任而生。

特點:

  • 多維資料模型

  • 在多維度上靈活查詢

  • 多種視覺化圖表及儀表盤支援

 

三、總結

    親身經歷是教育的最好形式。

 

相關閱讀:

程式常用的設計技巧

到底多大才算高併發?

美團分散式服務通訊框架及服務治理系統OCTO

學會用資料說話-分散式鎖究竟可以多少併發?

大話高可用

相關文章