天天看點

《SpringBoot揭秘:快速建構微服務體系》目錄—導讀

《SpringBoot揭秘:快速建構微服務體系》目錄—導讀

前  言

為什麼寫這本書

忘了是2015年的哪一天,隻記得幾個朋友跟友商的其他幾個做技術的朋友吃飯,并簡單做下技術交流。席間,友商的幾位朋友對springboot架構實施微服務很感興趣,交談甚歡之際,我無意間開玩笑說:“是不是該考慮寫一本springboot的書?”鐘倫甫(原淘寶聚石)同學随口一句,“你倒是寫啊!”,得,以行踐言吧,誰讓你把話說出去了呢?

當然,朋友的“熱切期盼”隻是其一,微服務盛行也是本書寫作的一個契機, 希望本書成為國内第一本微服務相關的原創圖書,借此跟大家分享我對微服務的淺薄了解,并圍繞springboot微架構打造一套微服務體系可能的探索方向,權作抛磚引玉。如果不同的思想可以借此激蕩和碰撞形成更多共鳴,則吾之幸甚。

因工作繁忙,隻能抽取零碎時間躬耕于晨曦和月光之下,經點滴積累,才終成此書,希望大家閱讀愉快。

本書的主要内容和特色

本書以介紹微服務的基本概念開篇,逐漸引出java平台下打造微服務的利器—springboot微架構。書中從springboot微架構的“出身”開始,循序漸進,一步步為大家剖析springboot微架構的設計理念和原理,并對架構的重點功能和子產品進行了逐一講解。

當然,這還隻是“前戲”,本書最精彩的部分在于,在大家對springboot微架構已經有了基本的認識之後,我們将一起探索如何基于springboot微架構打造一套完備的微服務體系。因為如果沒有平台化體系化的基礎支撐,空談微服務将無太大意義。

springboot微架構依托java平台和spring架構,擁有良好的可擴充性和可定制性,為了說明這一點,我們單獨開辟了一章内容,為大家介紹如何使用scala和springboot微架構來開發和傳遞相應的微服務,并且圍繞scala和springboot如何打造相應的工具,技術産品等支援來提高相應微服務的傳遞效率。

最後我會與大家一起對springboot微架構的相關内容進行回顧和展望,以期溫故而知新。

本書總體上可以總結為三個關鍵詞,“架構、體系、生态”,三者循序漸進,相輔相成,在使用springboot微架構打造自己特色的微服務體系和技術生态之時,希望大家記住這三個關鍵詞。

本書面向的讀者

本書希望面向的讀者當然是那些對springboot微架構感興趣的同學,如果你想了解springboot微架構,并且嘗試進一步深入定制該架構以滿足自己團隊和公司的需要,也希望會對你有所啟發。

除此之外還包括:

java平台上的廣大研發同學,可以借此書了解業界微服務相關的最新動态。

其他平台上的廣大研發同學,可借此書“管中窺豹”,了解微服務的一般體系和生态建設,對比并引入自身的技術和微服務體系建設之中。

脫離技術一線已久的技術負責人。

如何閱讀本書

本書采用循序漸進的形式編寫,是以順序閱讀是推薦的閱讀方式。

勘誤和資源

鑒于一家之言且編撰倉促,難免會有所纰漏,觀點有失偏頗,是以,我在github網站上專門建立了一個issue項目,如果大家在閱讀此書之後發現有哪些錯誤和疑問,或者改進建議,可以在此項目上建立issue來表達自己的觀點和建議。如果時間不充裕,我會适時地選擇性給予答複,當然,更希望大家可以通過issue展開讨論,互相切磋和解答疑問 。

緻謝

除了最初的一句戲言,鐘倫甫同學也是本書的第一位讀者,幫助審稿并提出很多建議,是以,本書得以出版,第一需要感謝的就是鐘倫甫同學。

其次,我要感謝華章出版社的楊福川和李藝,福川兄在接到我的出版意向之後,快速地跟進和落實,在本書初稿編寫完成時馬上着手出版,諸位得以在2016年上半年就手捧此書,皆需感謝福川兄的重點關注和推進。

最後要感謝我的父母,感謝他們把我帶到這個世界上并讓我做自己想做和要做的事情。

目  錄

前言

<a href="https://yq.aliyun.com/articles/90112">第1章 了解微服務</a>

