TOP
0
0
【23號簡體館日】限時三天領券享優惠!!
高可用可伸縮微服務架構:基於Dubbo、Spring Cloud和Service Mesh(簡體書)
滿額折

高可用可伸縮微服務架構:基於Dubbo、Spring Cloud和Service Mesh(簡體書)

人民幣定價:108 元
定  價:NT$ 648 元
優惠價:87564
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:16 點
相關商品
商品簡介
作者簡介
目次

商品簡介

近年來微服務架構已經成為大規模分布式架構的主流技術,越來越多的公司已經或開始轉型為微服務架構。本書不以某一種微服務框架的使用為主題,而是對整個微服務生態進行系統性的講解,並結合工作中的大量實戰案例為讀者呈現一本讀完即可落地的工具書。書中的理論部分介紹了微服務架構的發展歷程,深入通俗地講解了領域驅動設計,幫助讀者更好地利用DDD來建模和劃分服務;穩定性保證的常用手段和分布式事務的一致性方案這兩章凝聚了作者多年的積累和思考,相信讀者看完後會有不一樣的感觸和收穫;書中實戰部分的內容非常豐富,以項目為基礎,逐層介紹常見的Dubbo、Spring Cloud和Service Mesh框架的具體使用方法,並對實現原理進行剖析;書中還以具體案例全面介紹了微服務雙活體系建設、微服務監控與告警、微服務編排、百億流量微服務網關的設計與實現,以及基於支付場景下的微服務改造等,並讓讀者瞭解如何借助微服務來增強和重構現有的遺留系統。

作者簡介

程超,網名小程故事多,現任某公司高級架構師,超過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快速入門與實戰》等書籍。

序一



微服務是軟件架構設計領域近年最重要的創新之一,伴隨著容器化、Devops和敏捷開發滾滾而來,短短幾年從新鮮名詞成為互聯網行業主流架構理念,滿足互聯網業務高速發展對系統高可用可伸縮的需求。軟件架構設計的概念來自於建築學,描述了構成系統的代碼模塊組織形態,是團隊協作開發的必要共識。與建築架構相同,軟件架構設計在繼承中不斷創新,而規模和更新速度遠超依賴實體的建築行業。微服務是對大型互聯網系統架構最佳實踐的提煉總結,是SOA思想的延伸,並沒有統一標準,比如本書中講解的Dubbo和Spring Cloud,當然還有許多其他的實現方式可供選擇,無數業界的同仁們正在代碼的世界裡構建著自己心中的微服務。
服務即能力,無論雲計算的SaaS、PaaS、IaaS,還是衍生出的各種“*aaS”,都強調輸出能力,而非技術――謂之“賦能”。20年來,我見證了系統架構從C/S到雲原生一路進化、推陳出新,也曾糾結於對比微服務和SOA的異同,最終則是領悟到一切應用皆服務,與多年來言必稱系統的思維定式揮手道別。微服務不會是大型系統架構的終態,新的趨勢正在崛起,一切都不是設計出來的,而是在開源時代,凝結在靈光和業務創新之中。涓涓細流,匯成江海,也許更新一代的架構萌芽正在你的指尖敲出。這正是我們所處的行業激動人心之所在,這是我們最好的時代。
四季有輪轉,行業有冷暖,人生有起落,智慧可傳承。本書的作者全部來自行業一線,具有相當豐富的微服務實戰經驗,更難得的是傾囊相授,總結最新案例結集成冊,分享給業界同仁。互聯網行業競爭激烈,技術日新月異,唯有持續學習成長,方能保持核心競爭力,在職業道路上站得穩走得遠。傳道授業解惑皆為我師,此行當以同懷報之。
天行健,君子以自強不息;地勢坤,君子以厚德載物。贊幾位作者老師,並與諸君共勉!

史海峰
(微信公眾號“IT民工閒話”作者,貝殼金服小微企業生態CTO)

序二



