Spring Boot與分布式


---恢復內容開始---

分布式、Dubbo/Zookeeper、Spring Boot/Cloud

一、分布式應用

在分布式系統中,國內常用zookeeper+dubbo組合,

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

分布式系統:

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

二、Zookeeper和Dubbo

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

1、安裝zookeeper作為注冊中心

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

 

• 2、編寫服務提供者

1)引入dubbo和zkclient相關依賴

<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 "<厲害了,我的國!>";
    }
}

 

• 3、編寫服務消費者

1)引入dubbo和zkclient相關依賴

2)注冊中心地址

3)引用服務

創建一樣的接口

 

 引用(@service是spring包的,引用采用@Reference注解):

 

 

 

 

 

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

 

三、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進行客戶端負載均衡

 

 引入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>

  



  

 

 

 

 

 

 

 

 

 

 

 

 

 

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM