十四、Spring Boot與分佈式

一、分佈式應用

在分佈式系統中,國內常用zookeeper+dubbo組合,而Spring Boot推薦使用 全棧的Spring,Spring Boot+Spring Cloud。

分佈式系統: 

 

 單一應用架構

當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成 本。此時,用於簡化增刪改查工作量的數據訪問框架(ORM)是關鍵。  單一應用架構 當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成 本。此時,用於簡化增刪改查工作量的數據訪問框架(ORM)是關鍵。  

 垂直應用架構

當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干 的幾個應用,以提升效率。此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。  

 分佈式服務架構

當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作爲獨立的服 務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時, 用於提高業務複用及整合的分佈式服務框架(RPC)是關鍵。  

 流動計算架構

當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個 調度中心基於訪問壓力實時管理集羣容量,提高集羣利用率。此時,用於提高機器利 用率的資源調度和治理中心(SOA)是關鍵。 

二、Zookeeper和Dubbo 

• ZooKeeper 服務註冊中心

ZooKeeper 是一個分佈式的,開放源碼的分佈式應用程序協調服務。它是 一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、 域名服務、分佈式同步、組服務等。  

• Dubbo

Dubbo是Alibaba開源的分佈式服務框架,它最大的特點是按照分層的方 式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地鬆耦 合)。從服務模型的角度來看,Dubbo採用的是一種非常簡單的模型,要 麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象 出服務提供方(Provider)和服務消費方(Consumer)兩個角色。 

 

• 整合dubbo

      – 引入spring-boot-starter-dubbo

      <dependency>

          <groupId>com.gitee.reger</groupId>

          <artifactId>spring-boot-starter-dubbo</artifactId>

          <version>1.0.4</version>

      </dependency> 

      – 配置服務提供者與消費者

      – 測試 

三、Spring Boot和Spring Cloud 

Spring Cloud

Spring Cloud是一個分佈式的整體解決方案。Spring Cloud 爲開發者提供了在分佈式系統(配 置管理,服務發現,熔斷,路由,微代理,控制總線,一次性token,全局瑣,leader選舉,分 布式session,集羣狀態)中快速構建的工具,使用Spring Cloud的開發者可以快速的啓動服務 或構建應用、同時能夠快速和雲平臺資源進行對接。 

• SpringCloud分佈式開發五大常用組件  

      • 服務發現——Netflix Eureka

      • 客服端負載均衡——Netflix Ribbon

      • 斷路器——Netflix Hystrix

      • 服務網關——Netflix Zuul

      • 分佈式配置——Spring Cloud Config 

微服務 

 

• Spring Cloud 入門  

      – 1、創建provider

      – 2、創建consumer

      – 3、引入Spring Cloud

      – 4、引入Eureka註冊中心

      – 5、引入Ribbon進行客戶端負載均衡

      – 6、引入Feign進行聲明式HTTP遠程調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章