天天看點

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

開篇必水

分布式系統比單機系統複雜得多,但經過多年的發展,業界已經有了豐富的分布式系統理論,也有了許多優秀的元件。在分布式系統理論裡,最近流行的微服務架構理論成了佼佼者,微服務的概念也成了目前分布式系統實作方案中的主流,顯然,微服務架構成了分布式系統的一種形式。優秀的分布式系統元件早期主要以國内阿裡巴巴的Dubbo(現今已經被Apache歸納進入其孵化器)為主,後來從國外引入了Spring Boot和Spring Cloud,它們現在是微服務實作的主流方案。

為順應技術的發展趨勢,我對微服務進行了深入的學習和研究,并且于2018年創作出版了《深入淺出Spring Boot 2.x》。免費分享完整文檔共441頁私信【學習】即可擷取這兩份學習資料哦。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

為了更進一步地講解微服務,滿足目前企業搭建微服務系統的需要,我竭盡所能編寫了這本關于Spring Cloud的書。雖然Spring Cloud能夠有雙搭P微服務系統,但微服務系統隻是分布式系統的一種形式,它并不能解決分布式系統的所有問題,例如,分布式緩存、會話、資料庫及其事務等,都不能通過Spring Cloud來有效處理。但這些問題又是企業實施微服務系統時必須要面對的,甚至是一些企業的難點和痛點。是以,本書在詳細介紹Spring Cloud的基礎上,還會對常用的分布式技術進行講解,以滿足企業的需要。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

内容安排

本書基于一線企業的實際應用需求,介紹Spring Cloud微服務和常用的分布式系統。整體來說,全書分為4個部分。

第一部分:概述和基礎(1~2章)

本部分将講解分布式和微服務的基礎知識和理念,并且簡單介紹本書需要用到的基礎知識。

第1章分布式和微服務概述

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第2章技術基礎:為了更好地介紹Spring Cloud,這裡稍微介紹- .下Spring Boot和HTTP的REST風格。因為SpringCloud是以Spring Boot作為基石的,而各個服務系統又是通過REST風格的請求內建在-起的, 是以學習它們将有助于我們深入學習Spring Cloud。當然,如果你已經對它們很熟悉了,也可以跳過本章,直接學習第3章的内容。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第二部分:Spring Cloud微服務(3~12章)

介紹Spring Cloud的各類元件,這是微服務的核心内容。介紹的元件包括服務注冊和服務發現(Eureka)、服務調用(Ribbon 和OpenFeign)、斷路器(Hystix 和Resilience4j)、網關(Zuul和Gateway)、配置(Config)、 全鍊路追蹤(Sleuth)、 微服務的監控(Admin)等。

