中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud 組件總結,與Dubbo框架、SpringBoot框架對比分析

發布時間:2020-06-27 07:33:36 來源:網絡 閱讀:421 作者:知了一笑 欄目:編程語言

本文源碼:GitHub·點這里 || GitEE·點這里

一、基礎組件總結

1、文章閱讀目錄

1)、基礎組件

Eureka組件,服務注冊與發現

Ribbon和Feign組件,實現負載均衡

Hystrix組件,實現服務熔斷

Turbine組件,實現微服務集群監控

Zuul組件,實現路由網關控制

Config組件,實現配置統一管理

Zipkin組件,實現請求鏈路追蹤

2)、應用案例

基于Shard-Jdbc分庫分表,數據庫擴容方案

基于SpringCloud實現Shard-Jdbc的分庫分表擴容

3)、后續更新

該案例主要基于SpringCloud2版本,演示微服務在實際開發中的應用。

SpringCloud 組件總結,與Dubbo框架、SpringBoot框架對比分析

<modules>
    <!-- 客戶端接口層 -->
    <module>storey-client-web</module>
    <!-- 公共代碼塊層 -->
    <module>storey-block-code</module>
    <!-- 中間件管理層 -->
    <module>storey-middle-soft</module>
    <!-- 數據 中 心層 -->
    <module>storey-data-center</module>
    <!-- 微服務組件層 -->
    <module>storey-cloud-ware</module>
</modules>

采用版本

  • Spring5+
  • SpringBoot2+
  • SpringCloud2+

2、常用組件概念

  • Eureka組件

Eureka是一種基于REST的服務,主要用于AWS云,用于定位服務,以實現中間層服務器的負載平衡和故障轉移。此服務稱為EurekaServer。客戶端組件EurekaClient,它使與服務的交互變得更加容易。

  • Ribbon和Feign組件

Ribbon是一個客戶端的負載均衡(Load Balancer,簡稱LB)器,它提供對大量的HTTP和TCP客戶端的訪問控制。

Feign 是一個聲明式的 Web Service 客戶端。它的出現使開發 Web Service 客戶端變得很簡單。使用 Feign 只需要創建一個接口加上對應的注解,比如:@FeignClient 接口類注解。

  • Hystrix組件

微服務架構中某個微服務發生故障時,要快速切斷服務,提示用戶,后續請求,不調用該服務,直接返回,釋放資源,這就是服務熔斷。

  • Turbine組件

微服務架構中為了保證程序的可用性,防止程序出錯導致網絡阻塞,出現了斷路器模型。斷路器的狀況反應程序的可用性和健壯性,它是一個重要指標。HystrixDashboard是作為斷路器狀態的一個組件,提供了數據監控和直觀的圖形化界面。

  • Zuul組件

Zuul 網關主要提供動態路由,監控,彈性,安全管控等功能。在分布式的微服務系統中,系統被拆為了多個微服務模塊,通過zuul網關對用戶的請求進行路由,轉發到具體的后微服務模塊中。

  • Config組件

在微服務系統中,服務較多,相同的配置:如數據庫信息、緩存、參數等,會出現在不同的服務上,如果一個配置發生變化,需要修改很多的服務配置。spring cloud提供配置中心,來解決這個場景問題。

  • Zipkin組件

Zipkin是SpringCloud微服務系統中的一個組件,實現了鏈路追蹤解決方案。可以定位一個請求到底請求了哪些具體的服務。在復雜的微服務系統中,如果請求發生了異常,可以快速捕獲問題所在的服務。

二、Boot 對比Cloud

SpringBoot專注于快速開發單個微服務。SpringCloud是關注全局的微服務協調框架,它將SpringBoot開發的單個微服務整合管理,并為微服務之間提供,配置管理、服務發現、斷路器、路由網關等集成服務,SpringCloud依賴SpringBoot。

三、Dubbo對比Cloud

1、調用方式對比

服務調用方式是 Dubbo 和 Spring Cloud 重要不同點,熟悉RPC/HTTP/REST概念,有助對比 Dubbo 和SpringCloud。RPC 是遠端過程調用,其調用協議通常包含傳輸協議和編碼協議。RPC調用是面向服務的封裝,針對服務的可用性和效率等都做了優化。http是超文本傳輸協議,RPC 也可以用http作為傳輸協議,但一般是用 tcp作為傳輸協議。

2、執行性能對比

SpringCloud 組件總結,與Dubbo框架、SpringBoot框架對比分析

Dubbo 采用單一長連接和NIO異步通訊(保持連接/輪詢處理),使用自定義報文的TCP協議,并且序列化使用定制Hessian2框架,適合于小數據量大并發的服務調用,以及服務消費者機器數遠大于服務提供者機器數的情況,但不適用于傳輸大數據的服務調用。Spring Cloud 直接使用 HTTP 協議,在性能上弱于Dubbo。

3、注冊中心對比

這里通常指ZooKeeper(Dubbo注冊中心)和Eureka(Cloud注冊中心)的對比。分布式領域著名的CAP理論(C:數據一致性,A:服務可用性,P:分區故障的容錯性),Zookeeper保證的是CP,但對于服務發現而言,可用性比數據一致性更加重要,AP勝過CP,而 Eureka 設計則遵循 AP 原則。

4、框架生態對比

SpringCloud 組件總結,與Dubbo框架、SpringBoot框架對比分析

Dubbo 專注 RPC 和服務治理,Spring Cloud 則是一個微服務架構生態。

四、源代碼地址

GitHub·地址
https://github.com/cicadasmile/spring-cloud-base
GitEE·地址
https://gitee.com/cicadasmile/spring-cloud-base

SpringCloud 組件總結,與Dubbo框架、SpringBoot框架對比分析

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌平区| 綦江县| 藁城市| 邵东县| 罗平县| 富川| 新绛县| 兴国县| 湛江市| 台山市| 万载县| 隆德县| 西城区| 河东区| 三原县| 巧家县| 合阳县| 沧源| 望江县| 延长县| 涿鹿县| 鞍山市| 天长市| 虎林市| 定边县| 正宁县| 余江县| 五大连池市| 新昌县| 安康市| 巩留县| 和田市| 专栏| 柯坪县| 望谟县| 资兴市| 太谷县| 托克逊县| 右玉县| 韶关市| 东城区|