Java电子书:Spring Cloud Alibaba 微服务原理与实战 格式 pdf 电子书 PDF 电子书 Java吧 java8.com- B8 l K" J/ y2 l
! Z2 d6 b* f' [$ `* ~3 v
; O5 u5 X0 w( l3 K' u$ `# v编号:mudaima-P0100【Java吧 java8.com】
, C( R0 V& C3 B. D1 K
8 l( L- P' b% b8 R& D# v7 h0 d! q1 m- R8 s; |) ~
& k# k: ^5 H7 H6 W6 wJava电子书目录:前言
& q6 O8 P9 \4 T. B, W, g! @. h$ n3 x第1章 微服务的发展史 2 e' z' K2 M( j1 V- p
1.1 从单体架构到分布式架构的演进 # O, v: m( U& ?2 Q, Z
1.1.1 单体架构 2 L3 _6 X; @* ?2 z7 y
1.1.2 集群及垂直化
1 H9 R# T6 ?9 |1.1.3 SOA
! G4 t$ `+ i. m! h8 o1.1.4 微服务架构
1 f w8 V$ z# O* q1.2 微服务架构带来的挑战
8 S/ `" v0 ^3 f1 [3 S( Y& `& @1.2.1 微服务架构的优点
9 {6 z( D' E% h1.2.2 微服务架构面临的挑战 ) K4 D3 S n2 A( j0 i$ }4 S
1.3 如何实现微服务架构
/ C; x6 p+ E) x# q1.3.1 微服务架构图 % n* d/ g( a/ c2 u' _
1.3.2 微服务架构下的技术挑战 + f0 c5 }6 e g
第2章 微服务解决方案之Spring Cloud
9 a2 x& \% O3 c2.1 什么是Spring Cloud
b4 ~) ]* Q$ l8 r- ?2.2 Spring Cloud版本简介
% }) T3 @9 o6 s; {" B5 y2.3 Spring Cloud规范下的实现
- ?2 T' z j8 S, _0 G2.4 Spring Cloud Netflix ~8 v! I/ L% ? c3 L
2.5 Spring Cloud Alibaba
- l/ _! l7 j& j$ z% G) j2.5.1 Spring Cloud Alibaba的优势
( P& l9 l& b4 }% s; q* i" {* I2.5.2 Spring Cloud Alibaba的版本
0 C1 m) u7 y7 U$ n ~; }2 t9 r+ i第3章 Spring Cloud的核心之Spring Boot 9 x7 a4 U5 ^& H/ n5 k! B- p. ^
3.1 重新认识Spring Boot 4 G! ~% B! K' u* z
3.1.1 Spring IoC/DI ! ?! S; F9 `4 J# G- }/ e2 Y+ d
3.1.2 Bean装配方式的升级
- j- f* ` m6 m6 o% a4 v8 e8 G4 R3.1.3 Spring Boot的价值 / e" L1 a, ^- S1 U7 Y
3.2 快速构建Spring Boot应用
. [0 P) P* c/ s: R9 H1 s3.3 Spring Boot自动装配的原理
8 i( u+ _! K1 S1 w3.3.1 自动装配的实现
2 Q2 \ S& R2 C X5 g0 y5 W6 s3.3.2 EnableAutoConfiguration # j$ Y" z9 P7 N6 I
3.3.3 AutoConfigurationImportSelector
) o& {$ s- ~; k1 r9 ]* B* K% d) S- a3.3.4 自动装配原理分析 ! ?. s2 k9 P$ ?, O
3.3.5@Conditional条件装配
/ C3 t: e( g% P; j$ R8 J4 W3.3.6 spring-autoconfigure-metadata
7 y0 n5 u" v% l; _+ j3.4 手写实现一个Starter * e: I/ \; U5 O
3.4.1 Starter的命名规范 + h0 ~$ @. Q% y; d3 k0 l, e! A! K
3.4.2 实现基于Redis的Starter
9 a9 p/ e; e' {) n* r$ z0 T3.5 本章小结 0 K- H4 ^" d* K4 M8 q9 \
第4章 微服务架构下的服务治理
$ g+ x ^/ j1 M4.1 如何理解Apache Dubbo
) s" w. M3 F& R% Y# p4.2 Apache Dubbo实现远程通信 ( \" d% r$ Z8 P& v3 ~
4.3 Spring Boot集成Apache Dubbo 0 L& q4 m l: h( i# |8 |
4.4 快速上手ZooKeeper 2 d6 v4 O0 w p1 G- [
4.4.1 ZooKeeper的安装 3 w& ?8 E+ h$ \1 q4 [& p
4.4.2 ZooKeeper的数据结构
[. s, k* @% T- e4.4.3 ZooKeeper的特性 # R- d/ V! J1 x( u( m& O
4.4.4 Watcher机制
: Y2 q( \% S, I: I% A4.4.5 常见应用场景分析
3 ?& ?+ Y2 A7 C$ o# Y) ^4.5 Apache Dubbo集成ZooKeeper实现服务注册
% M b3 ]+ [- T7 v5 U4.5.1 Apache Dubbo集成ZooKeeper实现服务注册的步骤 . l$ T4 F6 |+ t, M" N3 o
4.5.2 ZooKeeper注册中心的实现原理
- ^) B) v( ]0 s4 z2 O# i8 G- C4.6 实战Dubbo Spring Cloud
0 f* I( c+ T i/ O9 R4.6.1 实现Dubbo服务提供方
& r! b: O2 C* T( g$ W3 j4.6.2 实现Dubbo服务调用方 ! y3 E! I- j8 T' f6 n
4.7 Apache Dubbo的高级应用 - K0 `' M g: o; N- ^
4.7.1 集群容错
- `/ ]# I' G5 M2 R+ R: J4.7.2 负载均衡
5 h5 h( S/ x$ n# R; R) x9 c [4.7.3 服务降级 ' L& i3 i1 d! Q4 m
4.7.4 主机绑定规则
) ]: o7 g" x$ d4.8 Apache Dubbo核心源码分析
8 ~$ {3 g5 n3 ?: Q4.8.1 源码构建 & w5 i$ P4 a' z" Q) D. }$ H! m
4.8.2 Dubbo的核心之SPI ; L# i6 I( D. Y' [1 k* X' \( u& M
4.8.3 无处不在的自适应扩展点
0 u4 _$ }# p9 Q% [; J' s4.8.4 Dubbo中的IoC和AOP
3 r1 A( Q- i* Q% w3 t* U4.8.5 Dubbo和Spring完美集成的原理 2 {1 C/ [* _6 {( |. P7 \" D) ?. J
4.9 本章小结
' H2 W7 F/ B2 s- G7 q( e- z第5章 服务注册与发现 8 X3 V* r D1 n0 ]' k4 f8 I
5.1 什么是Alibaba Nacos
: n7 e" g4 B9 K. ]4 d" \1 P5.2 Nacos的基本使用
0 G* w, c0 Z3 Y# V5.2.1 Nacos的安装
8 U% w' B) C5 S+ M5.2.2 Nacos服务注册发现相关API说明 0 E8 V6 Y, g" |3 a% J
5.2.3 Nacos集成Spring Boot实现服务注册与发现
, u8 G: x& `- g4 }5.3 Nacos的高可用部署 $ M4 c9 r8 p6 N" e8 g S* y3 ]; {6 S% X
5.3.1 安装环境要求
) P3 z" d s$ A4 w' R/ P, Q7 g* B! X5.3.2 安装包及环境准备 6 I% V% D2 Z5 e( { [
5.3.3 集群配置 7 D0 q/ A3 R7 ] h, [" v" X- x1 E9 \
5.3.4 配置MySQL数据库 . u& o2 w. O' U3 q" m
5.3.5 启动Nacos服务 " r) F/ H$ Y6 G
5.4 Dubbo使用Nacos实现注册中心
( o# G$ L- Y0 j( H2 {, W" C7 D/ c+ Q5.5 Spring Cloud Alibaba Nacos Discovery 3 B, k$ H( i M, f
5.5.1 服务端开发 ; y7 x" A2 ]# Z1 J
5.5.2 消费端开发 3 Q# S) q9 T2 Q
5.6 Nacos实现原理分析 - c( b) C3 @0 H- z5 ]: i. K
5.6.1 Nacos架构图
9 p' ? L+ b! `$ t1 _+ i, Z5.6.2 注册中心的原理 / T) G8 a: V% P% ^% `
5.7 深入解读Nacos源码 + D& A0 n0 _5 s9 c* g! B5 o1 ^
5.7.1 Spring Cloud什么时候完成服务注册
) X- F" Z4 g$ G/ f0 U, g5.7.2 NacosServiceRegistry的实现 " W( k6 `% y) G/ U
5.7.3 从源码层面分析Nacos服务注册的原理
N' T1 z$ ]0 e U1 r& w" u8 D5.7.4 揭秘服务提供者地址查询
7 i4 n. K4 r. V, T/ k% A8 G: ?9 T5.7.5 分析Nacos服务地址动态感知原理
% ]) R* C: X& Z/ [8 l5.8 本章小结
! Z2 J& G9 X* u* i- L( X4 X: u2 S第6章 Nacos实现统一配置管理
?4 A: B9 `* D" J2 A' M6.1 Nacos配置中心简介 ^# V* m0 S: n/ l5 t, k' n
6.2 Nacos集成Spring Boot实现统一配置管理 # N7 s$ i) \( L3 l& v) \* m
6.2.1 项目准备 " E9 x3 ?) I8 i. E$ }0 A; Y
6.2.2 启动Nacos Server & i) l) |0 i% r, f; O
6.2.3 创建配置 6 R$ ?: y' V& {
6.2.4 启动服务并测试
: ^4 U$ w4 @# x5 P- E6.3 Spring Cloud Alibaba Nacos Config
: A! g0 y$ R8 v& }6.3.1 Nacos Config的基本应用
' D. p% w+ ?% t' V- }6.3.2 动态更新配置
2 c% w9 `9 E8 |0 U- O# R% O3 e6.3.3 基于Data ID配置YAML的文件扩展名 * _9 t' z/ K& U, c
6.3.4 不同环境的配置切换
" K/ H' }9 B9 _. f6.3.5 Nacos Config自定义Namespace和Group
9 z/ k9 K7 ?0 \6 {+ W6.4 Nacos Config 实现原理解析
* e; D8 w# c: {9 K- j9 m8 O- E6.4.1 配置的CRUD
, o; Z5 q$ m4 |% c6.4.2 动态监听之Pull Or Push
# f* [/ G4 K2 q5 `3 o; X0 d) K6.5 Spring Cloud如何实现配置的加载
/ b3 x* U" j9 D" k3 i8 [9 I5 `9 B$ w6.5.1 PropertySourceBootstrapConfiguration
# S( f# a0 j6 n# `2 m6.5.2 PropertySourceLocator
, g) j* n0 C7 ?5 R" c% l6 t. ~" R" r* G6.6 Nacos Config核心源码解析
" T# H, T0 o7 T& o* i6.6.1 NacosFactory.createConfigService
1 T( L) \; V4 P6.6.2 NacosConfigService构造 ( B7 ]+ ?: R2 _5 R9 C* F6 _
6.6.3 ClientWorker
" J* j3 C$ T) d/ M2 p$ q0 Q6 f6.6.4 ClientWorker.checkConfigInfo ! }, r; h" g2 b- C. j' |! j
6.6.5 LongPollingRunnable.run
1 n! G6 k/ Q4 d, z# z$ t6.6.6 服务端长轮询处理机制
- ?* y2 |' s P1 U4 m# V2 f6.6.7 ClientLongPolling
7 i# a( t2 ~9 N) c% g2 [6.7 本章小结 $ w4 j- {3 U: p t1 `
第7章 基于Sentinel的微服务限流及熔断 f. ?2 D' x/ [
7.1 服务限流的作用及实现 # Q9 H; ]3 W% L
7.1.1 计数器算法 * \8 x4 @6 a0 c p
7.1.2 滑动窗口算法
" h' \& g+ s: u' {9 L7.1.3 令牌桶限流算法
9 r7 A) d P! u6 u r5 u1 @7.1.4 漏桶限流算法 s P6 e2 n. P
7.2 服务熔断与降级
% V0 ^& a8 c) D5 p1 a7.3 分布式限流框架Sentinel
7 P, N8 C" f/ ^( u7 K& j7.3.1 Sentinel的特性 8 \" j2 a1 D ^& P0 `( H- J
7.3.2 Sentinel的组成 & D( |, C+ L t! a! b2 u! C
7.3.3 Sentinel Dashboard的部署 ( g4 Y k! y8 L
7.4 Sentinel的基本应用
% v. ]9 T$ A- ?9 `7.4.1 Sentinel实现限流
+ t- _! _: a: ?! A0 u: e7.4.2 资源的定义方式 , Z- D0 o$ p. u* d$ E ]
7.4.3 Sentinel资源保护规则 C: T m, l B" I
7.4.4 Sentinel实现服务熔断 1 F/ _6 S7 ~6 y
7.5 Spring Cloud集成Sentinel实践 / w% J: v6 b8 Z8 y" g
7.5.1 Sentinel接入Spring Cloud 4 _2 [! f7 k9 F9 N2 g
7.5.2 基于Sentinel Dashboard来实现流控配置
) J6 K* r' c. @+ N: t1 P" d7.5.3 自定义URL限流异常
3 j, \, g- v( H: U" v7 Q, v$ I* @3 F7.5.4 URL资源清洗 , M& }: t7 j( J, Y) S7 z7 W
7.6 Sentinel集成Nacos实现动态流控规则
! g4 t& s" t3 I6 X7 c/ C7.7 Sentinel Dashboard集成Nacos实现规则同步
$ L6 K- \) V% g0 s# x( E3 Z7.7.1 Sentinel Dashboard源码修改 ! P- i. J% i+ s2 z7 Q+ I
7.7.2 Sentinel Dashboard规则数据同步 8 W' y! U0 Y3 {- q8 g8 T
7.8 Dubbo集成Sentinel实现限流
3 U" I4 u7 r( z2 i! ~7.8.1 Dubbo服务接入Sentinel Dashboard - s% e0 V! Y, w. U
7.8.2 Dubbo服务限流规则配置 % \# E3 E5 T( }' j. E: J
7.9 Sentinel热点限流
1 k4 R0 {& v7 \7.9.1 热点参数限流的使用 5 ?# ?! O/ Z) @1 `! s/ E9 q4 D
7.9.2@SentinelResource热点参数限流 ! j. f$ b2 c5 T& ~$ }6 |
7.9.3 热点参数规则说明
& D2 f& X3 k/ u" H* D7.10 Sentinel的工作原理
. o8 a2 W7 x" |7.11 Spring Cloud Sentinel工作原理分析
* N' A: f: x. ]. S! d7.12 Sentinel核心源码分析
* M+ y6 I5 p6 Q' G" D+ p7.12.1 限流的源码实现
5 {+ ^" b# n$ A* D+ p; l1 H. ?7.12.2 实时指标数据统计
V0 m# A2 F- ?" P& Y- {7.12.3 服务降级的实现原理
- d ^$ |0 i9 _8 X, [$ `7.13 本章小结
# Q: @/ b% B: Y+ y3 t# C" O" H& r第8章 分布式事务 * D5 O6 L% q3 m8 M! }0 E3 E
8.1 分布式事务问题的理论模型
: S2 b- Z1 ]" N8.1.1 X/Open分布式事务模型 & y$ _. z+ J9 S2 A2 r9 N% v$ B# c2 y
8.1.2 两阶段提交协议 ( d4 T5 U( d( E+ ~3 e& _
8.1.3 三阶段提交协议
0 w8 y( z# V$ Q) p/ I1 D/ @. h% b" b8.1.4 CAP定理和BASE理论 0 G4 p2 r+ R* B; ~! h
8.2 分布式事务问题的常见解决方案 . M* C" b; t! ^ i+ I6 H( r0 I
8.2.1 TCC补偿型方案
2 D! o0 D3 N# D# h6 \& Z: a8.2.2 基于可靠性消息的最终一致性方案
" M Z# y7 r% H4 G2 k' f6 s8.2.3 最大努力通知型
9 _1 x( O! i, J5 w+ m* z: q8 O4 U* [8.3 分布式事务框架Seata * r% A( c6 ]9 t1 `1 ^# p, l& s* _
8.3.1 AT模式 " H V/ M3 x2 Q( v6 {/ Z
8.3.2 Saga模式 1 N7 | }* A2 O0 x. K" y
8.4 Seata的安装 5 S9 a0 U$ e4 A
8.4.1 file存储模式 ( M; }7 R& K2 p+ {7 W
8.4.2 db存储模式 5 r& M. C6 `- g. [: ~
8.4.3 Seata服务端配置中心说明
/ |- J% I/ e7 a* C& @8.5 AT模式Dubbo集成Seata ' |* R1 T$ A, o% W" z& b. b
8.5.1 项目准备
7 g( C& h6 X4 r1 t9 S8.5.2 数据库准备
5 k6 u& G9 g7 V9 ]8.5.3 核心方法说明 # }) ?# `0 `) P2 ?9 e
8.5.4 项目启动顺序及访问
7 D, B; k6 m* \2 S( }8 J% ^8.5.5 整合Seata实现分布式事务 * j' l+ A& ~5 e+ \; m* o3 D* C8 O- |
8.6 Spring Cloud Alibaba Seata . z6 J0 c3 F: H5 i h
8.6.1 Spring Cloud项目准备
5 @& A# C. `; T8.6.2 集成Spring Cloud Alibaba Seata
/ H, a# [. k0 P' T% J! F9 ~1 s8.6.3 关于事务分组的说明
% X1 O* p' m9 p8.7 Seata AT模式的实现原理
# B6 s4 V% \$ D8 C# ? u8.7.1 AT模式第一阶段的实现原理 ) G+ {+ E1 J. [
8.7.2 AT模式第二阶段的原理分析 - Z9 c, u4 W0 j
8.7.3 关于事务的隔离性保证
9 ?4 \3 a& S K8.8 本章小结 % Z! y: \9 f0 A8 J: z" d( p" w
第9章 RocketMQ分布式消息通信
+ j, H" g* S$ e( l% Q( |6 q. W9.1 什么是RocketMQ
3 |2 D$ k* V- }, F9.1.1 RocketMQ的应用场景
; l$ u1 z, [) p! r9.1.2 RocketMQ的安装
2 y& z/ X- V) P. B9 m9.1.3 RocketMQ如何发送消息
) F3 f- P5 e4 X2 R3 I6 T9.1.4 RocketMQ如何消费消息
- Y7 k/ @9 G; ^! _. ]0 |" }( W! L |. r. R9.2 Spring Cloud Alibaba RocketMQ ! o7 y& _/ c% L2 R$ p3 |: R
9.2.1 Spring Cloud Alibaba RocketMQ架构图 . x2 f+ Z9 `7 A
9.2.2 Spring Cloud Stream消息发送流程 * e0 F+ n) B, ^1 g, O
9.2.3 RocketMQ Binder集成消息发送 . R2 R+ E5 |- T J" P) v5 F
9.2.4 RocketMQ Binder集成消息订阅
. r* x% I# Z8 D+ C7 e9.2.5 Spring Cloud Stream消息订阅流程
0 g. ~! c0 L* W% N9.3 RocketMQ集群管理
: l! ^3 |; l4 R5 b7 V- ~9 z+ P! b9.3.1 整体架构设计
0 S& b! ^* @& ]( Y( b9 X/ w4 K9.3.2 基本概念
1 [# T2 C! T$ V9 u6 w F9.3.3 为什么放弃ZooKeeper而选择NameServer
& G; J7 U# U6 k$ ^) y S( B0 n9 e9.4 如何实现顺序消息 8 d% Z8 `# q5 a$ }* i& {+ c+ ~4 j
9.4.1 顺序消息的使用场景
3 Y9 F$ k! F* N# o9.4.2 如何发送和消费顺序消息 # x) o2 ?& S3 W# P& r
9.4.3 顺序发送的技术原理
- G5 r4 {( a! g1 D4 v9.4.4 普通发送的技术原理
0 s) y. K1 n2 M8 y# A9.4.5 顺序消费的技术原理
3 s* l8 o6 N- |2 R E: ?) Z9.4.6 并发消费的技术原理
* v7 k4 I- _. g% Y! X9.4.7 消息的幂等性
S6 K4 P! ~1 P9.5 如何实现事务消息
1 Q8 K* C/ P6 [, H3 O* m+ m9.5.1 事务消息的使用场景 , a0 R" B5 J( A/ n/ o# Y' l
9.5.2 如何发送事务消息 # n( y" Q* z6 K1 a5 J
9.5.3 事务消息的技术原理 ( l+ s& }% J' ^% c6 r; P2 ?2 S
9.6 高性能设计
2 n! X2 N" q4 D1 O; T6 P$ N9.6.1 顺序写盘
: i/ r9 Z) K- f+ c( V( k6 G& x9.6.2 消费队列设计
_" |; s6 T6 E( V( Y9 I6 n, v9.6.3 消息跳跃读取 + o+ E/ g6 r) c
9.6.4 数据零拷贝
# P: K4 b0 b% w$ \9.6.5 动态伸缩能力 . g: N* v. h+ N2 C
9.6.6 消息实时投递 * I1 [1 b3 P" T
9.7 高可用设计 t+ x% p; c; Y: g' v& u
9.7.1 消息发送重试机制
* X4 V0 |. m( _$ n5 g2 B* s$ e9.7.2 故障规避机制 * E7 X6 u N0 ?7 V0 H5 j9 Q
9.7.3 同步刷盘与异步刷盘
& L# l% l. H- R( s: W& O. x' ~9.7.4 主从复制
" P6 s6 W9 z4 w- [5 a- r9.7.5 读写分离 : ^. x( `& \1 K
9.7.6 消费重试机制
3 ?8 f8 ]& }3 V9.7.7 ACK机制 " F1 Z# z, s/ U3 ^1 z
9.7.8 Broker集群部署
7 k0 c* N5 O/ r/ x2 }$ d5 o+ p9.8 本章小结
( f. t" A2 o: B/ z& _) r第10章 微服务网关之Spring Cloud Gateway
2 K6 y, f2 q* C$ d( ]! ?) i10.1 API网关的作用
# n( ?0 ^3 G3 B$ L* }4 k10.1.1 统一认证鉴权 # x5 e+ J& w; C) I
10.1.2 灰度发布
6 G( v7 @$ D# u10.2 网关的本质及技术选型
, J: A& G5 F; A10.2.1 OpenResty
4 U4 N6 x! F# X6 Z* s10.2.2 Spring Cloud Zuul C) S4 a% f. L
10.2.3 Spring Cloud Gateway
, B" s% E0 @/ F' i9 y10.3 Spring Cloud Gateway网关实战 ! W' d' k* U+ g: ^$ G0 ~
10.3.1 spring-cloud-gateway-service $ t( A; _& I9 @9 e% i
10.3.2 spring-cloud-gateway-sample I& A, o# Y( ?
10.4 Spring Cloud Gateway原理分析 2 q" j1 z( C: ^. X3 D: E, W
10.5 Route Predicate Factories . ?' ^+ Z) q+ B* A j
10.5.1 指定时间规则匹配路由 ( W! C/ @( ?+ a0 l5 D. O' u
10.5.2 Cookie匹配路由 9 U9 s9 V9 A; L/ a
10.5.3 Header匹配路由 $ E3 y- V. c& n( o$ P
10.5.4 Host匹配路由 % U3 @1 o# b' V) n5 I- ~
10.5.5 请求方法匹配路由
; W# F+ i. }, P4 D& V' c10.5.6 请求路径匹配路由 * `! j% b: Q0 j) Z# y! p1 ]4 A
10.6 Gateway Filter Factories 9 }2 `' s* e, [# y" T
10.6.1 GatewayFilter t' \5 Q8 C( D# n9 T) ^
10.6.2 GlobalFilter ! m7 A( f3 [: A9 U4 ?
10.7 自定义过滤器
% ?. e/ _( W5 @( r10.7.1 自定义GatewayFilter ) Y! L; v) M( m: i
10.7.2 自定义GlobalFilter
$ w* l8 W. U) M10.8 Spring Cloud Gateway集成Nacos实现请求负载
# m( t3 k7 N9 q1 K10.9 Spring Cloud Gateway集成Sentinel网关限流 & Y( \$ C& S2 T$ D$ {
10.9.1 Route维度限流
. m( @& c& G G6 z% M" X4 n10.9.2 自定义API分组限流 5 E& U# ?0 w2 G9 q' g
10.9.3 自定义异常 3 p/ ~' ^+ ^& J& W
10.9.4 网关流控控制台
2 ?: \8 \! X9 u% m7 v10.9.5 网关限流原理
; }9 ?; P& X! c10.10 本章小结
7 q7 D: _/ g; d# t" }) _( D8 f n4 F$ g
百度云盘下载地址(完全免费-绝无套路):* |4 d9 w, H* h0 P) F9 \9 h3 i
|