微服務是近幾年流行起來的軟件架構風格。回顧歷史,從傳統的單體應用架構,到面向服務架構SOA,再到今天逐漸被大眾接受的微服務架構MSA,本質上來說,都是為了解決隨著軟件複雜度的上升,如何有效提升開發效率、發佈效率的問題。
同樣,這個問題在阿裡巴巴電商系統的發展歷程中也遇到過。由於業務體量巨大、需求變更頻繁,導致淘寶和淘寶商城(天貓的前身)的研發效率變得低下,在這個背景下,2008年10月立項了著名的“五彩石”項目,對電商系統做了系統的拆分,完成了服務化改造。通過這個項目,孕育出了以HSF、Notify 為代表的分布式中間件組件。並且,在隨後的十年中,分布式中間件蓬勃發展,從軟負載中心Config Server、配置中心Diamond Server,到全鏈路追蹤 EagleEye、限流Sentinel,再到全鏈路壓測體系,可以說,基於分布式中間件構建的整個服務化體系是支撐“雙11”GMV從2019年的5000萬元到今天驚人的2135億元的技術基石。正是服務化改造的成功實施和不斷演進,為每年萬億流量的洪峰及層出不窮的大促玩法保駕護航了有10個年頭。
當然,“沒有銀彈”的定律是亙古不變的。微服務架構在提升開發效率、提升系統擴展能力的同時,也帶來了諸多複雜性,比如:運維上的開銷、跨進程通信聯調的問題、分布式系統的學習成本、排查問題的難度,以及測試回歸上的諸多問題。所以,在採用微服務架構之前,要對上面提到的這些挑戰、自己的業務,以及自己團隊的技能集有著很清醒的瞭解,切勿為了微服務而微服務。即使是在選擇了微服務架構之後,也會面臨技術棧選型的問題,從國內廣泛使用的Apache Dubbo,到國際上的Spring Cloud,JavaEE Micoprofile領域的JBoss Wildfly,再到最近開始提出的Cloud Native MicroServices,選擇並成功實施其中的一種技術棧,成為廣大架構師們撓頭的事情。好在現在出現了一本《高可用可伸縮微服務架構》,從微服務基礎介紹起,橫向地比較了三種有代表性的微服務架構選型,探討了微服務架構中後期需要解決的事務、網關、服務編排、高可用等高級話題,並深入分享了實戰案例。整本書從基礎概念到高級話題,從理論到實踐都有涉及,面面俱到,實屬架構師案頭不可或缺的參考書。
很榮幸在Apache Dubbo準備從阿帕奇軟件基金會畢業並成為頂級項目之際,應本書作者之一,也是Apache Dubbo PPMC之一的秦金衛先生的邀請來為本書作序。在今年Apache Dubbo的規劃中,雲原生微服務是路線圖中的重點。也以此序與諸位讀者共勉,期望Apache Dubbo能夠成為各位在架構選型中重點考慮的一環。

羅毅
(花名北緯,阿裡巴巴高級技術專家,Apache Dubbo負責人)


前言