第3章服務治理——Eureka:,Pivotal團隊通過Spring Boot形式的封裝将Nettlix公司開發的分布式系統元件封裝了起來,其中就包括Eureka, Eureka是Spring Cloud的服務治理中心。在使用Spring Boot進行了二次封裝後,Bureka 的使用就顯得十分簡易了。Eureka 作為一個微服務的治理中心,它是一個服務應用,可以接收其他服務的注冊,也可以發現和治理服務執行個體。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第4章用戶端負載均衡——Ribbon:Spring Cloud Netflix Ribbon是一種用戶端負載均衡的元件,為了友善,在本書中都簡稱為Ribbon。在微服務架構中,我們依照業務将系統進行切分,但一個實際的業務往往需要多個微服務通過互相協作來完成,是以各種微服務之間存在服務調用。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第5章斷路器——Hystrix:Spring Cloud社群推薦開發者使用其他仍然活躍的開源項目,其中最推薦使用的是Resilience4J, 并且Spring Cloud社群也在加緊開發spring cloud-ircuitbreaker,來取代Hystrix。但這個項目還在開發中,并沒有釋出,加之目前不少企業也在使用Hystrix, 并且技術是相通的,是以這裡還是決定介紹一下 Hystrix。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第6章新斷路器——Resilience4j:Resilience4j是一個輕量級的、易于使用的容錯架構,它是受Netflix的Hystrix的啟發,基于Java8和函數式程式設計設計的,是以在使用它的時候,可以看到大量的函數式程式設計設計。它與Hystrix 相比有幾個不同點。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第7章聲明式調用——OpenFeign:本書從第3章到第6章,介紹了微服務的核心内容:服務治理、服務調用(Ribbon)和熔斷器(Hystrix和Resilience4j)。這些都是微服務的利器,隻是從開發者的角度來說,和我們打交道最多的.是服務調用和熔斷器。服務調用使得多個微服務可以通過互相調用,為同一個業務服務。熔斷器則可以在很大的程度上保證服務調用。但是嚴格來講,Ribbon 使用REST請求方式編寫還是比較麻煩的,對于開發者也不算友好,是以在REST 請求方式的基礎上,一些開發者 又提供了接口聲明方式的調用,例如,我們本章要介紹的GitHub OpenFeign就是這樣的。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第8章舊API網關——Zuul:前面幾章,我們學習了服務注冊和發現(Eureka), 通過它們,我們能夠順利地管理我們的服務;學習了服務之間的調用(Ribbon 和OpenFeign),讓各個服務聯系起來,通過共同協助來完企業業務邏輯;還學習了斷路器(Hystrix和Resilience4j),它能盡可能地保護微服務之間的調用,通過熔斷的方式來避免服務依賴造成的雪崩。以上談到的這些都是Spring Cloud微服務的核心元件。本章開始讓我們學習微服務最後的一一個核心元件一API 網關。Netflix Zuul是-一個API網關,它的主要功能是提供網關服務。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第9章新網關——Spring CloudGateway:在第8章中,我們講述了舊網關Netlix Zuul,并且告知讀者,Zuul 1.x隻是性能一-般的網關,加上Netlix Zuul 2.x版本經常不能如期釋出,是以新版的Spring Cloud不打算捆綁Zul了。新版的Spring Cloud提供了新的網關給開發者使用,這便是Spring Cloud Gateway。為了簡便,下 文在沒有特别指明的情況下,将簡稱它為Gateway。Gateway 并非是使用傳統的Jakarta EE的Servlet容器,它是采用響應式程式設計的方式進行開發的。在Gateway中,需要Spring Boot和Spring WebFlux提供的基于Netty的運作環境。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第10章配置——Spring Cloud Config:Spring Cloud Config (為了友善,在不産生歧義時,全書都簡稱為Config)是一個支援微服務和分布式集中化提供配置的項目。微服務架構中的執行個體可能會非常多,如果一個個地更新配置,運維成本會十分大。為了簡化配置的複雜性,一些開發者提出 了集中化管理配置的概念,也就是提供一個集中化的配置中心,讓我們可以統- -配置各個微服務執行個體。本章要講的Config 就是出于這個目的設計的。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第11章Spring Cloud Sleuth全鍊路追蹤:在前面的章節中,我們學習了Eureka 服務治理中心,通過它可以管理各個服務,使得它們能夠互相協作工作。但是随着業務變得複雜,服務也會複雜起來,加上每-一個服 務都可以有多個執行個體,一旦發生 問題,将很難查找問題的根源。為了解決這個問題,許多分布式開發者都開發了自己的鍊路監控元件,使得請求能夠追蹤到各個服務執行個體中,典型的如谷歌(Google)的Dapper、推特(Twitter)的Zipkin和阿裡巴巴(Alibaba) 的EagleEye, 它們都是目前著名的鍊路追蹤元件。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第12章微服務的監控——Spring Boot Admin:在一個優秀的分布式系統中,監控服務執行個體,及時發現執行個體存在的問題是十分重要的。SpringBoot Admin就提供了這樣的功能,為了友善,在不引起歧義的情況下,下文将Spring Boot Admin簡稱為Admin。Admin 是一個監控平台,它可以檢測各個Spring Boot應用,讓運維和開發人員及時發現各個服務執行個體存在的問題。Admin 是一個 基于Spring Boot Actuator 的控制台,也就是它可以通過Spring Boot Actuator暴露的端點,來監測各個執行個體的運作狀況。Admin 的使用者界面(User Interface,UI)是采用AngularJs應用程式建構的。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第三部分:分布式技術(13~18章)

講解分布式的其他知識,包括分布式發号機、分布式資料庫、分布式緩存、分布式會話和權限等。