<a href="https://yq.aliyun.com/articles/90112">1.1 什麼是微服務</a>

<a href="https://yq.aliyun.com/articles/90113">1.2 微服務因何而生</a>

<a href="https://yq.aliyun.com/articles/90115">1.3 微服務會帶來哪些好處</a>

1.3.1 獨立,獨立,還是獨立

1.3.2 多語言生态

<a href="https://yq.aliyun.com/articles/90117">1.4 微服務會帶來哪些挑戰</a>

<a href="https://yq.aliyun.com/articles/90119">1.5 本章小結</a>

<a href="https://yq.aliyun.com/articles/90122">第2章 飲水思源:回顧與探索spring架構的本質</a>

<a href="https://yq.aliyun.com/articles/90122">2.1 spring架構的起源</a>

<a href="https://yq.aliyun.com/articles/90127">2.2 spring ioc其實很簡單</a>

<a href="https://yq.aliyun.com/articles/90137">2.3 了解一點兒javaconfig</a>

2.3.1 那些高曝光率的annotation

<a href="https://yq.aliyun.com/articles/90139">2.4 本章小結</a>

<a href="https://yq.aliyun.com/articles/90144">第3章 springboot的工作機制</a>

<a href="https://yq.aliyun.com/articles/90144">3.1 springboot初體驗</a>

<a href="https://yq.aliyun.com/articles/90148">3.2 @springbootapplication背後的秘密</a>

3.2.1 @configuration創世紀

3.2.2 @enableautoconfiguration的功效

3.2.3 可有可無的@componentscan

<a href="https://yq.aliyun.com/articles/90200">3.3 springapplication:springboot程式啟動的一站式解決方案</a>

3.3.1 深入探索springapplication執行流程

3.3.2 springapplicationrunlistener

3.3.3 applicationlistener

3.3.4 applicationcontextinitializer

3.3.5 commandlinerunner

<a href="https://yq.aliyun.com/articles/90206">3.4 再談自動配置</a>

3.4.1 基于條件的自動配置

3.4.2 調整自動配置的順序

<a href="https://yq.aliyun.com/articles/90214">3.5 本章小結</a>

第4章 了解紛雜的spring-boot-starter

4.1 應用日志和spring-boot-starter-logging

4.2 快速web應用開發與spring-boot-starter-web

4.2.1 項目結構層面的約定

4.2.2 springmvc架構層面的約定和定制

4.2.3 嵌入式web容器層面的約定和定制

4.3 資料通路與spring-boot-starter-jdbc

4.3.1 springboot應用的資料庫版本化管理

4.4 spring-boot-starter-aop及其使用場景說明

4.4.1 spring-boot-starter-aop在建構spring-boot-starter-metrics自定義子產品中的應用

4.5 應用安全與spring-boot-starter-security

4.5.1 了解springsecurity基本設計

4.5.2 進一步定制spring-boot-starter-security

4.6 應用監控與spring-boot-starter-actuator

4.6.1 自定義應用的健康狀态檢查

4.6.2 開放的endpoints才真正“有用”

4.6.3 用還是不用,這是個問題

4.7 本章小結

第5章 springboot微服務實踐探索

5.1 使用springboot建構微服務

5.1.1 建立基于dubbo架構的springboot微服務

5.1.2 使用springboot快速建構web api

5.1.3 使用springboot建構其他形式的微服務

5.2 springboot微服務的釋出與部署

5.2.1 spring-boot-starter的釋出與部署方式

5.2.2 基于rpm的釋出與部署方式

5.2.3 基于docker的釋出與部署方式

5.3 springboot微服務的注冊與發現

5.4 springboot微服務的監控與運維

5.4.1 推還是拉,這一直是個問題

5.4.2 從局部性觸發式報警到系統性智能化報警

5.5 springboot微服務的安全與防護

5.6 springboot微服務體系的脊梁:釋出與部署平台

5.7 本章小結

第6章 springboot與scala

6.1 使用maven建構和釋出基于springboot的scala應用

6.1.1 進一步簡化基于maven的scala項目建立

6.1.2 進一步簡化基于scala的web api開發

6.2 使用sbt建構和釋出基于springboot的scala應用

6.2.1 探索基于sbt的springboot應用開發模式

6.2.2 探索基于sbt的springboot應用釋出政策

6.3 本章小結

第7章 springboot總結與展望