Java电子书:Spring Cloud Alibaba 微服务原理与实战 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
" O; O$ i; R/ O
* u! D3 @$ g, X
) s% i! l4 r @2 k编号:mudaima-P0100【Java吧 java8.com】) X7 ^9 P8 }. j$ w5 {$ x
& _/ c, K6 Z! J( d. V( y" m1 s, H% s" y' G. q5 f; Z7 p
9 T" B. M* y, o3 ^Java电子书目录:前言
$ ]' T7 F0 k' v' ?; `& s第1章 微服务的发展史
. [1 q! m5 F7 g1.1 从单体架构到分布式架构的演进 6 ]9 y' m% C0 A+ m
1.1.1 单体架构
8 {; C; s4 R0 {" W( S1 K( l( G1.1.2 集群及垂直化
8 I* u. a9 c& L5 A2 Q r1 A$ Q8 K1.1.3 SOA 5 w4 u! R# _# b9 a, z& U1 n
1.1.4 微服务架构
( d" d- } R/ @3 v- L# p3 c, F0 [' @1.2 微服务架构带来的挑战
}$ {1 G! C5 @& D2 k1.2.1 微服务架构的优点
$ F3 K( `9 ?& m- B; K: v) }3 N1.2.2 微服务架构面临的挑战
: L, W4 ?4 x( b& w1 ^2 @) ~5 D1.3 如何实现微服务架构 5 k( B7 _7 F6 I7 E
1.3.1 微服务架构图 " K6 w& f D% A+ b m' S
1.3.2 微服务架构下的技术挑战
7 l' j) C X E第2章 微服务解决方案之Spring Cloud
- }" E4 v# u7 _2.1 什么是Spring Cloud
# w i- y% L& m; a" v2.2 Spring Cloud版本简介
; Z4 J3 y: h' D' r, ^- f) B2.3 Spring Cloud规范下的实现 + g# r+ [+ n6 U' o; v' N
2.4 Spring Cloud Netflix " b3 T) ^- H/ h
2.5 Spring Cloud Alibaba 4 \3 |2 h8 V1 ~3 ^/ E1 }, @' [
2.5.1 Spring Cloud Alibaba的优势
9 Q1 X& W2 }' H7 u7 l ?3 Z3 v2.5.2 Spring Cloud Alibaba的版本 ( H) @: W' c; e% ^% ^+ G
第3章 Spring Cloud的核心之Spring Boot ' ^2 r0 B5 Q9 o, `
3.1 重新认识Spring Boot ! u2 N" }; f0 g: ]- s: D$ w
3.1.1 Spring IoC/DI ? n- s2 G; h. V0 v* r
3.1.2 Bean装配方式的升级 % w2 q! e9 _& f6 I% a, F
3.1.3 Spring Boot的价值
# Q' K8 h X/ Y/ b, M" P1 M: q( B3.2 快速构建Spring Boot应用 / M6 e1 r+ ~$ Q+ V) q& Q
3.3 Spring Boot自动装配的原理
5 m, ]4 @, E. U2 N& m. b; |; R# y- W3.3.1 自动装配的实现 & r! M3 a( L: C, w2 ` M. ^+ r
3.3.2 EnableAutoConfiguration % {& q, {0 P# }1 ]1 [! c
3.3.3 AutoConfigurationImportSelector 8 H4 K! g4 G/ K6 r) t
3.3.4 自动装配原理分析 3 C% D. u/ r* r4 C
3.3.5@Conditional条件装配
- E& E) X! h, M9 g- P0 @$ w3.3.6 spring-autoconfigure-metadata
. Y; ]0 D+ }5 H5 U3.4 手写实现一个Starter
4 |; n& J' d# W6 Y8 g0 E- M3.4.1 Starter的命名规范 5 Y* I: n7 q* f4 v& m, Y
3.4.2 实现基于Redis的Starter
6 ~/ ^; [9 Q5 v3.5 本章小结
- ^4 y7 |( K& t# F' E5 I第4章 微服务架构下的服务治理
9 e0 o6 s, {" ] E0 K4.1 如何理解Apache Dubbo
8 J8 X' @/ x9 r& o2 r+ ]$ `. x4.2 Apache Dubbo实现远程通信 % H0 D; N1 `3 s+ U4 i2 q0 Q
4.3 Spring Boot集成Apache Dubbo - g! j) l! p; T$ E0 W/ l/ ~
4.4 快速上手ZooKeeper & N9 h% x/ s6 M) Y9 N1 _$ H$ H& n3 n
4.4.1 ZooKeeper的安装 + j8 c# E. h" `/ B: N
4.4.2 ZooKeeper的数据结构 9 G E& C8 U8 y3 Z! R4 ]
4.4.3 ZooKeeper的特性 ; ?& H& i& Z) u8 U
4.4.4 Watcher机制
. L+ x& U# C. l7 C( M9 \1 _4 O+ h g4.4.5 常见应用场景分析
: [0 i; l m6 Y; E, m5 _( q! S- a4.5 Apache Dubbo集成ZooKeeper实现服务注册 $ q$ ^$ [6 U: d# y- x$ x
4.5.1 Apache Dubbo集成ZooKeeper实现服务注册的步骤 ' J7 Z9 a6 ^* {
4.5.2 ZooKeeper注册中心的实现原理
" h& n; ?) @. _" f4.6 实战Dubbo Spring Cloud 9 K, _) ~0 C9 ]; T r0 D: v+ X
4.6.1 实现Dubbo服务提供方 & B: ]+ e) k: d- B
4.6.2 实现Dubbo服务调用方
: k; i; m# k( J4.7 Apache Dubbo的高级应用
( C# H; { t$ \" D) E* x6 @4.7.1 集群容错 $ D. [# w, g* n/ f6 c5 ]
4.7.2 负载均衡
. e7 b# D# ]. K! K4.7.3 服务降级 + k0 n# N, n N/ Y
4.7.4 主机绑定规则
! [- d; O1 n8 @2 P& D* E8 h+ t4.8 Apache Dubbo核心源码分析 : g% u4 w# M0 g
4.8.1 源码构建
J( O* q# D$ k- k3 J7 y4.8.2 Dubbo的核心之SPI
* z* g/ {3 G7 Y6 I& M4.8.3 无处不在的自适应扩展点 9 x8 q$ K2 i7 L
4.8.4 Dubbo中的IoC和AOP
3 r, O1 D, P, a( \# o3 c4.8.5 Dubbo和Spring完美集成的原理 / q4 v6 K* M/ L/ g5 j1 u
4.9 本章小结 0 x- X- f2 `/ x v
第5章 服务注册与发现
9 K" Y7 i0 b {0 q. S7 y/ l5.1 什么是Alibaba Nacos - {* f5 x: R _7 @' G0 r
5.2 Nacos的基本使用
3 q+ D% }- L" Y8 x6 A1 A+ K0 P- U5.2.1 Nacos的安装 % Y0 x* {, b& Z4 _8 C5 D& h
5.2.2 Nacos服务注册发现相关API说明
3 @5 ?) z% D- l1 r4 ^% x* O5.2.3 Nacos集成Spring Boot实现服务注册与发现 ' o+ V" S+ ]$ V- W) F0 k
5.3 Nacos的高可用部署 # i- @0 }; F) s4 v. L& V
5.3.1 安装环境要求
! P8 m3 X! @- c6 y5.3.2 安装包及环境准备
' R" d! F7 n) P1 t( a; ^5.3.3 集群配置 7 q- ?* h2 X! P
5.3.4 配置MySQL数据库 $ S3 n: _# ]1 b
5.3.5 启动Nacos服务
\7 _0 g- ^2 P+ }: X N) v( y5.4 Dubbo使用Nacos实现注册中心
1 ?& _1 Z& X, w! N0 }% O1 o5.5 Spring Cloud Alibaba Nacos Discovery 7 @# l) b1 k1 }3 M
5.5.1 服务端开发
: g" S0 Q9 Y9 e" y: P- M$ O \5.5.2 消费端开发
1 k, ~/ f( \& h9 {8 w5 D5.6 Nacos实现原理分析 ! ~1 S2 D, H! W2 f
5.6.1 Nacos架构图 ! U& L0 R$ \- k2 m0 l1 M" J
5.6.2 注册中心的原理 ' R3 @) d! m+ U; I5 P) t0 e# }7 X
5.7 深入解读Nacos源码 * l. v7 G) ~8 e! N
5.7.1 Spring Cloud什么时候完成服务注册
6 |. a1 y. U/ b. ^9 t* u8 z) V) M8 p5.7.2 NacosServiceRegistry的实现 ) F6 |: w9 i% {7 Q4 D
5.7.3 从源码层面分析Nacos服务注册的原理
! G+ a- n) ?( _: x( {# z5.7.4 揭秘服务提供者地址查询
8 {# Y' j1 q9 T) l5.7.5 分析Nacos服务地址动态感知原理 ! c L7 f: s! h* V* w3 ]
5.8 本章小结
6 G# T) |) C9 J: M- y第6章 Nacos实现统一配置管理 0 _& R `. h8 s" y( C
6.1 Nacos配置中心简介 S$ {7 B4 \( z y
6.2 Nacos集成Spring Boot实现统一配置管理
, j7 u) P3 w2 K- ?7 l u6.2.1 项目准备
! b* m' a6 P( A% s: v& m6 P) }6.2.2 启动Nacos Server
4 \0 h1 g; _9 ? W! f. }% K6.2.3 创建配置 9 Z# ]2 B& {) C" U
6.2.4 启动服务并测试
- @6 O& I7 P+ F3 t0 T& B6.3 Spring Cloud Alibaba Nacos Config + y s/ `) d; V8 F% b P5 w5 A
6.3.1 Nacos Config的基本应用
* G) m# _0 \3 a, d6.3.2 动态更新配置 ' h1 Y, B7 r z7 T
6.3.3 基于Data ID配置YAML的文件扩展名 2 m; ]- @+ B m: ? G
6.3.4 不同环境的配置切换
1 V) ]3 r: h/ }2 F- |6.3.5 Nacos Config自定义Namespace和Group * T8 r9 ~% }9 v, g
6.4 Nacos Config 实现原理解析
' E1 E3 `4 n9 i# c2 c0 j6.4.1 配置的CRUD
& B* q) [0 [! Z6 M6.4.2 动态监听之Pull Or Push 0 B$ g+ D. m7 v
6.5 Spring Cloud如何实现配置的加载 6 r" k9 e% X" L% {& R6 } k
6.5.1 PropertySourceBootstrapConfiguration a6 z* _- h& A0 i" Y" Q: n
6.5.2 PropertySourceLocator 7 Q- L% ~' b$ x6 D$ h- j
6.6 Nacos Config核心源码解析
8 p/ P, V" ]" v- a3 Z+ E9 [+ ^7 ~6.6.1 NacosFactory.createConfigService ! a4 B3 C2 G6 |' q0 a
6.6.2 NacosConfigService构造
- F8 Y% o- e9 \6 Y Q0 `3 B6.6.3 ClientWorker
/ @( q# [ F# F8 T6.6.4 ClientWorker.checkConfigInfo 0 L% V% J0 i4 s4 t
6.6.5 LongPollingRunnable.run * D3 P" H9 n1 v0 U2 S; X
6.6.6 服务端长轮询处理机制 + m" R$ I- [! o. F+ s
6.6.7 ClientLongPolling 2 B8 C, e& G, D# `5 c6 k
6.7 本章小结 - ?( |/ E9 w- s
第7章 基于Sentinel的微服务限流及熔断
x6 b6 Q0 d& x% I4 F9 M7.1 服务限流的作用及实现
* b: `6 n4 r) w( m8 M( G1 G2 z4 n, A7.1.1 计数器算法
4 r" h% P7 i, B7.1.2 滑动窗口算法 + W2 y+ t9 s0 L, Q3 v7 H1 _. X
7.1.3 令牌桶限流算法 6 G! h' p% Q1 o( I/ ]
7.1.4 漏桶限流算法 9 ~9 I. F, T$ Q: Y6 W4 @+ A
7.2 服务熔断与降级 $ s. K; }# ~. k, d/ w
7.3 分布式限流框架Sentinel / g+ B2 O4 `7 f5 @
7.3.1 Sentinel的特性 ( p3 u4 G1 z- |8 r& S+ o
7.3.2 Sentinel的组成
: d n) e" h7 L6 }7.3.3 Sentinel Dashboard的部署 % B( `1 o. S5 i5 f. ^
7.4 Sentinel的基本应用 * X, j, u5 a# @5 E4 Y: _% P) u
7.4.1 Sentinel实现限流
9 l. Q! y, }: c7.4.2 资源的定义方式
H) I9 e( C- n+ ]* C1 L7.4.3 Sentinel资源保护规则 7 w f' {, g4 V6 x! O; P! a$ l
7.4.4 Sentinel实现服务熔断 : F. G9 a/ o1 u n) v0 P2 Q
7.5 Spring Cloud集成Sentinel实践
- Q2 k2 o+ \ ]( B s7.5.1 Sentinel接入Spring Cloud
7 P$ J3 \! ?$ B, y0 P3 u7 z2 x6 S$ u7.5.2 基于Sentinel Dashboard来实现流控配置 . e; {& Y- i4 s- z% V' O
7.5.3 自定义URL限流异常 9 E( V* p! E, Z/ P
7.5.4 URL资源清洗
# Y, m2 I0 N4 U; W u0 j5 O1 @" w7.6 Sentinel集成Nacos实现动态流控规则
" n4 q T* n' P: d7.7 Sentinel Dashboard集成Nacos实现规则同步 . o/ {5 X$ a7 _$ E% y3 n- [
7.7.1 Sentinel Dashboard源码修改
9 Q! G% v& P+ W G% e% N" d7.7.2 Sentinel Dashboard规则数据同步
4 Y/ o- v% r) K3 H7.8 Dubbo集成Sentinel实现限流 # S1 Z( G" I' U- m
7.8.1 Dubbo服务接入Sentinel Dashboard
* [+ x+ ~- ^- N) i, w6 g5 q7.8.2 Dubbo服务限流规则配置 + x% X! N# u/ E
7.9 Sentinel热点限流 6 d- h' A+ A, y/ Q
7.9.1 热点参数限流的使用 r3 l) E/ Y/ j, E! T0 @
7.9.2@SentinelResource热点参数限流 , A9 d& x# E$ P1 p" { @2 V
7.9.3 热点参数规则说明
. J5 E# X* s' D9 O' w7.10 Sentinel的工作原理
2 k1 z# @" T, n& I0 I6 v6 [7.11 Spring Cloud Sentinel工作原理分析
7 o. g3 z. \; W7.12 Sentinel核心源码分析
$ v4 q0 M9 L$ {5 K7.12.1 限流的源码实现
$ f9 R- B/ r$ n/ p" T+ W7.12.2 实时指标数据统计 7 T6 o. z$ L l6 U. n/ }
7.12.3 服务降级的实现原理 : R' m* G& U; h( r2 F
7.13 本章小结
8 w* ~. O- G5 U第8章 分布式事务
$ m+ |9 A8 [6 A2 t4 b; c/ S6 J: F) `0 R8.1 分布式事务问题的理论模型 : W* v- _- @( S+ o% Q& ]2 j
8.1.1 X/Open分布式事务模型
4 t' t8 y( h4 g- o$ g x8.1.2 两阶段提交协议 8 Z2 L8 M' _# b
8.1.3 三阶段提交协议 1 J, f1 `0 F. S$ I
8.1.4 CAP定理和BASE理论 6 w& ]5 |) }/ Q7 ~/ V- U; Y, L
8.2 分布式事务问题的常见解决方案
( }; }- _8 a! C- {- v& t5 @8.2.1 TCC补偿型方案
# y0 g6 S4 I6 L1 N' t. z+ n8.2.2 基于可靠性消息的最终一致性方案
1 G; t7 |+ v, P* z8 ?) W" Q8.2.3 最大努力通知型 9 N* c8 |/ F) ~7 C3 E5 b. {
8.3 分布式事务框架Seata / W9 I5 g. @1 e, a$ @4 r9 Q
8.3.1 AT模式 3 P$ j: N% a6 s9 X; H5 Z3 F1 k
8.3.2 Saga模式
* \4 C+ v/ _) y/ r3 K) E8.4 Seata的安装 . R7 B Y; ~# \/ J6 c+ g% ?! t
8.4.1 file存储模式
9 @4 o: z$ f7 V- U8.4.2 db存储模式
5 z0 R+ ~# z* A' F8 Z8.4.3 Seata服务端配置中心说明 $ a6 i# N' R8 G F+ Q7 @
8.5 AT模式Dubbo集成Seata
5 S0 E6 @- m o# K7 `& r8.5.1 项目准备 & ]$ O, U+ k7 c( l; ^
8.5.2 数据库准备 ( l: a- F6 i2 k: s: `
8.5.3 核心方法说明
$ Y+ F9 X1 L, x9 V( u# m% {; ]8.5.4 项目启动顺序及访问
& e1 O# W0 h5 D d4 D1 m. _% X( D( t8.5.5 整合Seata实现分布式事务
: w- H/ D- i3 ]+ m) u# J. b) s8.6 Spring Cloud Alibaba Seata
9 n. x* l* [3 L1 I7 q1 w8.6.1 Spring Cloud项目准备 ! M3 Z8 D* B1 {1 T: c
8.6.2 集成Spring Cloud Alibaba Seata
1 k2 \' V- q- K! G8.6.3 关于事务分组的说明
* P6 T( S: W7 ~# Q5 _8.7 Seata AT模式的实现原理
& R3 g7 }& X s8.7.1 AT模式第一阶段的实现原理
- y. v5 e& c( t8.7.2 AT模式第二阶段的原理分析 ; @4 r k, n8 \+ N
8.7.3 关于事务的隔离性保证
5 M3 @' Z; n9 w! u2 _0 |+ u; c8.8 本章小结 4 a. A! B2 Q! x9 J# O* \
第9章 RocketMQ分布式消息通信
/ j/ a3 r) M* I2 l9.1 什么是RocketMQ
- t! V2 X2 u E0 Q' {" b9.1.1 RocketMQ的应用场景 8 j. o6 [- \9 q
9.1.2 RocketMQ的安装 + e% T* [ C6 l5 A; L( u1 ?
9.1.3 RocketMQ如何发送消息 1 Q/ g- t1 Z5 |- \0 t) R
9.1.4 RocketMQ如何消费消息 4 h7 M6 D0 L+ V7 R' H1 v
9.2 Spring Cloud Alibaba RocketMQ
4 i1 k! V9 m4 ~9.2.1 Spring Cloud Alibaba RocketMQ架构图
3 Q1 L- y3 x, q' i9.2.2 Spring Cloud Stream消息发送流程 : S1 Q1 R$ O2 [3 @0 i [' a
9.2.3 RocketMQ Binder集成消息发送
& A0 o; }' P) ?' W5 u5 {9.2.4 RocketMQ Binder集成消息订阅 5 d, s, v. K- _+ l7 W9 q
9.2.5 Spring Cloud Stream消息订阅流程 , i, h: s/ C: S& M; S* B; u
9.3 RocketMQ集群管理 - W- y+ N, o" d" K
9.3.1 整体架构设计
' x/ ~4 e* f: X5 ]0 ~9.3.2 基本概念
# h) S0 b" f2 D# A5 ?7 X# F) C" f9.3.3 为什么放弃ZooKeeper而选择NameServer
: b4 V2 i/ F9 g/ J2 y9.4 如何实现顺序消息
( y2 s, V ~( C7 M) X m9.4.1 顺序消息的使用场景
( e8 q G, M4 O7 ~4 B. m9 O+ `7 y5 y9.4.2 如何发送和消费顺序消息
- I( n p) G* e9 `+ Q9.4.3 顺序发送的技术原理 1 s, }) z: u' t* V! P
9.4.4 普通发送的技术原理 ; y8 d% x8 R; g- `- Y7 e
9.4.5 顺序消费的技术原理
; P0 {6 l) v; h/ W! F& H: @1 |/ y9.4.6 并发消费的技术原理
! x* o$ k1 ?* w: p* w9.4.7 消息的幂等性
( ~# v5 \& c2 G7 N& x, L6 R9 i9.5 如何实现事务消息
( B2 D! {& N/ j1 t( p# w* j$ E9.5.1 事务消息的使用场景
4 Q( u8 P: Z' m3 t' T# O0 E: j; c; M9.5.2 如何发送事务消息
) e* E0 i) v( h9.5.3 事务消息的技术原理 & t$ B3 d9 t P4 \; x4 b) _
9.6 高性能设计
5 O* i: X% S& e" K$ \# y9.6.1 顺序写盘
( A ]1 z$ z* |/ G6 Z9.6.2 消费队列设计
; H6 o* P5 p% K# F8 O: }% n) A9.6.3 消息跳跃读取
1 G1 Y6 ^2 _" j2 h t9.6.4 数据零拷贝
* o9 l* f% T$ V! {* c6 }9.6.5 动态伸缩能力
1 w' }4 n$ i' V, H4 p2 F; r" Q9.6.6 消息实时投递
! \$ U. }& D! S. H) E' w8 a9.7 高可用设计
& X! u% T/ A- J! M9.7.1 消息发送重试机制 - B/ d) r V* P
9.7.2 故障规避机制 " J! j6 s4 H' b9 c1 S
9.7.3 同步刷盘与异步刷盘
9 T" P. [9 r, |3 z' K, @0 b9.7.4 主从复制
. @& N2 x# G' M8 @9.7.5 读写分离
4 s3 x: E4 o7 N b% n9.7.6 消费重试机制 , p7 U' \- j5 Q0 U- u8 g% l
9.7.7 ACK机制 - J$ l% I6 i* [9 Z9 q I N
9.7.8 Broker集群部署
2 h J; ~: u, \9 e) K Z# u6 y9.8 本章小结
( j# ~2 U+ y5 t' _4 ?5 h第10章 微服务网关之Spring Cloud Gateway
- a5 b# U# ^( o3 c10.1 API网关的作用
& G$ Y! U }7 Z( k6 x10.1.1 统一认证鉴权
8 S' ^6 s) B4 o& e$ R7 `10.1.2 灰度发布
' D* E$ ]9 Q$ r. d10.2 网关的本质及技术选型 , O/ k( g6 C/ s; c* H
10.2.1 OpenResty
$ r. M" U5 P; D10.2.2 Spring Cloud Zuul * m7 u: i6 N. V5 W! O2 E. x. X# N
10.2.3 Spring Cloud Gateway
7 `& V) B$ V N+ U8 [# d10.3 Spring Cloud Gateway网关实战 / Q8 F! t3 k! A5 z
10.3.1 spring-cloud-gateway-service . X9 w1 y* L& s$ y
10.3.2 spring-cloud-gateway-sample 4 n1 U& l/ o: Q6 V+ e5 y
10.4 Spring Cloud Gateway原理分析
) S% _( `# I. N# J) u10.5 Route Predicate Factories 1 I. x* r/ t9 n1 b$ b
10.5.1 指定时间规则匹配路由
" T1 H ]) ~( d4 q/ E# T10.5.2 Cookie匹配路由 6 W$ }2 V( ~0 D2 d2 ^" w" E
10.5.3 Header匹配路由
& t' Q% p0 z4 c9 x, Y. [, M10.5.4 Host匹配路由
) |6 U8 k1 L8 N7 L10.5.5 请求方法匹配路由
9 c" T( Y- a2 e m! j# u+ r, b10.5.6 请求路径匹配路由 x; [6 ?$ c; T5 w( O
10.6 Gateway Filter Factories
9 L! U0 X1 o" z5 A7 k: P% }/ Q7 S10.6.1 GatewayFilter . r( p' t& R: B# j5 b
10.6.2 GlobalFilter
1 b- x* i1 A: \10.7 自定义过滤器 ! x* }% O/ w+ N* d
10.7.1 自定义GatewayFilter
1 P: q' Q6 u- E5 a: W4 n10.7.2 自定义GlobalFilter
) Y# l4 K* b) b& Y5 G5 z10.8 Spring Cloud Gateway集成Nacos实现请求负载 + V0 Q% n/ L% o
10.9 Spring Cloud Gateway集成Sentinel网关限流 + y, ^0 u/ x+ k1 P7 Y/ P0 H) r7 |
10.9.1 Route维度限流 8 b2 h9 e! |4 a% l- O3 y
10.9.2 自定义API分组限流
$ G/ E1 D6 Q: L! @10.9.3 自定义异常 - ?5 B0 D. t& [
10.9.4 网关流控控制台 0 G( F- L2 _+ x% E2 `
10.9.5 网关限流原理
- \$ E' U1 [# s10.10 本章小结
% p9 S; ?$ r4 j6 v9 @" R @2 P; x2 p* L$ h+ ~& p* q& {8 Z
百度云盘下载地址(完全免费-绝无套路):
& ?- W( t2 z0 l9 \9 X0 l7 C6 _4 l |