第13章生成唯一的ID——發号機制:在資料庫(請注意,在本章中,如果沒有特别說明,講到的資料庫就都是指關系資料庫,而不包含類似Redis這樣的非關系資料庫)中,主鍵往往是一條記錄的唯一辨別,它具備唯- -性。 在單機的時候,隻需要考慮單個資料庫的問題,相對簡單,但在分布式和微服務系統裡,就相對困難了,因為它涉及多台機器之間的協作。那麼如何保證在分布式或者微服務的多個節點下生成唯一的ID, 如何讓ID具備- -定的可讀性呢? 這就需要一個發 号機制來控制了。如何實作發号機制,便是本章要讨論的問題。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第14章分布式資料庫技術:在第1章我們談過,網際網路會員的增加和業務的複雜化,必然導緻大資料的存儲,這時使用單機資料庫對資料存儲和通路,就顯得捉襟見肘了。而劃分的方法在第1章也談過,主要是水準、垂直以及混合分法。對分布式和微服務來說,一種業務就可能有很多的資料,如交易,單資料庫也很有可能無法支撐,需要多個資料庫節點進行支援,這種需要将資料庫拆分為多節點進行存儲的技術,便是本章需要的論的分布式資料庫技術。為了更好地闡述分布式資料庫的知識,我們首先從分表、分庫和分區這樣的資料庫知識開始講述。不過本章我們還不會讨論分布式事務的相關知識,這将會在下章進行讨論。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第15章分布式資料庫事務:上一章中,我們讨論了分布式資料庫的知識,主要是分片技術。這一章讓我們來讨論分布式資料庫事務,我們知道在網際網路的世界中,有些資料對一緻性的要求是十分苛刻的,如商品的庫存和使用者的賬戶資金,而這些卻極有可能分别存儲在不同的資料庫節點中,那麼如何在多個資料庫節點中保證這些資料的一緻性,就是分布式資料庫事務要解決的問題。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第16章分布式緩存——Redis:在目前網際網路中,緩存系統一般由Redis來完成,是以後續我們會集中讨論Redis, 就不再讨論其他緩存系統了。本書采用的是Redis的5.0.5版本,如果采用别的版本,在配置項上會有少量不同,不過也大同小異,不會有太大的問題。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第17章分布式會話:在分布式系統中,有多個伺服器節點,這些節點甚至是跨服務的,如果會話資訊隻在一個節點上, 就需要- -定的機制來保證會話在多個服務節點之間能夠共享,友善是本章要讨論的分布式會話。在分布式會話中,最重要的功能是安全驗證,因為不同的使用者會有不同的權限。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第18章分布式系統權限驗證:本章會講述分布式系統的權限驗證。實際上,在分布式會話中談到的使用緩存存儲會話(springsession-data-redis),也能在一定程度 上支援分布式的權限驗證,不過一切還 需要從最基礎的Spring Security開始講起。因為這裡涉及的内容較多,是以我還是建立了工程,且将其命名為chapter18,這樣就可以根據需要新增對應的子產品了。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第四部分:微服務系統實踐(19~20章)

通過Apache Thrift 講解遠端過程調用(RPC),并且講解在分布式中處理高并發的一些常用技巧,最後給出一個微服務執行個體。

第19章遠端過程調用:遠端過程調用(Remote Procedure Call, RPC)是-種服務調用的方式,它在許多企業中也得到了很多的應用。事實上,在微服務中,推薦我們使用的是REST風格的調用,而非RPC。那麼為什麼需要使用RPC?又如何使用呢?

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

第20章微服務設計和高并發實踐:以上幾章已經闡述了大部分搭建微服務的内容,本章主要講微服務實踐。在微服務中,要解決的大問題是高并發問題,這也是分布式中最受到關注的問題之一。

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)

因為這份《spring cloud微服務和分布式系統實戰》和《深入淺出springboot2.0》内容實在太多,兩本書加起來一共971頁,沒有辦法給大家全部展示出來,需要擷取的小夥伴可以直接轉發+關注後私信(學習)即可免費擷取!

springcloud分布式事務_阿裡P8根據企業需求講解微服務分布式系統開發527頁進階筆記...開篇必水内容安排第一部分:概述和基礎(1~2章)第二部分:Spring Cloud微服務(3~12章)第三部分:分布式技術(13~18章)第四部分:微服務系統實踐(19~20章)