一、分佈式應用
在分佈式系統中,國內常用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遠程調用