1. 程式人生 > >微服務分散式構架開發實戰

微服務分散式構架開發實戰

網站

更多書籍點選進入>> CiCi島

下載

電子版僅供預覽及學習交流使用,下載後請24小時內刪除,支援正版,喜歡的請購買正版書籍

封頁

封頁

編輯推薦

1.從實際出發 本書並沒有過多的探討理論性的東西,基於現有成熟框架,圍繞實際專案中遇見的具體需求,以微服務分散式架構的角度去逐一分解並且實現這些需求。掌握這些知識的讀者,完全有能力快速搭建出可靠、高效、靈活的微服務分散式架構。 2.與行業動向接軌 藉助於現有框架進行微服務分散式架構實踐的成本越來越低,並且正在逐漸成為主流架構。在進行框架及第三方庫的選擇時,也同樣緊跟行業動向。 3.簡單易懂 本書中的每一個示例都儘量用較少的程式碼和較快的的方式解決具體的問題,為讀者呈現複雜系統中簡單的一面。目的是為了快速接受並理解各知識點在微服務分散式架構中所處的位置及關係。

內容簡介

隨著第三方框架的逐漸完善,實施微服務架構的開發成本越來越低,分散式架構成為主流勢不可擋。一個完善的架構或系統中包含了許多的知識點,而每一個知識點則又可以引出非常多的內容,過度地專注於細節反而會拖慢達成目標的步伐。為了更快地實施微服務,本書基於開源且穩定的第三方工具,介紹如何構建一個龐大且複雜的分散式系統,用於滿足專案中的實際需求。 每一個工具庫為了適應更豐富的使用場景,通常都會把部分引數以配置檔案的方式暴露出來,同時提供用於開發環境的預設配置。本書基於快速使用為主線,儘可能多地講解配置引數的意義及它們之間的關係,幫助讀者在掌握足夠多的知識點後,建立起對微服務分散式架構的認知,以便為探求更深層次的知識點做好鋪墊。 本書適合Java工程師、初級架構師、大中專院校相關專業師生、Java培訓班學員及獨立kaifazhe與自學讀者使用。 每一個工具庫為了適應更豐富的使用場景,通常都會把部分引數以配置檔案的方式暴露出來,同時提供用於開發環境的預設配置。本書基於快速使用為主線路,儘可能多地講解配置引數的意義及之間的關係。在掌握足夠多的知識點後建立起對微服務分散式架構的認知,以便為探求更深層次的知識點做好鋪墊。

作者簡介

龔鵬 全棧GEEK,高中時期開始自學Java,專注於網際網路,具備軟體開發、美術設計、產品策劃等領域知識。匠工科技創始人,曾服務奧美互動、百度、中青旅,負責開發車聯網設計、網際網路*、電子商務等系統。

目 錄

1 微服務介紹 1


1.1 什麼是微服務架構 2


1.2 垂直應用與微服務 2


1.3 實現一個最簡單的微服務框架 3


1.3.1 公共介面 4


1.3.2 服務端 4


1.3.3 客戶端 7


1.3.4 完善框架 8


1.4 主流微服務框架介紹 9


1.4.1 Dubbo 9


1.4.2 Spring Cloud 10


2 模組拆分 12


2.1 拆分邏輯 13


2.2 單模組 14


2.3 基礎模組 14


2.4 複雜模組 15


3 Spring Boot 16


3.1 目錄結構 17


3.2 主要檔案 18


3.3 編輯器整合 18


4 Dubbo 20


4.1 註冊中心 21


4.2 介面工程 22


4.3 服務端 23


4.4 消費方 28


4.5 閘道器 30


4.6 監控中心 33


4.7 服務管理 35


4.8 負載均衡 36


4.9 服務降級 37


4.10 叢集容錯 38


5 Spring Cloud 40


5.1 註冊中心 41


5.2 註冊服務 44


5.3 呼叫服務 45


5.3.1 Ribbon 46


5.3.2 Feign 49


5.4 Zuul閘道器 51


5.5 Hystrix 斷路器 54


5.5.1 Ribbon 54


5.5.2 Fegin 57


5.6 服務監控 58


5.7 應用監控 61


5.8 熔斷器監控 62


5.8.1 單應用的熔斷資料 63


5.8.2 使用Turbine聚合資料 64


5.8.3 Cloud Admin整合Turbine 65


5.9 統一管理配置檔案 66


6 資料持久化 70


6.1 Spring Data MySQL 71


6.1.1 依賴與配置 71


6.1.2 實體對映 72


6.1.3 Repository 76


6.1.4 JdbcTemplate 79


6.1.5 事務管理 80


6.2 Spring Data MongoDB 81


6.2.1 依賴與配置 81


6.2.2 實體對映 82


6.2.3 Repository 83


6.2.4 MongoTemplate 84


6.3 Spring Data ElasticSearch 85


6.3.1 基本概念 85


6.3.2 安裝與執行 86


6.3.3 基於HTTP互動 87


6.3.4 配置分詞器 91


6.3.5 依賴與配置 94


6.3.6 實體對映 94


6.3.7 Repository 95


6.3.8 ElasticsearchTemplate 96


6.4 TCC 分散式事務 98


6.5 Spring Data Redis 100


6.5.1 安裝執行 100


6.5.2 依賴與配置 101


6.5.3 快取支援 102


6.5.4 RedisTemplate 106


6.5.5 全域性鎖 107


7 表單驗證 110


8 定時任務 113


8.1 Spring Task 單機定時任務 114


8.2 Cron 表示式 114


8.3 QuartZ 分散式定時任務 116


9 分散式會話 122


10 訊息佇列 124


10.1 安裝及配置RabbitMQ 125


10.2 配置及使用 128


11 構建Web應用 130


12 異常處理 133


13 安全認證 139


13.1 OAuth2.0 協議介紹 140


13.2 shouquan模式 141


13.3 在Dubbo中使用OAuth 2.0 142


13.4 在Spring Cloud 中


使用OAuth 2.0 151


13.4.1 shouquan中心 151


13.4.2 服務模組配置 154


13.4.3 閘道器配置 157


13.4.4 測試執行 159


14 日誌管理 161


14.1 Spring Boot 日誌 162


14.1.1 日誌格式 162


14.1.2 輸出到檔案 163


14.1.3 擴充套件配置 163


14.2 分散式日誌管理 166


14.2.1 ELK 搭建 167


14.2.2 Spring Boot 配置 169


15 熱部署 171


16 介面文件管理 173


16.1 Dubbo中使用Swagger2 174


16.2 Spring Cloud中使用


Swagger2 178


16.2.1 微服務模組配置 179


16.2.2 閘道器模組配置 181


17 Nexus私庫 184


17.1 Nexus 安裝 185


17.2 從Nexus私庫下載jar包 187


17.3 上傳jar包到Nexus私庫 189


18 釋出系統 191


18.1 Jenkins 安裝配置 192


18.2 構建任務 194


19 分散式架構總結 201





每一個工具庫為了適應更豐富的使用場景,通常都會把部分引數以配置檔案的方式暴露出來,同時提供用於開發環境的預設配置。本書基於快速使用為主線路,儘可能多地講解配置引數的意義及之間的關係。在掌握足夠多的知識點後建立起對微服務分散式架構的認知,以便為探求更深層次的知識點做好鋪墊。