1. 程式人生 > >Spring Cloud 微服務實戰——Java開發人員必須掌握的技術

Spring Cloud 微服務實戰——Java開發人員必須掌握的技術

Spring Cloud簡介


Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。


Spring Cloud包含了多個子專案(針對分散式系統中涉及的多個不同開源產品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等專案。



微服務架構


“微服務架構”在這幾年非常的火熱,以至於關於微服務架構相關的產品社群也變得越來越活躍(比如:netflix、dubbo),Spring Cloud也因Spring社群的強大知名度和影響力也被廣大架構師與開發者備受關注。


那麼什麼是“微服務架構”呢?簡單的說,微服務架構就是將一個完整的應用從資料儲存開始垂直拆分成多個不同的服務,每個服務都能獨立部署、獨立維護、獨立擴充套件,服務與服務間通過諸如RESTful API的方式互相呼叫。


對於“微服務架構”,大家在網際網路可以搜尋到很多相關的介紹和研究文章來進行學習和了解。也可以閱讀始祖Martin Fowler的《Microservices》,本文不做更多的介紹和描述。



服務註冊與發現


在簡單介紹了Spring Cloud和微服務架構之後,下面迴歸本文的主旨內容,如何使用Spring Cloud搭建服務註冊與發現模組。


這裡我們會用到Spring Cloud Netflix,該專案是Spring Cloud的子專案之一,主要內容是對Netflix公司一系列開源產品的包裝,它為Spring Boot應用提供了自配置的Netflix OSS整合。通過一些簡單的註解,開發者就可以快速的在應用中配置一下常用模組並構建龐大的分散式系統。它主要提供的模組包括:服務發現(Eureka),斷路器(Hystrix),智慧路有(Zuul),客戶端負載均衡(Ribbon)等。


所以,我們這裡的核心內容就是服務發現模組:Eureka。

負載均衡

在Spring Cloud框架中,負載均衡服務本身也要作為一個發現客戶端註冊到Eureka伺服器上。客戶發起一個請求時,需要在Eureke伺服器上發現負載均衡服務,負載均衡服務通過RestTemplate呼叫微服務的介面時,會通過Ribbon進行負載均衡。這樣,不同的服務請求會由負載均衡機制分別呼叫微服務的不同例項。

服務閘道器

在整個Spring Cloud微服務框架裡,Zuul扮演著”智慧閘道器“的角色。一方面,Zuul是接入閘道器,起到反向代理的作用,是外部消費者請求內部服務的唯一入口。另一方面,Zuul也具備過濾功能,通過在執行時注入過濾規則可實現使用者鑑權、動態路由、灰度釋出、A/B測試、負載限流等功能。


Zuul的大部分功能都是通過過濾功能來完成的,Zuul可以提供四種標準型別的過濾。

內部呼叫

在微服務的開發中,我們還會碰到很多微服務之間內部相互呼叫的情況,特別是對資料服務的呼叫。在Spring Cloud中,有兩種方式可以,一種是使用RestTemplate,另一種是使用Feign框架。


RestTemplate呼叫另一個微服務的介面我們在系列五負載均衡的文章中已經講過具體的實現,本章不再累述。


Feign是宣告式Web服務客戶端,所謂宣告式,指的是在程式碼中,將要呼叫的其它內部微服務提供的Restful API宣告為自己的介面,該介面使用FeignClient註解。聲明後,在本微服務中就可以通過介面注入的方式消費其它微服務的提供的Restful API了。


Feign也內建有負載均衡Ribbon,會採用輪訓式的負載均衡方式。

熔斷機制

熔斷機制是應對雪崩效應的一種微服務鏈路保護機制。我們在各種場景下都會接觸到熔斷這兩個字。高壓電路中,如果某個地方的電壓過高,熔斷器就會熔斷,對電路進行保護。股票交易中,如果股票指數過高,也會採用熔斷機制,暫停股票的交易。同樣,在微服務架構中,熔斷機制也是起著類似的作用。當扇出鏈路的某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的呼叫,快速返回錯誤的響應資訊。當檢測到該節點微服務呼叫響應正常後,恢復呼叫鏈路。


在Spring Cloud框架裡,熔斷機制通過Hystrix實現。Hystrix會監控微服務間呼叫的狀況,當失敗的呼叫到一定閾值,預設是5秒內20次呼叫失敗,就會啟動熔斷機制。熔斷機制的註解是@HystrixCommand,Hystrix會找有這個註解的方法,並將這類方法關聯到和熔斷器連在一起的代理上。當前,@HystrixCommand僅當類的註解為@Service或@Component時才會發揮作用。


上一節中,我們提到,微服務之間的呼叫可以通過兩種方式,一個是RestTemplate,另一個是Feign。相對應,在這兩種呼叫方式下,都有Hystrix呼叫方法。

下面,我們將為大家介紹一門Spring Cloud微服務實戰的課程,手把手教您從搭建框架到服務應用,快速掌握Spring Cloud微服務必備實踐知識:

<<<<<<<<<<<<<<<<<<<<<線上系列課>>>>>>>>>>>>>>>>>>>>

講師介紹:

王浩彬老師,開發組長/高階工程師/技術專家
曾任中科院雲端計算Java工程師、某公司架構諮詢師等職位。參與開發多個大型專案,設計主導公司核心技術平臺,參與廣州君晟資訊科技公司、天安金交所等公司專案和架構諮詢。 熱愛開源,深入瞭解Spring Cloud,多個專案開源在Github與[email protected]上,並獲得開源中國的推薦,著有Spring Cloud相關的AG開源系列作品。

課程介紹:

學習了本課程您能掌握以下知識點:1、瞭解Spring Cloud核心模組構成概要,實操通過模版空程式碼搭建自有框架,瞭解Spring Cloud核心模組拉通細節; 2、實操搭建服務腳手架,快速構建服務增刪改查基礎模組,考慮利用模版程式碼來加速解決; 3、服務呼叫例項講解,瞭解Feign、Hystrix熔斷機制;擴充套件服務鑑權; 4、統一Api閘道器中心搭建,實操完成使用者身份認證,無狀態服務開發設計,前後端互動認證標準等。

課程特色:專屬答疑+課件資料提供+視訊無限時回放+VIP交流群

開課時間:隨到隨學,自由支配

相關推薦

Spring Cloud 微服務實——Java開發人員必須掌握技術

Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式

PK1648-Spring Cloud微服務實視頻

集成 後端 aid 前後端分離 隨筆 使用 log eight container PK1648-Spring Cloud微服務實戰視頻 對接真實數據 從0開發前後端分離企業級上線項目 新年伊始,學習要趁早,點滴記錄,學習就是進步! 隨筆背景:在很多時候,很多入門不久的

Spring Cloud微服務實教程|Spring Cloud教程

Spring CloudSpring Cloud微服務實戰教程網盤地址:https://pan.baidu.com/s/1nN_tpaUuIhWIHTTtk1k9lg 密碼:9obv備用地址(騰訊微雲):https://share.weiyun.com/5Sc3eEK 密碼:q6cmrk 微服務架構已是當下最

Spring Cloud微服務實》讀書筆記之客戶端負載均衡:Spring Cloud Ribbon - 4

摘要 客戶端負載均衡元件部署在客戶端,由客戶端維護要訪問的服務端清單(清單來源於服務註冊中心)。在Spring Cloud 中預設使用Ribbon作為客戶端負載均衡。 關鍵詞:客戶端負載均衡,Ribbon 一、什麼是客戶端負載均衡 負載均衡是對系統高可用、緩解網路壓力、處理能力擴容的重要手段之一。通常

Spring Cloud 微服務實詳細筆記

本文是看某課網關於 SpringCloud 微服務實戰的視訊總結的筆記,其中涉及了 Eureka Server 和 Eureka Client 的配置 Eureka Server 高可用性 服務間通訊的兩種方式:RestTemplate 和 Feign RabbitMQ 的安裝和使用

Spring cloud微服務實(三)——基於OAUTH2.0統一認證授權的微服務基礎架構升級

前言 從2018年年初寫的一篇主題為 Spring cloud微服務實戰——基於OAUTH2.0統一認證授權的微服務基礎架構的文章後就很少更新了。自從小寶貝誕生和公司業務的繁忙,年初計劃每週更新一篇博文的計劃已經落空了。年底了,終於清閒了些。 升級 Spring cloud微

Spring Cloud 微服務實 第六章 宣告式服務呼叫:Spring Cloud Feign

    本章介紹的是Spring Cloud Feign ,它是基於Netfix Feign 實現 ,整合了Spring Cloud Ribbon 與 Spring Cloud Hystrix, 除了提供這兩者的強大功能之外,還提供了一種宣告式的web服務客戶端定義方式。

Spring Cloud微服務實》讀書筆記之基礎知識1

摘要 微服務是一種系統架構的設計風格,它主旨在於將一個原本獨立的系統,拆分成多個獨立執行的小型服務。不同服務之間通過Restful介面進行通訊協作。 關鍵詞:Spring Cloud,微服務 一、什麼是微服務 微服務是一種系統架構的設計風格,它主旨在於將一個原本

Spring Cloud微服務實---1.9.微服務架構容錯處理

在微服務架中,所有功能均通過微服務來提供,如果其中某個關鍵微服務出現問題,如響應時間過長,那麼所有呼叫這個微服務的微服務都會變慢,由於呼叫者微服務變慢,進一步會使其他更廣泛的微服務變慢,最終整個系統可能會因為一個微服務出現問題,而使整個微服務架構出現故障。為了防止這種現象的發生,我們可以使用

Spring Cloud微服務實》讀書筆記之服務治理:Spring Cloud Eureka

摘要 服務治理是微服務架構最為核心和基礎的模組,用於實現各個微服務例項的自動化註冊與發現。Spring Cloud Eureka 是對Netflix Eureka的二次封裝,負責服務的治理。 關鍵詞:服務治理 一、服務治理介紹 服務治理是微服務架構最為核心和基礎

Spring Cloud微服務實》讀書筆記之客戶端負載均衡:Spring Cloud Ribbon

摘要 客戶端負載均衡元件部署在客戶端,由客戶端維護要訪問的服務端清單(清單來源於服務註冊中心)。在Spring Cloud 中預設使用Ribbon作為客戶端負載均衡。 關鍵詞:客戶端負載均衡,Ribbon 一、什麼是客戶端負載均衡 負載均衡是對系統高可用、緩解網

Spring Cloud微服務實視訊課程

第1章微服務架構概述1小時46分鐘2節1-1公開課[免費觀看]01:27:431-21.1 微服務架構概述[免費觀看]18:40第2章開始使用Spring Cloud實戰微服務13分鐘1節2-1開始使用Spring Cloud實戰微服務[免費觀看]13:46第3章服務提供者與

Spring + Cloud微服務實》讀書筆記(二)————Spring Boot

1.Spring Boot簡介 1.1簡化配置 通過設計大量的自動化配置等方式來簡化Spring原有樣板化的配置,使得開發者可以快速構建應用。 1.2簡化依賴管理 Spring Boot 通過一系列Starter POMs的定義,讓我們整合各項功

Spring cloud微服務實(二)——Zuul整合Swagger2及許可權校驗

一、前言 ##二、 整合Swagger2 Swagger2大家肯定都用過,為什麼我在這裡還要提到呢,因為各個微服務都會提供自己的API文件,我們總不能一個地址一個地址去查吧,能不能有個統一的入口呢。這就是這節要講的。 2.1 Zuul整合Swagger2 其他

Spring Cloud 微服務實-王浩彬-專題視訊課程

Spring Cloud 微服務實戰—17435人已學習 課程介紹        1、瞭解Spring Cloud核心模組構成概要,實操通過模版空程式碼搭建自有框架,瞭解Spring Cloud核心模組拉通細節; 2、實操搭建服務腳手架,構建服務增刪改查基礎模組,考慮利用模

Spring cloud微服務實——高可用註冊中心(二)

上一篇我們介紹服務註冊中心、服務提供者、服務消費者的建立以及呼叫。本次課程介紹的是服務中心高可用設定,以及Eureka的自我保護模式。 高可用的服務註冊中心 在服務註冊中心其實也就是一個服務,它同樣可以向其他服務中心註冊,Eureka Servere的高

eureka詳解(spring cloud 微服務實的理解)

概述 這篇文章主要講的是eureka的架構和詳細配置。 eureka的架構 eureka的基礎架構可以分成三個部分: 1.服務註冊中心:提供服務的發現和註冊的功能。 2.服務提供者:提供服務的應用

第三章:Spring Cloud Eureka(Spring cloud微服務實)下

本章主要內容:1.原始碼分析2.配置詳解原始碼分析    我們從Eureka的客戶端看它如何完成通訊行為的。    我們將一個普通的Spring Boot應用註冊到Eureka Server 或者是 從Eureka Server 中獲取服務列表時,主要做了兩個事情:    在

Spring Cloud微服務實》——服務治理 Spring Cloud Eureka

一、簡介    Spring cloud Eureka是spring Cloud Netflix微服務套件中的一部分,它基於Netflix Eureka做了二次封裝,主要負責完成微服務架構中的服務治理功能。Spring  Cloud通過為Eureka增加了Spring Boo

Spring-cloud微服務實【三】:eureka註冊中心(中)

  回憶一下,在上一篇文章中,我們建立了兩個springboot專案,並且在consumer專案中通過restTemplate進行HTTP通訊,成功訪問到了producer提供的介面,思考一下這樣的實現方式有什麼問題?   1.consumer必須知道producer的IP,才能呼叫對方的HTTP介面,並且在