Spring Boot與分布式

2022-03-31 02:56:06 字數 3708 閱讀 8011

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

分布式、dubbo/zookeeper、spring boot/cloud

一、分布式應用

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

而spring boot推薦使用 全棧的spring,spring boot+spring cloud。

分布式系統:

 單一應用架構當**流量很小時,只需乙個應用,將所有功能都部署在一起,以減少部署節點和成

本。此時,用於簡化增刪改查工作量的資料訪問框架(orm)是關鍵。 垂直應用架構當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干

的幾個應用,以提公升效率。此時,用於加速前端頁面開發的web框架(mvc)是關鍵。 分布式服務架構當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服

務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,

用於提高業務復用及整合的分布式服務框架(rpc)是關鍵。 流動計算架構當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加乙個

排程中心基於訪問壓力實時管理集群容量,提高集群利用率。此時,用於提高機器利

用率的資源排程和治理中心(soa)是關鍵。

二、zookeeper和dubbo

zookeeperzookeeper 是乙個分布式的,開放原始碼的分布式應用程式協調服務。它是

乙個為分布式應用提供一致性服務的軟體,提供的功能包括:配置維護、

網域名稱服務、分布式同步、組服務等。• dubbodubbo是alibaba開源的分布式服務框架,它最大的特點是按照分層的方

式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地鬆耦

合)。從服務模型的角度來看,dubbo採用的是一種非常簡單的模型,要

麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象

出服務提供方(provider)和服務消費方(consumer)兩個角色。

1、安裝zookeeper作為註冊中心

具體參考:

• 2、編寫服務提供者

1)引入dubbo和zkclient相關依賴

com.alibaba.boot

dubbo-spring-boot-starter

0.1.0

com.101tec

zkclient

0.1.0

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

}

• 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

org.springframework.cloud

spring-cloud-starter-eureka-server

引入eureka註冊中心

建立provider

建立consumer:
org.springframework.cloud

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

SpringBoot 分布式事務

方案二 最終一致性 分布式事物解決方案 1 兩段提交協議 2pc jta 2 事務補償 tcc 3 訊息佇列實現最終一致性 為解決分布式系統的資料一致性問題出現了兩階段提交協議 2 phase commitment protocol 兩階段提交由協調者和參與者組成,共經過兩個階段和三個操作,部分關聯...

springboot整合(分布式)

首先建立乙個空工程,然後用springboot初始化器建立三個模組 服務註冊中心,服務提供者,服務消費者 首先看註冊中心 server port 8761 eureka instance hostname eureka server eureka例項的主機名 client register with...

SpringBoot整合之分布式概述

在分布式系統中,國內常用zookeeper dubbo組合,而spring boot推薦使用全棧的spring,spring boot spring cloud。分布式系統 zookeeper 是乙個分布式的,開放原始碼的分布式應用程式協調服務。它是乙個為分布式應用提供一致性服務的軟體,提供的功能包...