當前位置:維知科普網 >

生活

> 微服務架構有哪些框架

微服務架構有哪些框架

微服務框架可以分為侵入式和非侵入式兩種,可以以微服務框架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的整合下,做了大量兼容性的測試,保證了機器擁有更高的穩定性,但是如果要在使用非原裝組件外配件時,需要對配件足夠的瞭解。

標籤: 架構 框架 服務
  • 文章版權屬於文章作者所有,轉載請註明 https://wzkpw.com/sh/qokl5.html