網站首頁 教育 學前教育 精緻生活 飲食養生 命理 科普教育 金融 歷史 影視 數碼 熱門資訊
當前位置:生活百科站 > 精緻生活 > 

微服務架構有哪些框架

欄目: 精緻生活 / 釋出於: / 人氣:1.29W

微服務框架可以分為侵入式和非侵入式兩種,可以以微服務框架Spring Cloud來進行說明,在微服務框架中使用Eruka Server作為服務註冊中心,在微服務單元上配置使用Eureka Client向註冊中心進行註冊,這樣就會帶來一個問題,在舊程式碼或者非JAVA程式碼(比如Python)中使用Spring Cloud微服務框架,這樣就需要對舊程式碼及非JAVA程式碼進行微服務化的改造。。

微服務並沒有一個官方的定義,可以理解為一種架構風格,將一個大型複雜軟體應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。每個微服務僅關注於完成一件任務並很好地完成該任務。在所有情況下,每個任務代表著一個小的業務能力。

以往的應用程式開發中,應用程式都是單體型,在開發和部署上比較方便,但是隨著業務的不斷增加,開發迭代和效能瓶頸等問題都會增加開發難度。微服務正是為解決這一設計問題而應運而生,微服務在將複雜系統切分為數十乃至上百個小服務的同時,這些小服務帶來了語言和框架選擇上的靈活性,縮短應用開發上線時間,可根據不同的工作負載和資源要求對服務進行獨立縮擴容等優勢。

微服務被拆分為多個微服務程序後,程序內的方法呼叫變成了程序間的遠端呼叫,這種變化會帶來分散式系統的一系列問題,比如:

服務的註冊與發現

身份驗證與授權

服務的伸縮控制

反向代理與負載均衡

路由控制

流量切換

日誌管理

效能度量、監控與調優

分散式跟蹤

過載保護

服務降級

服務部署與版本升級策略支援

錯誤處理

從上述微服務存在的技術點可以得到微服務基礎架構的如下關鍵點:

微服務架構有哪些框架

微服務框架可以分為侵入式和非侵入式兩種,什麼是侵入式和非侵入式呢?可以以微服務框架Spring Cloud來進行說明,在微服務框架中使用Eruka Server作為服務註冊中心,在微服務單元上配置使用Eureka Client向註冊中心進行註冊,這樣就會帶來一個問題,在舊程式碼或者非JAVA程式碼(比如Python)中使用Spring Cloud微服務框架,這樣就需要對舊程式碼及非JAVA程式碼進行微服務化的改造。Spring Cloud是侵入式的微服務框架,侵入式微服務架構還存在Dubbo框架。

什麼是非侵入式的微服務框架呢,還是以微服務框架中微服務的註冊來進行說明,比如將服務註冊和服務呼叫從現有服務中抽離出來,形成一個服務代理。該服務代理也叫做Sidecar,負責找到目的服務並負責通訊的可靠性和安全等問題。當服務大量部署時,隨著服務部署的Sidecar代理之間的連結形成了一個如下圖所示的網格,該網格成為微服務的通訊基礎設施層,承載微服務之間的所有流量,被稱為Service Mesh(服務網格)。非侵入式的微服務框架的比較有代表性的方案有Istio和Conduit。

下面對這幾種方案進行一個簡單初步的介紹。

Spring Cloud作為一個微服務的開發框架,包括了很多的元件,其中包括Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius)、Spring Cloud Config、Spring Cloud Bus、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI等。

另外Spring Boot為Spring Cloud提供一個簡化基於Spring的開發環境,可以適應Spring Boot快速開發單個微服務。

Dubbo是一個阿里巴巴開源出來的一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。其核心部分包含:

遠端通訊:提供對多種基於長連線的NIO框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-響應”模式的資訊交換方式。

叢集容錯:提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,地址路由,動態配置等叢集支援。

自動發現:基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

一個關於Spring Cloud和Dubbo很有意思的比喻,使用Dubbo構建的微服務架構就像組裝電腦,各個環節的可選自由度很高,但是最終結果很有可能因為一條記憶體質量不行就點不亮了,但是如果是一個高手,這一切都不存在問題。Spring Cloud就像品牌機,在Spring Source的整合下,做了大量相容性的測試,保證了機器擁有更高的穩定性,但是如果要在使用非原裝元件外配件時,需要對配件足夠的瞭解。