02.28 三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

前言

分佈式、微服務幾乎是現在的技術人員必須要了解的架構方向,從理論上來講確實解耦了很多結構,但另一方面,又會帶來更多衍生的複雜度及難點。 如何保證事物的最終一致性?如何進行性能及容量預估?如何處理分佈式系統的日誌?如何進行線上應急?如果你 曾有和我一樣的困惑,那麼相信你一定能從本文中得到非常寶貴的解答。

面對越來越複雜的系統和業務,分佈式技術早已成為互聯網時代的必學技術 ,然而, 如果沒有經歷過大公司背景的實踐和歷練,則我們很難接觸到分佈式服務的設計和架構 。

分佈式和微服務技術越來越被互聯網企業推崇和認可,如何將其結 業務的特點工程化地在企業中落地是每個技術人員都需要思考的問題。小編今天分享一份書籍文檔:《分佈式服務架構:原理、設計與實戰》,本書籍對於理解分佈式和微服務技術,有很好的指導和啟發。

本書將分佈式的原理、 實踐及個人的工作經驗相結合,從分佈式的一致性、系統容量評估和性能保障、日誌系統、服務部署、線上應急等方方面面進行了鞭辟入裡的分析。

本書以一位在 IT 行業從事多年分佈式服務架構工作的資深老兵的視角,剖析了針對分佈式系統架構的解決方案和設計模式。 書中的每一章、每一節都是作者對多年線上系統架構設計實踐的總結。


由於細節內容實在太多,所以小編只能把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容(這裡只展示章節目錄)!文末有資料獲取方式,由於此文詳細讀完需要花費時間較長。時間緊迫的朋友們可以粗略看看目錄移至文末。

目錄

第一章 分佈式微服務架構設計原理

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章總結

本章主要講解從傳統的單體架構到服務化的發展歷程,並講解從服務化到現在流行的微服務架構的演化,以及微服務架構的特點、實現原理和最佳實踐,井且提出了微服務是 SOA 服務化的拓展和延續。在後續章節裡不會刻意地區分 SOA 服務化和微服務,因為微服務就 SOA服務化在全新場景下的昇華和疊加。

最後再次強調微服務架構的主要特點。

  • 將傳統單體應用拆分成網絡服務,來實現模塊化組件
  • 根據微服務架構的服務劃分來分組職能團隊,減少跨團隊的溝通
  • 每個服務對應 個團隊,團隊成員負責開發、測試、運維和運營 ,開發後在團隊內運維和運營,不需要交付給其他團隊。
  • 去中心化、 SOA 務化的中心服務治理和去企業服務總線
  • 微服務重視服務的合理拆分、分層和構造,可建設自動化持續發佈平臺,井進行敏捷開和部署。
  • 具備兼容性設計、容錯性設計和服務的契約設計。

第二章 徹底解決分佈式系統一致性的問題

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章總結

本章從一致性問題的實踐出發,對大規模、高併發服務化系統的實踐經驗進行總結, 列舉了導致不一致的具體問題,並圍繞這些具體問題,提出一致性原理如 ACID、 CAP、 BASE 等:並學習了兩階段、三階段 TCC一 致性協議,總結了實現最終一致性的查詢模式、補償模式、異步確保模式、定期校對模式、可靠消息模式和緩存一致性模式等 ;最後針對服務化系統中同步調用、異步調用 、消息隊列等應用場景詳細分析了超時發生的場景和解決方案,以供大家在開發服務化系統的過程中參考。

第三章 服務化系統容量評估和性能保障

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章總結

本章以互聯網企業重點關注的非功能質量為主線,總結了非功能質量需求的整體目標,井針對不同的服務和資源列舉了不同的非功能質量需求的衡量指標,幫助讀者在做技術評審的過程中整理思路。本章又針對不同的系統儘量窮舉評審時關注的評審點,並隨後提供了一個簡單有效的評審提綱,最後根據提綱實現了一個互聯網容量和性能評估的經典案例,大家可以在案例中瞭解高併發互聯網系統是如何拆分的,以及依據哪些數據進行拆分,通過對非功能質需求的評估、設計和實現,對應設計時的容量和性能評估及事後的壓測,來保證互聯網項目達成既定的非功能質量需求的目標。

容量和性能評估保證系統設計能夠滿足系統的非功能質量需求,性能測試保證系統實施按照既定目標實現項目的非功能質量目標,本章後半部分全面介紹了互聯網企業裡壓測的全過程及方法論,並總結了壓測的最佳實踐 在本章末尾介紹了常用的壓測工具集,讀者可以根據不同的場景選擇不同的壓測工具來測試系統的性能指標, 保證系統的高性能。

第四章 大數據日誌系統的構建

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章總結

在一個完整的互聯網服務化系統的實現中,日誌系統是一個非常重要的功能組成部分。它可以記錄系統產生的所有行為和信息,並按照某種形式表達出來,我們可以使用日誌系統所錄的信息為系統排錯,並優化系統的性能,或者根據這些信息調整系統的行為,提高系統的可用性。因此,穩定的日誌系統是保證系統可用性的一個重要的基礎設施。

