程超 梁桂釗 秦金衛 方誌斌 張逸 杜琪 殷琦 肖冠宇 著
今天,我告訴大家一個好訊息,我和幾個好朋友的新書《高可用可伸縮微服務架構:基於 Dubbo、 Spring Cloud 和 Service Mesh》正式預售啦。全書分 14 章,共 528 頁。
歷時近一年半的書即將出版了,我內心的激動難以言表。除了感謝寫作團隊,還要感謝編輯陳曉猛對我們的不斷鼓勵和大力支援。最後,大家基於共同的對微服務架構技術的熱愛和樂於分享知識經驗的精神,我們把微服務架構領域的各類知識,以及自己平常的經驗和積累做了完整的梳理和總結,凝結為這樣一本技術書,作為 2019 年的一份禮物呈現給大家,歡迎大家共同探討和交流。
01
內容簡介
近年來微服務架構已經成為大規模分散式架構的主流技術,越來越多的公司已經或開始轉型為微服務架構。本書不以某一種微服務框架的使用為主題,而是對整個微服務生態進行系統性的講解,並結合工作中的大量實戰案例為讀者呈現一本讀完即可實際上手應用的工具書。
書中的理論部分介紹了微服務架構的發展歷程,通俗地講解了領域驅動設計,幫助讀者更好地利用DDD 來建模和劃分服務;微服務穩定性保證的常用手段和微服務下如何保證事務的一致性這兩章凝聚了作者多年的積累和思考,相信讀者看完後會有不一樣的感觸和收穫;書中實戰部分的內容非常豐富,以專案為基礎,逐層介紹常見的 Dubbo、Spring Cloud 和 Service Mesh 框架的具體使用方法,並對實現原理進行剖析;書中還以具體案例全面介紹了微服務雙活體系建設、微服務監控與告警、微服務編排、百億流量微服務閘道器的設計與實現,以及基於支付場景下的微服務改造等,並讓讀者瞭解如何藉助微服務來增強和重構現有的遺留系統。
不管是剛接觸微服務的新手,還是正在嘗試藉助微服務解放生產力的開發人員或運維人員,甚至是立志於構建高可用可伸縮的微服務體系的技術 Leader 和架構師,閱讀本書,對讀者必有裨益。
02
專家評價
經歷了系統從單體架構到 ESB 企業匯流排架構,再到全面的微服務化架構的整個改造過程,深知微服務看似美好,但在企業中落地實施其實是一件很困難的事情,本書不僅從理論高度上闡述了微服務架構,也有豐富的可操作的實踐案例,涉及服務劃分、框架選型、服務治理,尤其是當前流行的服務網格,恰如我們在微服務架構改造過程的真實寫照,相信大家也會從本書中獲得微服務最佳實踐的靈感和方向。
王明華(北京多來點資訊科技有限公司 CTO)
分而治之、高內聚、松耦合等是軟體開發領域的高頻詞彙,現階段,代表這類思路的熱門架構方法非微服務莫屬。恰如武術中的“見招拆招”,把各種變招加以拆解和演練,才能理解招式,若干招式組成套路,再結合時間、空間、身體結構,靈活運用,最終做到“拳無定勢”。本書幫你拆解微服務奧秘,從實戰角度帶你領略目前構建微服務的幾種主要工具,結合案例,細細道來,值得開發人員學習。
曹中勝(海康威視開發總監)
本書圍繞微服務架構高可用方面進行深度剖析,從實戰角度對微服務相關技術進行講解,教會我們如何輕鬆搭建可伸縮的微服務架構,以及所需要的基礎知識和技能,對一線架構師的工作有著非常大的指導意義。作者程超對微服務架構理解透徹,功力深厚,強烈向各位技術同行們推薦這本書!
黃勇(《架構探險》作者)
本書從微服務和領域驅動開發的角度闡述高可用和可伸縮架構,知識點改寫全面。書籍由多名一線網際網路資深人員聯合出品,體現了現代技術書籍的合作共贏的樣式。各位作者取長補短,將最好的內容呈現至讀者面前。在架構類的書層出不窮的當今,本書特點鮮明,是我眼中的優秀書籍,推薦讀者品讀。
張亮(京東數科資料研發負責人,
Apache ShardingSphere 發起人& PPMC,
《未來架構——從服務化到雲原生》作者 )
“微服務”早已成為廣大“碼農”們的聊天必備佳品,可每每深入“微服務架構在具體實踐中是怎樣實施的?微服務架構在實施過程中存在怎樣的困難和挑戰?服務以什麼原則拆分?拆分成什麼樣的顆粒度才算微?如何選型?”等一類的話題時,大家往往會三緘其口或乏善可陳。作者將自身多年的一線專案實踐經驗以文字形式將微服務的原理到專案實踐應用深入淺出地完整呈現出來,同時透過案例對微服務架構實施過程中存在問題及解決方法進行了總結,對於想快速學習、應用微服務架構的讀者來說是不可多得之作。
曾波(波姐,鵬博士電信傳媒集團 OTT 業務技術負責人)
微服務(MicroServices)定義較早見於 Martin Fowler 的著作和部落格中,但在此之前,有幾家公司早已開始了微服務的實踐探索,並建立了具備相當規模和影響力的產品,例如,阿裡巴巴開源的 Dubbo。而秦金衛正是在這一階段任職於阿裡巴巴,從事微服務相關的研發工作。最近幾年,微服務領域的基礎軟體層出不窮,由開源社群或一些大公司主導的方案都逐漸成熟,然而,卻也給微服務方案的選型帶來一些不便。本書結合常見的微服務產品,在服務研發、效能最佳化、監控、管理甚至遺留系統改造方面都做了全面的介紹,非常值得一讀。
宓學強(陌陌前技術主管,淘寶微服務框架負責人)
微服務架構對大型分散式後端的改造和最佳化非常有幫助,但是它並不容易實現,搞不好就會事倍功半。本書理論與實踐相結合,介紹了時下流行的 Dubbo、Spring Cloud、容器化等技術,以及實踐經驗,對於想瞭解微服務技術的你是一個不錯的選擇。
付磊(《Redis 開發與運維》作者)
微服務這兩年的熱度持續不減,支援這種理念的中介軟體、開發框架等產品也不斷迭代演進,我們可以運用的武器越來越多,但是這也使得技術人員在學習與選擇上增加了不少的難度。本書基於實戰,從架構的本質,微服務設計的原則到各環節重要技術點的分析等環節做了詳細的思路講解。其中也涵蓋了目前最流行的一些框架與產品,緊跟時代的步伐,所以我推薦想要深入瞭解微服務架構全貌的讀者閱讀此書。
翟永超(公眾號“程式猿 DD”、
《Spring Cloud 微服務實戰》作者)
很高興看到《高可用可伸縮微服務架構》一書問世,作者老師們是社群摯友,多年以來致力於技術架構研究與落地,本書集合了技術大咖精華,結合業界最佳實踐,展示微服務架構精華,是技術架構師們不可或缺的工具書。
王友強(中生代技術社群發起人)
微服務架構時下不斷升溫,如何針對自己當前業務場景進行微服務架構改造變得迫在眉睫,若同時還要兼顧高可用性、可伸縮性,這就要求架構師們具備龐大的技術體系,且不說容器化、DevOps、微服務監控和閘道器,光是核心的服務治理學習曲線就異常陡峭,這本書無疑如久旱甘霖,值得大家細細品讀。
蘭小偉(《Solr 權威指南》作者)
本書深入淺出地講解了微服務架構的理論與設計方法,並聚焦高可用和可伸縮這兩大特性,詳細分析了實現這兩大特性需要關註的方向,包括高可用、高併發、分散式事務等。而且介紹和分析了微服務實踐中使用的一系列基礎元件,包括遠端過程呼叫、閘道器、服務編排等。本書還透過具體的業務場景——支付場景來介紹如何在具體業務中實踐高可用、可伸縮的微服務架構。非常值得閱讀。
韋韜晟(Apache Dubbo Committer,
某網際網路金融公司架構師)
本書系統解答了 IT 企業在服務演進主線過程中,在微服務化技術升級和服務遷移過程中的一些核心節點的關鍵痛點問題。最終讓服務演進成基於領域建模,高可用、可伸縮的微服務架構,從而在技術層面解決當前一些大型企業和一些獨角獸企業遇到的服務化行程推進之痛,強烈建議大家閱讀學習。
徐凌雲(新華網線上教育平臺技術負責人,
京東雲閘道器研發負責人)
微服務架構對於金融行業從“穩態”到“敏態”的數字化轉型意義非凡,極大提升業務系統的可用性、擴充套件性和應變能力。作者基於一線實戰專案,深入淺出介紹微服務架構的各種技術細節。此刻此書,恰逢甘霖,給大家提供了一個學習微服務的捷徑。
胡曉磊(華為金融行業解決方案專家)
想知道怎樣建立起微服務架構的完整思維嗎?我覺得你應該看看這本書。它勾勒出微服務架構的程式設計思想和原理,介紹了微服務架構實體,讓我們對微服務架構的認識變得立體、系統起來。並且深入淺出、通俗易懂,既具有精煉的微服務架構之道,又包含精彩具象的實踐程式碼。不論初學程式設計的菜鳥,還是經驗豐富的大牛,都值得一讀。
周智勇(融貫電商高階研發總監)
本書階梯指引讀者深入微服務框架,滿滿的都是乾貨,從架構發展歷程引入微服務架構,透過與最近炙熱的領域驅動設計(DDD)結合碰撞出“感情火花”把架構設計講得通俗易懂,加上各個框架實現原理的深入解讀,讓讀者無論對框架還是微服務架構都有了更深刻的理解,再結合實際專案的實戰部分,讓微服務架構更加清晰地呈現在腦海裡。是一本通俗易懂的微服務架構工具書,非常值得擁有。
楊進京(美團金融技術專家)
本書改寫了微服務的方方面面——微服務理論、拆分依據、開發框架、穩定性保障、分散式事務、監控、微服務編排、重構乃至效能最佳化,甚至目前火熱的“Service Mesh”均有改寫。很難想象一本書竟然能介紹這麼龐大的技術體系,而且還能無縫地承接。閱讀本書,能讓您對微服務的完整生態有一個相對完整的認識,對於想快速瞭解並應用微服務構建系統的讀者來說是一部不可多得之作。
周立(《Spring Cloud 與 Docker 微服務架構實戰》作者)
本書從微服務架構概念開始,指出微服務的業務領域模型設計。重點講了微服務設計的重點和痛點:效能最佳化、監控、一致性、可用性等。既有理論依據、設計心得,又有工程實施方案;既有應用框架原始碼分析,又有自動化運維工具介紹。各位作者都是在金融和電商等行業一線出來的資深人員,內容深入淺出,是講述微服務的一本不可多得的好書。
王欣(Apache Dubbo PPMC)
時至今日,無論大型網際網路公司還是創業型公司,大家越來越多地選擇微服務架構。眾所周知,實現微服務架構是非常困難的,本書從理論到實踐闡述瞭如何搭建高可用可伸縮的微服務系統。這本書不單單介紹常用的 Apache Dubbo、Spring Cloud 等框架的使用,更重要的是告訴讀者使用微服務架構所遇到的常見問題及解決方案,是一本誠意十足和乾貨滿滿的書。
沈哲(《RxJava 2.x 實戰》作者,
愛回收創新業務部技術專家)
幾位熟悉的朋友合著的這本書我覺得擔得起兩個字“乾貨”,既有 Dubbo、Spring Cloud,還有最近討論比較多的 Service Mesh,關註案例的朋友重點看一下支付平臺、遺留系統改造等章節。贈人玫瑰、手有餘香,感謝諸位為微服務原創圖書再添佳作。如果說遺憾的話,就是讀完意猶未盡,期待續篇。
於君澤(《深入分散式快取》聯合作者)
我和本書作者程超在多年前相識於技術中,他的踏實、認真、對技術的孜孜不倦的精神給我留下了深刻的印象,我們惺惺相惜、相見恨晚。微服務架構是這些年非常火的名詞,不論是阿裡等巨型網際網路公司還是中小型企業,微服務均承載了大量的商業系統。本書緊密圍繞微服務架構,透過 DDD、Dubbo、Spring Cloud、閘道器、監控、穩定性等維度全方位地展示瞭如何將微服務架構做到高可用、可伸縮。本書內容豐富,對於體系化的思考和認知微服務系統的架構,有著非常重要的參考價值。
朱政科(《HikariCP 實戰》作者)
本書涉及微服務架構的眾多方面,且每個章節都很『乾』。雖說是關於微服務,但書中所講的概念和樣式,絕不僅僅是針對微服務,不管是經驗豐富的程式員,還是初出茅廬的新手,都能在本書中獲得所需的知識。
澤彬(阿裡巴巴技術專家)
03
推薦作序
史海峰
微信公眾號“IT 民工閑話”作者,
貝殼金服小微企業生態 CTO
四季有輪轉,行業有冷暖,人生有起落,智慧可傳承。本書的作者全部來自行業一線,具有相當豐富的微服務實戰經驗,更難得的是傾囊相授,總結最新案例結整合冊,分享給業界同仁。網際網路行業競爭激烈,技術日新月異,唯有持續學習成長,方能保持核心競爭力,在職業道路上站得穩走得遠。傳道授業解惑皆為我師,此行當以同懷報之。
天行健,君子以自強不息;地勢坤,君子以厚德載物。贊幾位作者老師,並與諸君共勉!
羅毅(北緯)
阿裡巴巴高階技術專家
Apache Dubbo 負責人
很榮幸在 Apache Dubbo 準備從阿帕奇軟體基金會畢業併成為頂級專案之際,應本書作者之一,也是 Apache Dubbo PPMC 之一的秦金衛先生的邀請來為本書作序。在今年 Apache Dubbo 的規劃中,雲原生微服務是路線圖中的重點。也以此序與諸位讀者共勉,期望 Apache Dubbo 能夠成為各位在架構選型中重點考慮的一環。
04
作者陣容
程超
網名小程故事多,現任某公司高階架構師,超過 12 年的 Java 研發經驗,8 年技術管理和架構經驗,熟悉支付和電商領域,擅長微服務生態建設和運維監控,對 Dubbo、Spring Cloud 和 gRPC 等微服務框架有深入研究,幫助多家公司進行過微服務建設和改造。合著作品《深入分散式快取》,阿裡雲 MVP、雲棲社群外部專家、Codingfly 社群特聘技術專家、CSDN 博主專家。
梁桂釗
現任某網際網路公司高階開發工程師,參與過內容分發、K12 教育、淘系電商等專案。目前,專註於新零售電商服務的業務摸索和電商服務創新實踐。具有 Java 核心技術、微服務、分散式、高併發等領域一線實戰經驗,並對新興技術方向和各種開源框架有濃厚興趣。公眾號「服務端思維」的作者。
秦金衛(KimmKing)
現任某公司高階技術總監/Apache Dubbo PPMC,阿裡前架構師/某商業銀行北京研發中心負責人。關註網際網路、電商、金融、支付、區塊鏈等領域,10 多年研發管理和架構經驗,對於中介軟體、SOA、微服務,以及各種開源技術非常熱衷,活躍於 Dubbo、Fastjson、Mule、ActiveMQ 等多個開源社群。個人部落格 http://kimmking.github.io。
方誌斌
現任某物聯網公司高階研發工程師。目前專註於大型物聯網平臺架構的設計與開發工作。對於微服務、分散式、叢集有一定的研究和實戰經驗。對 Java 領域的開源框架有濃厚的興趣,喜歡深入分析、總結框架原始碼。SpringForAll 社群核心成員,組織多次社群技術專題、問答等活動。
張逸
架構編碼實踐者,微服務架構設計者,領域驅動設計佈道師,大資料平臺架構師。著譯作包括《軟體設計精要與樣式》《恰如其分的軟體架構》《人件》等。個人微信公眾號為「逸言」,個人部落格:http://zhangyi.xyz。
杜琪
網名阿杜,現任螞蟻金服高階研發工程師,2015 年 6 月畢業於南開大學,計算機系統結構碩士。畢業後開始接觸分散式業務系統開發,曾在有贊負責使用者中心基礎服務,對分散式業務系統的穩定性、可靠性有豐富的經驗。喜歡研究底層技術,喜歡研究疑難技術問題,例如 JVM 記憶體問題排查、GC 調優,等等。有對外輸出分享的習慣,是公眾號 javaadu 的維護者。
殷琦
網名滌生,現任“美團點評”技術專家,2015 年 3 月畢業於東華大學,軟體工程碩士。2015 年 3 月加入“美團點評”基礎架構部,開始接觸微服務架構,之後一直從事服務框架的研發工作,對微服務架構發展與演進有非常深刻的認識。個人比較喜歡研究並分享新技術,時刻關註並實踐微服務架構最前沿的技術,如 Service Mesh、Serverless 等。
肖冠宇
曾就職於小米、人民網等網際網路公司,具有豐富的大資料一線實戰經驗,專註大資料處理技術及機器學習演演算法研究。著有《企業大資料處理:Spark、Druid、Flume 與 Kafka 應用實踐》《Python3 快速入門與實戰》等書籍。
05
目錄概覽
第 1 章:微服務架構概述(作者秦金衛)。
本章從軟體架構的發展歷程講起,分別對單體架構、SOA 架構和微服務架構的演進過程做了深入淺出的講解,同時深入介紹了微服務架構的特點,希望以宏觀的視角為讀者開啟微服務的大門。
第 2 章:微服務領域驅動設計(作者張逸)。
本章介紹了領域驅動設計是什麼,常見的領域架構有哪些,如何將領域驅動應用到微服務中,以及如何使用領域驅動進行合理的服務劃分等,幫助讀者在正式學習微服務前修煉“內功”。
第 3 章:Apache Dubbo 框架的原理與實現(作者程超)。
目前 Dubbo 已經被阿裡巴巴技術團隊重新維護並且得到了大力的發展和推廣,使用 Dubbo 可以很好地進行微服務建設,本章較為深入地講解了 Dubbo 的使用和技巧,以及透過時原始碼的深入分析能夠讓讀者對 Dubbo 的原理實現有一個全面的認識。
第 4 章:Spring Boot/Spring Cloud 實踐(作者方誌斌)。
Spring Boot/Cloud 是目前較為流行的微服務框架,本章以大量的實戰案例為線索,為讀者講解如何才能使用好 Spring Cloud 框架,講解如何避免在使用過程中“踩坑”。
第 5 章:微服務穩定性保證的常用手段(作者杜琪)。
在業務發展越來越快,規模也越來越大的情況下,我們所面臨的就是如何在服務越來越多的情況下保證微服務架構的穩定性,本章講解保障穩定性的常用技巧和手段。
第 6 章:微服務下如何保證事務的一致性(作者梁桂釗)。
本章介紹了從本地事務到分散式事務的演變,深入分析了微服務在強一致性場景和最終一致性場景下的解決方案,探討了二階段提交協議、三階段提交協議、TCC 樣式、補償樣式、可 靠事件樣式等。同時,對開源專案的分散式事務進行解讀,包括 RocketMQ 和ServiceComb。
第 7 章:百億流量微服務億級閘道器的設計與實現(作者秦金衛)。
本章從百億流量交易系統微服務閘道器(API Gateway)的現狀和麵臨問題出發,闡述微服務 架構與 API 閘道器的關係,理順流量閘道器與業務閘道器的脈絡,分享全面的 API 閘道器知識與經驗。
第 8 章:微服務編排(作者程超)。
本章以 Netflix Conductor 框架為核心,從框架的使用和原理的角度深入介紹了什麼是微服務編排,為微服務執行複雜的業務邏輯提供了一種新的思路。
第 9 章:微服務資料抽取與統計(作者肖冠宇)。
在微服務架構下,服務必將越來越多,在這種情況下進行資料統計和分析將變得非常困難,本章將深入講解如何從不同服務的資料庫中抽取資料到統一的大資料平臺中,幫忙使用者更方便地進行資料的統計。
第 10 章:微服務雙活體系建設(作者程超)。
在企業發展規模越來越大的情況下,使用者對系統的穩定性要求也越來越高,那麼單機房部署勢必成為發展的瓶頸,本章將以實際案例出發講解同城雙活的建設。
第 11 章:基於支付場景下的微服務改造與效能最佳化(作者程超)。
本章從實際的案例出發,在具體的支付業務場景下,從一個新專案開始逐步講解如何利用領域驅動劃分服務,如何利用微服務框架進行服務治理,以及專案完成後怎樣提升微服務架構的效能。
第 12 章:遺留系統的微服務架構改造(作者梁桂釗)。
本章介紹了遺留系統的微服務架構改造,梳理了程式碼分層結構的轉變,提出一個新的程式碼分層思路來應對微服務的流行與普及,並深入思考了遺留系統的債券,深入探討單體系統拆分服務的方法論。同時,對遺留系統的微服務架構改造的解決方案給出 9 個切實可行的核心實踐思路。
第 13 章:Service Mesh 詳解(作者殷琦)。
隨著微服務的持續發展,下一代微服務架構已然出現,本章將深入介紹 Service Mesh 的發展歷程,以及結合具體案例帶領讀者使用 Istio 進行具體實踐。
第 14 章:微服務監控實戰(作者程超)。
本章重點介紹 APM 的原理,從零開始開發 APM 監控系統,還深入介紹 Prometheus 的安裝和原理,以及如何使用 Prometheus 進行監控和預警。
06
預售通道
朋友會在“發現-看一看”看到你“在看”的內容