Spring Boot與分佈式

分佈式、Dubbo/Zookeeper、Spring Boot/Cloudhtml

1、分佈式應用前端

在分佈式系統中,國內經常使用zookeeper+dubbo組合,spring

而Spring Boot推薦使用 全棧的Spring,Spring Boot+Spring Cloud。docker

分佈式系統:session

 單一應用架構
當網站流量很小時,只需一個應用,將全部功能都部署在一塊兒,以減小部署節點和成
本。此時,用於簡化增刪改查工做量的數據訪問框架(ORM)是關鍵。
 垂直應用架構
當訪問量逐漸增大,單一應用增長機器帶來的加速度愈來愈小,將應用拆成互不相干
的幾個應用,以提高效率。此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。
 分佈式服務架構
當垂直應用愈來愈多,應用之間交互不可避免,將核心業務抽取出來,做爲獨立的服
務,逐漸造成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,
用於提升業務複用及整合的分佈式服務框架(RPC)是關鍵。
 流動計算架構
當服務愈來愈多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增長一個
調度中心基於訪問壓力實時管理集羣容量,提升集羣利用率。此時,用於提升機器利
用率的資源調度和治理中心(SOA)是關鍵。

2、Zookeeper和Dubbo架構

 ZooKeeper
ZooKeeper 是一個分佈式的,開放源碼的分佈式應用程序協調服務。它是
一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、
域名服務、分佈式同步、組服務等。
• Dubbo
Dubbo是Alibaba開源的分佈式服務框架,它最大的特色是按照分層的方
式來架構,使用這種方式可使各個層之間解耦合(或者最大限度地鬆耦
合)。從服務模型的角度來看,Dubbo採用的是一種很是簡單的模型,要
麼是提供方提供服務,要麼是消費方消費服務,因此基於這一點能夠抽象
出服務提供方(Provider)和服務消費方(Consumer)兩個角色。

一、安裝zookeeper做爲註冊中心負載均衡

具體參考:https://hub.docker.com/_/zookeeper框架

 

• 二、編寫服務提供者分佈式

1)引入dubbo和zkclient相關依賴ide

<dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.1.0</version>
        </dependency>

        <!--zookeeper的客戶端工具-->
        <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1.0</version>
        </dependency>

 

2)配置dubbo掃描包和註冊中心地址

3)使用service發佈服務

 注意:Service是dubbo包的

package com.atguigu.ticket.service;

import com.alibaba.dubbo.config.annotation.Service; import org.springframework.stereotype.Component;

@Component
@Service// 將服務發佈出去
public class TicketServiceImpl implements TicketService {
    @Override
    public String getTick() {
       return "<厲害了,個人國!>";
    }
}

 

• 三、編寫服務消費者

1)引入dubbo和zkclient相關依賴

2)註冊中心地址

3)引用服務

建立同樣的接口

 

 引用(@service是spring包的,引用採用@Reference註解):

 

 

 

 

 

• 四、整合dubbo com.alibaba.spring.boot dubbo-spring-boot-starter 2.0.0

 

3、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 入門

– 一、建立provider
– 二、建立consumer
– 三、引入Spring Cloud
– 四、引入Eureka註冊中心
– 五、引入Ribbon進行客戶端負載均衡

 

 引入spring cloud

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>

  

引入Eureka註冊中心

 

 

  

建立provider

 

 
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>

  

 

 

建立consumer:
 <dependency>
         <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka</artifactId>
  </dependency>

  



  

 

 

 

 

相關文章
相關標籤/搜索