首頁>Club>
6
回覆列表
  • 1 # 後會有期676

    當前各種雲平臺、開放平臺滿天飛,大到網際網路巨頭小到垂直行業頭部有野心的企業,都會有搭建雲平臺的衝動。技術上也有各種高大上滿天飛的,但是最終落地還是需要結合自身實際情況和業務需求,考慮價效比來執行。往往是從豐滿到骨感,引無數大牛盡折腰。好了,不多說了,找個合適的給大家看看

    1、為什麼要構建微服務所有架構方案的提出都是根據應用場景進行最佳化的,想一下5年前,當時springmvc大行其道,使用ssm 構建應用基本上是當時開發界的標準。當時的資料量還沒有進行服務拆分,所有服務構建在一個單體應 用中,所有服務間呼叫是透過http請求實現的。

    但是這種方式構建的應用有幾個最主要的缺點:1、當請求量和併發量上來後,服務擴充套件比較困難,單體應用可以實現叢集化提供服務,但需要配置前 端代理伺服器,如果併發量降下來後又要回收服務資源修改配置。2、所有服務共用一個後端資料庫資源,這樣資料庫就成為了效能瓶頸。3、單體應用一旦掛掉,整個服務將不能提供應用,比如一個服務中提供了下單、瀏覽、註冊服務,如 果所有介面構建在一個服務中,那麼當出現問題時所有功能都不可用。

    以上只是列舉了幾個單體應用可能遇見的問題,微服務提出就可以解決以上出現的問題,將大的服務拆 分成多個小應用提供服務,每個服務單獨使用各自的資料庫資源,這樣就實現了“不把雞蛋放在一個籃 子裡”,當某個服務宕機後,最多那個服務不可用,其他資源還可繼續使用。

    2、微服務的優勢與劣勢微服務拆分最大程度上解耦了應用,但是也一樣帶來了服務的複雜度,比如要查詢使用者的訂單資訊,在 早期的架構方案中,這兩個資料是儲存在一起的,透過一個表關聯查詢出資料;但是在微服務下這樣就 實現不了了,因為這兩個資料是儲存在不同位置,如果要查詢這兩個資料,需要到兩個服務中分別取出 來然後再組裝起來返回給客戶。

    微服務優點:1、服務解耦:不同的服務拆分成不同的應用對外提供服務2、方便擴充套件:如果某個應用併發量很大,對單個應用進行擴容,當請求量將下來後再回收資源3、資料解耦:將不同的應用資料儲存在不同的資料庫中,這樣就實現了資料的水平拆分

    微服務的缺點:1、增加了服務的複雜性,原來一個請求就能獲取到的資料,微服務化後可能需要多次請求才能獲取到 結果2、維護成本增加了,不同的應用需要不同的人員進行維護3、架構複雜,增加了問題排查和定位的難度

    3、docker容器化實現動態伸縮如果只是對服務進行拆分,並沒有體現出微服務的優勢,對於動態擴容和伸縮還是需要人員來參與,所 以雲平臺在構建的時候考慮到了這些,在服務拆分同時,使用的k8s進行服務治理,實現動態擴容和伸 縮,同時使用elk進行日誌收集和分析,這種架構基本實現了我們的業務需求:1、服務和資料拆分,不同服務的資料儲存在不同的資料庫,對資料庫進行水平擴充套件2、日誌統一收集處理,排查和定位問題方便3、使用k8s進行服務編排和治理,可以實現資源動態伸縮,方便管理

  • 中秋節和大豐收的關聯?
  • 阿拉德之怒爆滅者刷圖最強技能怎麼加點?