微服務這個概念最早是在2011年5月在意大利威尼斯的一個軟件架構會議上討論並提出的,用於描述一些作為通用架構風格的設計原則。2012年3月在波蘭克拉科夫舉行的“第33屆學位會議”上,ThoughtWorks公司的首席諮詢師James Lewis做了題為“Microservices - Java, the Unix Way”的演講(http://2012.33degree.org/talk/show/67),這次演講裡James討論了微服務的一些原則和特徵,例如單一服務職責、康威定律、自動擴展、DDD等。
微服務架構則是由Fred George在2012年的一次技術大會上所提出的(http://oredev.org/ oredev2012/2012/sessions/micro-service-architecture.html),在大會的演講中,他講解了如何分拆服務,以及如何利用MQ來進行服務間的解耦,這就是最早的微服務架構的雛形。而後由Martin Fowler發揚光大,並且在2014年發表了一篇著名的文章(https://martinfowler.com/articles/ microservices.html),這篇文章深入全面地講解了什麼是微服務架構。隨後,微服務架構逐漸成為一種非常流行的架構模式,一大批的技術框架和文章湧現出來,越來越多的公司借鑒和使用微服務架構。
然而微服務並不能“包治百病”,我們在實施的過程中不能簡單地使用某些個微服務框架或組件一蹴而就,而是需要將業務、技術和運維有機地結合起來,配合同步實施,並且在此過程中還需要踩過很多的“坑”才能取得成功。
本書的每一個章節都是相關領域的專家經過多年的技術積累提煉而成的。秉承以理論為基礎,以大量企業實戰案例為核心的宗旨。本書深入全面地介紹微服務架構的實施方法,以及在實施過程中所遇到的問題和解決方案,是一本內容翔實、“可落地”的理論與實踐相結合的技術書籍。

不忘初心,方得始終

在2017年8月份的一次技術大會上,我與電子工業出版社博文視點公司的編輯陳曉猛相識。我們溝通了很久,並且在很多想法上是高度一致的,由此我萌生了想寫一本技術書籍的念頭。關於書的主題,我考慮了很久,特別是對於自己近幾年的工作經驗的思考和總結,最終決定以“微服務”作為主題。
最初我邀請了秦金衛和方志斌作為寫作團隊的成員。我們三人在創作思路上一拍即合,計劃以微服務架構的概念和內容,Dubbo和Spring Cloud的原理和實踐,以及我們在工作中的各種思考和最佳實踐為主體內容,三人分工協作,創作一本業內前沿的微服務架構書籍。然而寫作卻是一個漫長的過程,需要的不僅是一腔熱血,還需要持之以恆的精神。這個過程中我們三人都因為各自的事情很忙導致寫作時停時續,甚至想過放棄,但我們始終沒有忘卻初心,互相鼓勵堅持下去。志斌工作較忙經常出差,以至於我看到他經常在淩晨二三點的時候還在更新文章;金衛一直有很多好的想法,給我們寫作提供了很多有用的建議,我們也是經常溝通到半夜。在這個不斷有思想火花碰撞的過程中,我們決定增加了一些章節使本書的整體內容更豐富全面、實用性更強。於是我又邀請了梁桂釗、杜琪、張逸、殷琦和肖冠宇五位朋友加入,為本書注入新的能量。桂釗雖然加入較晚,但卻非常投入,參與寫作了很多章節;杜琪在加入寫作之時寶寶還沒有降生,現在應該也有半歲了;張逸、殷琦和冠宇在本書快完成之時緊急馳援,高效地完成了各自負責的章節。我們寫作團隊的成員都不在一個城市,來自祖國各地,但我們為了初心而凝聚在一起,這就是大家的團隊精神。
歷時近一年半的書即將出版了,我內心的激動難以言表。除了感謝寫作團隊,我還要感謝編輯陳曉猛對我的不斷鼓勵和大力支持,感謝好友王文斌提供了好多有用的建議。我也要感謝家人對我的支持,在這本書出版之際,我的兒子多多剛滿三歲,我要感謝兒子,讓我“借用”了很多原本陪伴他成長的寶貴時間。
最後我想說的是,我們團隊不全是微服務架構方面的技術專家,但是大家基於共同的對微服務架構技術的熱愛和樂於分享知識經驗的精神,我們把微服務架構領域的各類知識,以及自己平常的經驗和積累做了完整的梳理和總結,凝結為這樣一本技術書,作為2019年的一份禮物呈現給大家,歡迎大家共同探討和交流。

本書適合的讀者

本書講解如何通過Dubbo、Spring Cloud、Service Mesh等技術來構建微服務體系,並深入淺出地介紹了微服務架構發展歷程、領域驅動設計、穩定性保證的常用手段、分布式事務的一致性方案;本書還通過大量的案例探討微服務落地方案,例如雙活體系建設、分布式監控、微服務編排、百億流量微服務網關的設計與實現、基於支付場景下的微服務改造等;書籍後半部展示了實現微服務架構的完整藍圖,並讓讀者瞭解如何借助微服務來增強和重構現有的遺留系統。無論剛接觸微服務的新手,還是正在嘗試借助微服務解放生產力的開發人員或運維人員,或者是立志于構建高可用可伸縮的微服務體系的架構師,閱讀本書,對讀者必有裨益。
本書內容
本書共14章,每章的具體內容如下。
第1章:微服務架構概述(作者秦金衛

目次

目錄




第1章 微服務架構概述
1.1 什麼是架構
1.2 幾個相關概念
1.3 從軟件的生命週期看架構設計
1.4 架構的形式與特點
1.5 架構的目標與方法
1.6 架構的不同風格
第2章 微服務領域驅動設計
2.1 領域驅動設計
2.1.1 領域驅動設計概覽
2.1.2 問題域與解決方案域
2.1.3 限界上下文
2.1.4 上下文映射
2.1.5 領域架構
2.2 微服務的設計
2.2.1 限界上下文的邊界
2.2.2 限界上下文即微服務
2.2.3 識別限界上下文
2.2.4 微服務之間的協作
2.3 小結
第3章 Apache Dubbo框架的原理與實現
3.1 Dubbo框架的選型與使用
3.1.1 Dubbo框架的選型
3.1.2 Dubbo框架的使用
3.2 Dubbo框架的原理分析
3.2.1 總體架構分析
3.2.2 Dubbo Bean的加載
3.2.3 Dubbo Extension機制
3.2.4 Dubbo消費端
3.2.5 Dubbo服務端
3.2.6 Dubbo的通信機制
3.3 基於Dubbo的自動化Mock系統
3.3.1 Mock模擬系統的產生
3.3.2 Dubbo Mock的使用
3.3.3 Dubbo Mock的原理解析
3.3.4 自動化Mock系統的實現
第4章 Spring Boot/Spring Cloud實踐
4.1 Spring Boot原理剖析
4.1.1 Spring Boot Quick Start
4.1.2 Spring Boot之SpringApplication
4.1.3 spring-boot-loaded模塊分析
4.1.4 spring-boot-autoconfigure模塊分析
4.1.5 Spring Boot Conditional注解分析
4.2 Dubbo Spring Boot Starter
4.2.1 Dubbo Spring Boot Starter簡介
4.2.2 Dubbo Initializr及sample
4.2.3 dubbo-spring-boot-autoconfigure模塊
4.2.4 dubbo-spring-boot-actuator模塊
4.3 Spring Cloud棧
4.3.1 為什麼微服務架構需要Spring Cloud
4.3.2 Spring Cloud技術棧總覽
4.3.3 spring-cloud-scaffold基礎庫集合
4.4 基於Maven Archetype的腳手架
4.4.1 Maven Archetype
4.4.2 腳手架的搭建
4.4.3 生成腳手架
第5章 微服務穩定性保證的常用手段
5.1 微服務的穩定性
5.2 高可用
5.2.1 限流原理與實現
5.2.2 斷路器原理與實現
5.2.3 超時與重試
5.3 高併發
5.3.1 異步
5.3.2 緩存
5.4 總結
第6章 微服務下如何保證事務的一致性
6.1 從本地事務到分布式事務的演變
6.2 強一致性解決方案
6.2.1 二階段提交協議
6.2.2 三階段提交協議
6.3 最終一致性解決方案
6.3.1 TCC模式
6.3.2 補償模式
6.3.3 可靠事件模式
6.4 開源項目的分布式事務實現解讀
6.4.1 Apache RocketMQ
6.4.2 ServiceComb
第7章 百億流量微服務網關的設計與實現
7.1 API網關概述
7.1.1 分布式服務架構、微服務架構與 API 網關
7.1.2 API網關的定義、職能與關注點
7.1.3 API網關的分類與技術分析
7.2 開源網關的分析與調研
7.2.1 常見的開源網關介紹
7.2.2 四大開源網關的對比分析
7.2.3 開源網關的技術總結
7.3 百億流量交易系統API網關設計
7.3.1 百億流量交易系統API網關的現狀和面臨問題
7.3.2 業務網關的設計與最佳實踐
第8章 微服務編排
8.1 Netflix Conductor
8.2 Netflix Conductor的架構
8.3 Conductor的使用案例
8.4 Netflix Conductor源碼分析
8.4.1 Client層源碼分析
8.4.2 Server端源碼分析
8.4.3 core端源碼分析
第9章 微服務數據抽取與統計
9.1 案例小故事
9.2 數據倉庫概述
9.2.1 什麼是數據倉庫
9.2.2 數據倉庫架構
9.2.3 數據倉庫建模方法
9.2.4 數據抽取、轉換和加載
9.2.5 數據統計
9.3 數據倉庫工具Hive
9.3.1 安裝Hive
9.3.2 Hive數據庫
9.3.3 Hive表
9.4 使用Sqoop抽取數據
9.4.1 安裝Sqoop
9.4.2 將MySQL表數據導入Hive表
9.5 ETL作業調度
第10章 微服務雙活體系建設
10.1 系統高可用
10.2 雙活數據中心
10.2.1 單機房部署
10.2.2 雙機房部署
10.2.3 基於支付場景的雙活體系建設
第11章 基於支付場景下的微服務改造與性能優化
11.1 支付場景的介紹
11.2 支付業務建模和服務劃分
11.3 支付場景下微服務架構的詳解與分析
11.3.1 業務架構分析
11.3.2 技術平臺詳解
11.4 從代碼層面提升微服務架構的性能
11.4.1 從代碼和設計的角度看
11.4.2 從整體架構的角度看
11.5 微服務架構中常見的一些故障分析技巧
第12章 遺留系統的微服務架構改造
12.1 代碼分層結構的轉變
12.2 遺留系統的債券與思考
12.3 從單體系統拆分服務的方法論
12.4 遺留系統的微服務架構改造
12.4.1 從代碼重構開始
12.4.2 拆分服務需要面向服務進行架構設計
12.4.3 改造是一個漸進的過程
12.4.4 單元測試是基石
12.4.5 面向失敗的設計
12.4.6 前後端分離
12.4.7 共享現有數據庫
12.4.8 灰度發佈的必要性
12.4.9 日誌聚合與全鏈路監控
第13章 Service Mesh詳解
13.1 Service Mesh是什麼
13.2 Service Mesh的背景
13.3 Service Mesh介紹
13.3.1 Service Mesh架構
13.3.2 Service Mesh能做什麼
13.4 Service Mesh的價值
13.5 Service Mesh現狀
13.6 Service Mesh存在的問題
13.7 Istio詳解
13.7.1 Istio架構
13.7.2 數據平面
13.7.3 控制平面
13.7.4 Isito案例
13.8 Service Mesh展望
第14章 微服務監控實戰
14.1 APM原理與應用
14.1.1 什麼是APM
14.1.2 APM監控點
14.1.3 APM深入解析
14.2 Prometheus監控系統介紹
14.2.1 Prometheus的主要特點
14.2.2 Prometheus的架構及組件介紹
14.2.3 Prometheus的安裝
14.2.4 使用Prometheus對MySQL進行監控
14.2.5 Prometheus的告警機制

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 564
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區