本章一開始介紹了開源日誌框架的背景、實現結構、使用方式,包括 JDKLogger、 CommonLogging、 Log4j、 Slf4j、 Logback和 Log4j2 ;然後分享了筆者在實踐中積累的使用這些日 志系統的優化經驗和最佳實踐,先後介紹了日誌級別的設置、日誌的數量和大小、切割方式、 日誌格式的配置,最後給出了一個由一行日誌導致的線上事故的案例。

接下來分析了大數據日誌系統的原理與設計,從給出構建大數據日誌系統的一個通用架構開始,講述其中各個模塊的職責、設計和架構,包括日誌採集器、日誌緩衝隊列、日誌解析器、日誌存儲和搜索、日誌展示系統和監控與報警系統等,最後給出了一個如何設計日誌系統的容量和對日誌系統做性能評估的例子。

最後介紹了當前最流行的開源日誌框架 ELK,也介紹了 Elasticsearch 、Logstash和 Kibana的安裝、配置和基本使用方法等,為讀者構建大數據日誌系統起到拋磚引玉的作用。

第五章 基於調用鏈的服務治理系統的設計與實現

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章小結

隨著 SOA 服務化和微服務架構在互聯網公司的廣泛應用 ,互聯網公司 的系統越來越複雜,複雜的系統會有各種各樣的問題產生。

APM 系統的核心功能一一調用鏈跟蹤系統的建設,能夠幫助我們更好地治理線上服務,井解決生產環境中每天都重複發生的問題。

本章從介紹開源的 APM 項目及市場上流行的商業 APM 產品開始,介紹了 APM 的功能和特性;然後重點講述了谷歌的 Dapper 論文提到的調用鏈跟蹤原理,並講解了業務鏈實現的原理;最後,基於調用鏈跟蹤的原理,總結了實現調用鏈系統的通用架構、方法論及最佳實踐。

第六章 Java服務的線上應急和技術攻關

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章總結

本章開始介紹了線上應急和技術攻關的必要性、思路和方法論,強調了線上應急的目標是快速恢復系統,減少影響和損失,而不是徹底解決問題;也通過海恩法則和墨菲定律提出互聯網行業中技術攻關的重要性。海恩法則強調,再好的技術、再完美的規章,在實際操作層面,也無法取代人自身的素質和責任心,因此,那些重要的線上應急和技術攻關問題還需要通過高級領域專家來解決,因此,本章在後面全面介紹了線上應急和技術攻關中,領域專家應該掌握的各種命令和工具。

其次,本章介紹瞭如何搭建示例服務 Vesta ,在配置和啟動 Vesta 後,以運行 Vesta 服務為背景重點介紹了筆者積累和總結的高效應用層腳本。接下來介紹了關鍵的 Java 虛擬機命令,幫助大家查看 Java 虛擬機運行狀態、線程堆枝、內存使用情況、 GC 頻率等。這些都可以幫助讀者解決服務負載高、 Jar 包衝突、驗證線上服務代碼、動態添加線上日誌等問題 並介紹了我們不得不學的那些 Linux 基礎命令,包括操控內存、 、網絡和網卡、磁盤 I/O 等命令。

在本章結尾介紹、分析、定位和解決了筆者在生產中遇到的線上應急和攻關的兩個典型案例,幫助讀者理解如何應用線上應急和技術攻關的方法,以及如何使用這些重要的命令和腳本並提供給大家解決疑難雜症的方法論。本章介紹的應急思想、攻關方法、實踐案例及解決方案能夠幫助大家對自己的服務保駕護航。

第七章 服務的容器化過程

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章小結

通過本節的內容,我們瞭解到虛擬機與容器之間的區別,以及容器給我們帶來的好處,並通過實戰操作,學習了Docker 的常用命令,本章主要介紹了鏡像、容器、磁盤卷、網絡、服和集群的實戰操作;然後介紹了Docker目前主要的管理工具: Swarm、 Kubemetes和 ApachMesos; 最後介紹了 wor press 博客系統的容器化的實現過程。

第八章 敏捷開發2.0的自動工具化

三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過

本章總結

通過對本章的學習,我們瞭解了常用的 種開發模式:瀑布式開發、法代式開發、螺旋式開發和敏捷開發;然後介紹了當下炙手可熱的 DevOps 及其詳細流程:最後介紹了敏捷開發 2.0和它的優勢,以及我們常用的自動化工具。

最後

由於本書籍文檔資料內容過多,全書共422頁,所以內容無法全部展示出來分享給大家,需要獲取此完整文檔資料的朋友們可以轉發分享一下此文。

關注小編,後臺發送私信“分佈式”即可免費獲取,感謝大家的轉發分享,你們的支持就是我最大的動力!


三月復工福利:分佈式服務架構從原理到實戰超讚PDF 走過就莫錯過


分享到:


相關文章: