微服務架構實戰( 簡體 字) | |
作者:張鋒 | 類別:1. -> 程式設計 -> 綜合 |
出版社:電子工業出版社 | 3dWoo書號: 49387 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:6/1/2018 | |
頁數:408 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121343421 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 微服務概述
1.1 什么是微服務 1.2 為什么微服務 1.2.1 區別 1.2.2 從單體應用說起 1.2.3 第一步切分 1.2.4 服務化所帶來的問題 1.2.5 微服務的可擴展性 1.2.6 微服務與SOA的區別 1.3 常見的微服務組件 1.4 常用的微服務框架 1.4.1 Spring頂級項目 1.4.2 背景 1.4.3 社區活躍度 1.4.4 架構完整度 1.4.5 總結 1.5 微服務架構設計模式 1.6 如何實施微服務 1.7 小結 第2章 微服務設計原則 2.1 設計原則之分層架構 2.2 設計原則之統一通信協議 2.3 設計原則之單一職責 2.4 設計原則之服務拆分 2.5 設計原則之前后端分離 2.6 設計原則之版本控制 2.7 設計原則之圍繞業務構建 2.8 設計原則之并發流量控制 2.9 設計原則之CAP 2.10 設計原則之EDA事件驅動 2.11 設計原則之CQRS 2.12 設計原則之基礎設施自動化 2.13 設計原則之數據一致性 2.14 設計原則之設計模式 2.15 設計原則之DevOps 2.16 設計原則之無狀態服務 2.17 小結 第3章 微服務之Spring Boot 3.1 一切從簡單開始 3.2 快速集成第三方的Starter 3.3 降低開發復雜度之面向切面 3.3.1 前置通知 3.3.2 后置返回通知 3.3.3 后置異常通知 3.3.4 后置最終通知 3.3.5 環繞通知 3.3.6 AOP總結 3.4 并不復雜的持久化 3.4.1 單數據源 3.4.2 多數據源 3.4.3 JOOQ 3.4.4 事務處理 3.4.5 整合Redis 3.4.6 整合隊列 3.4.7 操作MongoDB 3.5 Web開發 3.6 懶人的接口文檔管理 3.7 優化的調度 3.8 健康是永恒的主題 3.9 強強聯合之整合Dubbo 3.10 小結 第4章 微服務之Docker 4.1 Docker原理 4.2 更輕量級的虛擬化 4.3 三個概念理解Docker 4.3.1 鏡像(Image) 4.3.2 容器(Container) 4.3.3 倉庫(Repository) 4.4 Dockerfile定制一切 4.4.1 Dockerfile語法 4.4.2 Dockerfile命令 4.4.3 Dockerfile構建過程 4.4.4 構建Java環境 4.4.5 Dockerfile小結 4.5 Docker網絡 4.5.1 網絡模式 4.5.2 link 4.5.3 跨主機訪問 4.6 Docker數據卷 4.6.1 數據卷 4.6.2 數據卷容器 4.7 Spring Boot與Docker 4.8 搭建自己的鏡像倉庫 4.8.1 安裝和啟動 4.8.2 使用 4.9 Kubernetes 4.10 私有云整體架構 4.11 小結 第5章 微服務之Spring Cloud 5.1 注冊中心 5.1.1 常用的注冊中心 5.1.2 Eureka介紹 5.1.3 服務發現 5.1.4 簡單注冊 5.2 負載均衡 5.2.1 Spring Cloud的負載實現 5.2.2 Ribbon 5.2.3 Feign 5.2.4 加入core 5.3 微服務容錯(Hystrix) 5.3.1 雪崩的形成 5.3.2 應對方案 5.3.3 降級和熔斷 5.3.4 Hystrix 5.3.5 集中監控 5.4 分布式配置中心 5.5 API網關 5.5.1 為什么需要網關 5.5.2 Zuul 5.6 消息總線(Spring Cloud Bus) 5.7 小結 第6章 微服務之Spring Cloud其他框架 6.1 Spring Cloud Consul 6.2 Spring Cloud ZooKeeper 6.3 Spring Cloud archaius 6.4 Spring Cloud Task 6.5 Spring Cloud Security 6.5.1 HTTP Basic Authentication 6.5.2 JWT 6.5.3 OAuth 2 6.5.4 Spring Cloud Security 6.6 Spring Cloud Sleuth 6.6.1 服務端 6.6.2 客戶端 6.7 Spring Cloud Stream 6.8 Spring Cloud Data Flow 6.9 小結 第7章 微服務之自動化測試與質量管理 7.1 微服務測試 7.2 單元測試 7.2.1 單元測試及覆蓋率評估 7.2.2 JUnit 7.2.3 Spring Boot單元測試 7.2.4 Mockito 7.3 API測試 7.3.1 Jmeter 7.3.2 壓力測試 7.4 A/B測試 7.5 冒煙和回歸測試 7.6 靜態代碼分析 7.6.1 Checkstyle 7.6.2 FindBugs 7.6.3 PMD 7.7 SonarQube質量監控 7.7.1 為什么使用 7.7.2 安裝和使用 7.7.3 安裝插件 7.7.4 運行流程 7.8 小結 第8章 微服務之JHipster 8.1 JHipster技術列表 8.1.1 客戶端選項 8.1.2 服務端選項 8.1.3 部署選項 8.2 Angular簡介 8.3 快速開始JHipster 8.3.1 安裝 8.3.2 使用 8.3.3 構建單體應用 8.3.4 Entity sub-generator 8.3.5 開發和運行 8.3.6 插件安裝 8.4 目錄結構 8.5 構建微服務應用 8.5.1 注冊中心 8.5.2 創建微服務網關 8.5.3 Traefik 8.5.4 JHipster UAA 8.5.5 構建微服務應用 8.6 基礎配置 8.6.1 JHipster屬性配置 8.6.2 作為Maven項目 8.6.3 數據庫 8.6.4 DTO 8.6.5 分頁 8.6.6 文檔 8.7 小結 第9章 微服務之自動化部署 9.1 私有倉庫搭建 9.1.1 Nexus介紹 9.1.2 安裝與配置 9.1.3 在項目中使用 9.2 Ansible 9.3 持續集成 9.3.1 持續集成流程 9.3.2 Jenkins介紹與安裝 9.3.3 Maven介紹 9.3.4 Jenkins系統設置 9.3.5 集成Sonar 9.3.6 構建工程 9.3.7 配置測試 9.4 灰度發布 9.5 小結 第10章 微服務之日志收集與監控 10.1 ELK搜集與分析 10.1.1 工作流程 10.1.2 日志格式 10.1.3 平臺搭建 10.2 系統監控 10.2.1 監控策略和監控對象 10.2.2 進程監控 10.2.3 數據波動監控 10.2.4 常用監控命令 10.3 運維監控 10.3.1 Zabbix 10.3.2 Open-Falcon 10.4 APM監控 10.4.1 Pinpoint 10.4.2 SkyWalking 10.4.3 Zipkin 10.4.4 CAT 10.5 Pinpoint的安裝與使用 10.5.1 Pinpoint的安裝 10.5.2 Pinpoint的使用 10.5.3 Pinpoint實現郵件告警 10.6 小結 第11章 完整示例 11.1 安裝Lombok 11.2 PiggyMetrics 11.3 整體架構 11.3.1 配置Spring Cloud Config 11.3.2 授權服務 11.3.3 API網關 11.3.4 服務發現 11.3.5 負載均衡器、斷路器和HTTP客戶端 11.3.6 監控儀表盤 11.3.7 日志分析 11.4 安裝和運行 11.4.1 配置Maven并導入工程 11.4.2 安裝 11.4.3 使用 11.4.4 如何變成自己的項目 11.5 小結 第12章 微服務核心功能推薦 12.1 工作流引擎 12.1.1 Activiti 12.1.2 UFLO 12.2 規則引擎 12.2.1 Drools 12.2.2 URule 12.3 調度系統 12.4 消息推送 12.5 網關中間件 12.5.1 Orange 12.5.2 Kong 12.5.3 Zuul 12.6 分庫分表中間件 12.6.1 Sharding-JDBC 12.6.2 MyCat 12.7 報表引擎 12.8 數據處理 12.8.1 Spring Batch 12.8.2 Kettle 12.9 并發編程 12.10 分布式配置 12.10.1 Disconf 12.10.2 Apollo 12.11 CAS 12.12 WebFlux 12.13 小結 本書從大型網站的架構設計模式以及技術造型著手,以Spring Cloud和Docker為構建框架,實現橫向可擴展的高可用架構。項目分層清晰,包括完備的質量和監控體系。依據敏捷開發的原則,快速迭代,以完整的示例實現整個CI/CD的流程,快速響應需求。在本書的最后,會精選在項目中應用的幾個開源框架,以期讀者能夠在閱讀完本書后,快速掌握并應用微服務相關的知識。
從分布式服務到SOA,再到微服務,服務化的腳步一直在不斷地前進。正所謂“分久必合,合久必分”,在企業高速發展的今天,單體架構已經很難適應業務的快速變化,微服務的出現,為應對快速變化的業務需求、冗長的開發周期提供了一種新的解決方案。它以模塊化的思維應對快速變化的業務需求,使用比如自動化部署、自動化業務監控預警、調用鏈監控、容器化,以及快速開發等思想加快軟件的開發周期,實現更快速、更高質量的交付,整體提高客戶的滿意度。
內容介紹 本書系統地介紹了微服務涉及的各種知識點,橫跨軟件開發的整個生命周期,采用目前前沿的技術進行知識點的展開。微服務是一個概念,就像SOA一樣,可能在不同的環境中會產生不同的設計方案。但是總的來說,微服務是為了解決高并發、大數據量的問題而產生的分布式的綜合系統解決方案。 本書的內容安排非常有層次感,對于軟件開發和從業人員從整體上了解和掌握微服務所需要的知識點進行了全面的梳理。 本書可以分為概念篇、開發篇、運維篇和實戰篇。 概念篇 首先從概念的角度出發,讓讀者對微服務的發展有一個感觀的了解,然后從設計理念上給出一些建議。 第1章從微服務的起源和現實業務的角度探討微服務,使讀者能夠對微服務有一個感觀的認識。 第2章是針對微服務的設計理念進行整理,包括服務如何折分、前后端分離、CAP理論和CQRS等,是一個高層次的指導原則。 開發篇 開發篇以Java中常用的微服務框架Spring Boot為基礎,介紹Spring Boot的快速開發,以及Docker技術的基礎,并且完成兩者的無縫結合。接著對Spring Cloud的整體架構進行介紹。 第3章詳細地介紹Spring Boot的開發,包括使用它的優缺點,以及在企業級開發中常用的工具包的整合,包括面向切面編程、Web開發、文檔管理和調度管理,最后結合Dubbo完成一個示例性的分布式工程。 第4章主要講解Docker的基礎操作,介紹微服務中所用到的容器相關的技術,最后給出通用的基于容器的私有云架構。 第5章對Spring Cloud實現微服務的幾個重要框架進行展開描述,讓讀者了解注冊中心、負載均衡、容錯、分布式配置、網關和消息總線,能夠完成開發層面的微服務架構。 第6章對Spring Cloud的非核心框架進行介紹,包括Consul、ZooKeeper、安全框架和數據流框架。 通過對以上幾章的了解,讀者應該能夠從開發的角度基本掌握微服務的開發。 運維篇 在微服務中,涉及的不僅僅是開發,還會涉及很多的點,包括運維、測試、監控和日志管理。 第7章主要對測試和質量管理進行介紹,測試部分包括單元測試、A/B測試、冒煙和回歸測試,質量管理部分主要使用靜態代碼分析,并且基于SonarQube對代碼進行靜態檢查,以及分析代碼的總體質量。 第8章對微服務的最佳實踐JHipster進行系統的介紹,并且對JHipster部分內容做了處理,將在國內不是很流行的部分進行了處理,盡可能詳細地介紹JHipster的應用和配置。 第9章主要對自動化部署進行介紹,因為微服務的目的不僅僅是簡化開發,而且能夠提高整個團隊的運行效率。所以私服的使用和自動化運維就顯得非常重要。 第10章主要講解日志收集和APM監控,對于線上系統來說,出現問題的概率還是非常大的,如何快速定位并第一時間找到問題所在的點就顯得非常重要。APM部分對常用的監控工具進行列舉,重點介紹Pinpoint,對使用和郵件告警也進行了重點介紹。 通過以上幾章的了解,讀者應該能夠充分理解DevOps的概念,并且了解微服務并不單純是開發人員的工作,而是整個團隊的協同合作。 實戰篇 第11章通過對PiggyMetrics的全面講解,讓讀者能夠了解一個簡單的微服務架構所包含的技術點和構建原則,并且實際部署微服務,完成業務的基礎操作。 第12章對在微服務構建過程中可能涉及的技術點進行講解,包括工作流引擎、規則引擎、調度系統、分布式配置及單點登錄。 通過以上幾章的學習,讀者應該能夠在技術選型的過程中擴展思路,了解更多的分布式業務涉及的擴展知識,并且有選擇地應用到業務中。 勘誤和支持 隨著技術的進步,微服務的架構也會有不同的演化,就像Spring 5的發布一樣,為前后端分離進一步奠定了基礎。本書中涉及的內容大多是個人的理解和認知,難免有不足之處,所以本書中提及的知識點主要作為拋磚引玉之用,如果有錯誤之處,還請讀者指正。 由于筆者水平有限,且編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。如果您有問題或者寶貴意見,歡迎發送郵件至郵箱,期待能夠得到您的反饋。 致謝 首先要感謝我的家人,沒有他們默默的支持,我不可能堅持完成本書的創作。 然后要感謝電子工業出版社博文視點的陳曉猛等編輯對本書內容的校對、勘正及反復核對,感謝你們的付出。 最后感謝在寫作過程中給予我幫助的朋友們。 張 鋒 |