|
Java电子书:Kafka权威指南 格式 pdf 电子书 PDF 电子书 Java吧 java8.com5 {( J4 f( c$ m5 b
" j- N% g& D8 Q+ |1 z. Y% }* [8 o) u5 z/ K
编号:mudaima-P0295【Java吧 java8.com】. `, i! j7 {" k8 z4 n/ _5 B8 g
3 K+ c1 `" t5 `! a
" ]! P1 E' x( y* g" ^
/ e) a0 ]3 K/ b/ xJava电子书目录:第 1 章 初识Kafka 18 J: b! {' M. [, }$ O7 ]/ K; A
/ h7 l' S t, @, Q3 b% |
1.1 发布与订阅消息系统 1
! o* r- f# \/ s2 K1 K+ W$ G, ] ^( ~6 O) ~; l% G( [: R
1.1.1 如何开始 2
9 V4 @1 P- u+ o# O, l$ s$ c0 } [: j0 g- F$ y! E H
1.1.2 独立的队列系统 3. ^! y- }+ |/ Q T7 h1 ?3 a" T
' g$ r& T# _0 @6 P, b1.2 Kafka登场 4
5 h) K/ A& Y! L- n
0 s) i& T3 b) K* E1.2.1 消息和批次 4
+ [/ K% Q( m/ T
9 W! e5 g$ X0 \3 K9 q1.2.2 模式 4) u. O4 `& L9 o# O
) i, y0 u3 m; t* a; |1.2.3 主题和分区 5/ J1 ^( a; l" f: J: M
) F5 P$ m. I0 T* a; l7 Y
1.2.4 生产者和消费者 56 r8 I1 ?+ R6 X9 m. D P) v5 q
. R( k+ @! {% U
1.2.5 broker和集群 6 M5 s/ ~. ~8 c) t! Z
5 a: H3 D6 Y3 e. Q
1.2.6 多集群 7+ A7 t+ y. K& F1 ^9 w$ g
% R; f' C- N6 O7 B* j1.3 为什么选择Kafka 8
. M/ c- ^( i! D: I) U" w% z
% ?% u0 @6 Q8 s- Y) D, v6 f1.3.1 多个生产者 8
# T6 R* r2 o1 M6 _$ ?) K$ {' t9 s, c4 k
1.3.2 多个消费者 8
5 W5 U/ e. }7 n* `% S: W) j9 q- w* T: A- r9 l# S. F/ W- b
1.3.3 基于磁盘的数据存储 94 f% x" A- z, J1 u) g' V; ]
/ y& o* T4 O" A+ A8 n8 l1.3.4 伸缩性 95 B+ n( B; q4 ?* x
5 {7 w5 N& A# X6 ^9 B0 ^1 r1.3.5 高性能 9; k- i% e% E# e3 O% F k
/ d/ ]8 \5 R, [0 }( M" S1.4 数据生态系统 9
. d% F7 Q q' i- K6 }& |! a4 P5 c7 C% ?1 h# ~. D; S
1.5 起源故事 11. O/ y& R8 A: D1 n: l
8 F+ @8 t+ e5 I( W8 P M1.5.1 LinkedIn的问题 11
+ H! G+ o6 K+ Q) [" r" E
* p8 w* H* _; Z5 E; p) T7 p y1.5.2 Kafka的诞生 122 c+ {; I1 p# {1 g @
! S& p2 a: c; G6 s! v$ C# }
1.5.3 走向开源 12
k; P k* k+ p$ d* s5 \/ D3 r) H, t& q! `4 n" }
1.5.4 命名 13
7 t: P$ \; L# m Y7 _/ g, q
; D, Z- m I1 ~( n1.6 开始Kafka之旅 13/ P: D& k# }# y+ ?" @+ ^- \( n
) }7 A4 X' o- ? e& z, v- ?3 R
第 2 章 安装Kafka 145 Z6 P$ [# Z* `
2 @7 j- F; d1 }% r* V" W2.1 要事先行 142 j; z1 j# b8 _: _7 }7 q- ^0 i+ l
! M9 x! ^) {4 X: Z8 u+ F
2.1.1 选择操作系统 14
) [ `5 U6 j3 C( F" l4 ?5 t
: ^0 Q4 j, {6 E! @3 D2.1.2 安装Java 14( n: s! K- }9 g6 U
$ F7 }+ Z& q( i2 ?. x+ A8 o2.1.3 安装Zookeeper 157 R! \; ^) c9 O" Y" H
& J3 N, {; Q$ j& i y" v
2.2 安装Kafka Broker 17
( c' ?7 ?8 V6 x" P( H% h) k- i
- J' F& ?# |* o% f! Z9 K# B2.3 broker配置 18" `0 G& q5 K4 y/ m/ a' H
: r8 p w- O4 I
2.3.1 常规配置 187 z; I3 g' ~) d/ I3 O
' {) ] B4 j) x" }' X6 q2.3.2 主题的默认配置 19 B' E/ x, ^2 ~+ T
3 u0 w" c8 `9 K6 r6 V* I
2.4 硬件的选择 23
" N" }- t8 V8 M& l9 ?! ?( y/ [5 R N8 j: _2 o) l y% P+ F
2.4.1 磁盘吞吐量 23# A9 c& {, b) O/ l* b: e5 B3 s
6 H* s0 E5 T0 e1 M$ B! a2 ]8 i, D
2.4.2 磁盘容量 23
" ?$ J9 C0 ^. A. M2 f) n
7 | ~% I& ]2 w/ H$ u1 `; v2.4.3 内存 23
4 i2 M; P7 N* n4 Y; u/ S7 L n
8 n7 q. v! ~+ Z/ \) z4 f2.4.4 网络 24
$ m, ]" L6 K1 G; x& E& z' r j) F& r
2.4.5 CPU 24
5 A) \5 v7 X5 m+ D5 R
3 y. m" b8 L" V0 d- S7 v1 c8 j2.5 云端的Kafka 24
7 g1 g J* z% j& V' i; s$ ~2 R0 i4 F! s, b
2.6 Kafka集群 24
7 b3 K7 W* H! [" N- [/ f5 f
8 `; J$ m5 B. K- H/ S$ \0 j2 j% g0 B2.6.1 需要多少个broker 25! J* I1 a' _$ F7 X4 k( H( n
% @" D, i; a% z H4 E+ f" ?
2.6.2 broker 配置 25+ T! c: }) N( u
$ s1 R3 m) d* ]
2.6.3 操作系统调优 26
: c L8 A0 T, d: X* p
8 @0 Y) L% |5 z6 s6 {8 z2.7 生产环境的注意事项 28
4 [; l" ^3 W5 o- o, p, i* f/ R) [6 i0 n9 C { Z, B) Y( Y
2.7.1 垃圾回收器选项 28
% K, E5 O2 w6 s+ t
- e6 E/ d' [$ h& x. L2.7.2 数据中心布局 29
3 `! J C* |3 y2 p4 A; H1 ~/ n) C d( Q# U
2.7.3 共享Zookeeper 29' O( d1 O) l7 ]
9 @' V. b7 m& W: n/ m2.8 总结 30
. g- P v! ?4 Q, L) L, C8 Z8 g& _. G- A: c' N/ _% Y# I
第 3 章 Kafka生产者——向Kafka写入数据 31/ g% X8 E# l/ ]; J5 ]2 B
9 w1 T2 b% v% a9 a' u3 i- m* n
3.1 生产者概览 320 V* [* s7 ~7 X( |3 E; R' Q; O7 Y
2 H ?2 M. f7 _3.2 创建Kafka生产者 33# L' M* J. j5 m" H# W% i
2 ]% `) u8 s: H2 x
3.3 发送消息到Kafka 34" Y. ~5 i. K/ f, v
: }4 v3 I; @( a4 _3.3.1 同步发送消息 35
; C3 U4 b& O& y. B6 p. M2 q+ U6 w) x( e) K8 p. r" T$ D7 j2 Z: O
3.3.2 异步发送消息 35' Y- o; r4 a% ]! `- @
/ Y) ~# v, p+ k. q) d7 H( g% c3.4 生产者的配置 36 W7 e: ]% ~5 P. r& ^4 X9 U6 V
1 j! M5 H" k) t X: c# L- }3.5 序列化器 39
8 d; ^1 o% J9 p% x! L( G; j
+ d8 Q( P: u8 Y5 e8 M; d' U5 D3.5.1 自定义序列化器 39# B% } `5 H; Z/ f
1 Y7 h# H/ v' }5 R. x3.5.2 使用Avro序列化 41" V- o7 D1 S; K' ]& X% I3 \' {
+ N9 W1 |! l$ }4 N) U' d
3.5.3 在Kafka里使用Avro 42 I/ W, Z) Y0 I. Y$ R0 l5 P: v
+ x- N3 f( B0 [3.6 分区 455 D+ a1 K0 {0 a& y( V6 n1 H
4 [7 _# }0 w( y$ s# T+ O, L+ G3.7 旧版的生产者API 46
1 Q# Q% Y+ s% l! }; z" ?3 L, t0 Z: s6 O
3.8 总结 47
5 I8 u. Z0 m9 s/ h$ {5 O7 F
4 i) o$ m/ j3 Y3 ?第 4 章 Kafka消费者——从Kafka读取数据 48
$ Y; ]8 Y& [8 t7 _) ]" Y: z- @
$ W5 i* J. Z5 w% H7 ~ _4.1 KafkaConsumer概念 48
( Q* K3 R! O8 B6 q
9 i- _3 o) |' {& r4 d4.1.1 消费者和消费者群组 48
/ s- j s9 \# f# O! s3 I" i2 b8 r' Q7 P2 O# y- e
4.1.2 消费者群组和分区再均衡 51% ~$ o X: H: e1 v
7 R+ [2 B( h! N6 I: \/ I3 w/ q4.2 创建Kafka消费者 52( C. e6 U3 d5 ^; R+ m" w" Y
- m+ }9 A/ r: m: A) W
4.3 订阅主题 53
7 ~4 e+ u( t6 T& {5 a0 n5 D' m, ^* H) }; R
4.4 轮询 53( c3 c" W9 Z, O0 p, Q% k
( M: O! i3 e. ?1 s( r& g
4.5 消费者的配置 55) Y+ z* U1 A1 C) b7 w
: F2 x$ f# t, K: r/ p
4.6 提交和偏移量 57) V9 O8 M4 j2 Z! Q* b8 D8 K
% p: w1 K' C' J4.6.1 自动提交 58/ s4 V* H3 \+ x
" ?" B5 `- ^$ a+ n
4.6.2 提交当前偏移量 59
7 v, E# [$ M! E& V( A
7 ?5 R. m) ?- }* u8 j4.6.3 异步提交 59
% }* |) }# \" E( [4 F( V: {4 a+ Y2 j9 e0 W$ f! B1 }6 h
4.6.4 同步和异步组合提交 61
; B2 [# O, m/ M3 M x* D6 ^7 x$ ~4 v/ ^* t. j; s
4.6.5 提交特定的偏移量 61
{& T) T( {" H" J! ^ C" @9 P/ Q# I- K, D+ D# _4 Z ?# C3 L- C: t
4.7 再均衡监听器 62
1 ]0 G; g0 i; O4 `+ t+ F/ b; o8 E+ S; e6 s0 }+ K E
4.8 从特定偏移量处开始处理记录 64
- \/ r1 M( O2 i0 L
4 `4 @6 m/ @6 ~" o4.9 如何退出 662 a. J7 J: X9 ` {
. z) b9 s4 q' s+ A! ]0 ]
4.10 反序列化器 67
, W6 j) ]3 d/ Q# H; [7 m
1 z. `3 q) ^' H4.11 独立消费者——为什么以及怎样使用没有群组的消费者 71
9 ~, A. C4 s! \8 N$ u; |/ g- c# H) z6 V
4.12 旧版的消费者API 712 ~) M r% V) m3 l3 e& m8 R0 c/ a
- `. s7 j+ ^. M) ?) z( J% ]
4.13 总结 72
* T8 M9 q8 x- [0 a* T9 _
) } }% B, m- o' ]0 f5 R' ?' |3 i第 5 章 深入Kafka 73
1 F1 T+ V3 ?5 |2 I! \% Y, q7 s: h/ |
# p W: `2 M+ p6 v" F& V5.1 集群成员关系 73
: K: }* t" e0 g4 c; M/ A# t0 c* w3 Z
! w* o8 H* y3 B8 ^( _5 ]' @5 O5.2 控制器 74" j; o U: f& n4 t% Y' y8 [! e( m
" c$ I# q2 B$ ^/ G H5.3 复制 74) j1 U8 n# n8 X1 D
: N) P, h2 c5 A2 ^# D& l8 x
5.4 处理请求 763 C! G' O! z4 ~$ N' z! z( f
- Y5 ]4 u: O* N3 h; j) a4 p5.4.1 生产请求 78
% l9 e3 G% m8 ]$ W+ t6 y9 I# b3 e
9 o) x# h1 s. u2 L$ Y5.4.2 获取请求 78. t( L' K, i) L7 z) r- v5 n* r6 u
0 p7 C8 J2 i$ G5.4.3 其他请求 80
( r' d; i6 ~( Z1 O' a: F C5 C
! j5 L: s* o X3 P5.5 物理存储 81. u+ m6 c. p9 P. @
* f) Q+ ?7 N6 u9 d u% B: t, d
5.5.1 分区分配 81
' x% b; b5 L, D3 W7 ~6 G' E; \( [
: }. M* {& O Y: g, | p, K( i/ \5.5.2 文件管理 82" L o) }% \$ q- Q. g0 w
8 T6 `4 c3 U$ m
5.5.3 文件格式 83
8 P7 L& d& x- ^
7 q m5 s( x- b! _( A4 k3 _5.5.4 索引 84
! N6 l: y3 {. H
& l2 ^; n( c0 S5.5.5 清理 84
3 ^$ R7 L+ k1 F) m
% J9 b, Q) Q7 j; w5.5.6 清理的工作原理 84
& `' X; ?( p( w5 r i
+ Q. U9 l8 m6 W# l4 E5.5.7 被删除的事件 86
, A4 u% ~" I& B( [, v' m2 e: h% b% ~, N9 }! Z2 {$ c& X& j0 u: X
5.5.8 何时会清理主题 86. K: D0 o+ a" i( Z# \' g' M* `
( \2 d. k' B7 T; L5.9 总结 86
4 F" ?& ]6 p( s! P' o, \
- h9 d% e9 A1 }6 Q第 6 章 可靠的数据传递 878 w0 s! u: r5 C" ]! ^
' a( Z7 ]' i# V' d9 O6 S& Z5 Y6.1 可靠性保证 878 H& d% E& g# h
1 N! ?& Q2 W$ p8 k5 s. T
6.2 复制 88
/ v5 x6 s/ {0 B2 ^! J* k5 p
- X; Q. T; n: t; }5 _* j3 e6.3 broker配置 89* J% X0 d/ U+ l; {7 g% J
, s1 q$ ~/ E2 J! r. ^/ ^2 E
6.3.1 复制系数 892 }4 ^+ I1 t3 r# h! h
- U/ G+ I# K5 V& M6 \6.3.2 不完全的首领选举 90
. }$ Q% h/ ^1 Y. V# K% _; }- k9 }% o$ ]3 d
6.3.3 少同步副本 918 o/ a( ^0 q$ T9 R, p& w
[3 Y" Z/ b6 k2 O+ J) p
6.4 在可靠的系统里使用生产者 92
" v! |! p% l6 a g$ r5 G3 o* U) S
6.4.1 发送确认 92$ h8 d" r, r# f' B3 D! x+ Z, G
2 W- l: S( |8 I% j: F" `/ Q0 q3 b: F+ E5 u
6.4.2 配置生产者的重试参数 93
& {' S- C' p. g/ F7 {. I
i: P' F8 }: T9 j# G4 f/ R6.4.3 额外的错误处理 944 q7 d7 \9 P; N) Q0 S7 D
4 c! R! I* c2 t$ B* I3 Q6.5 在可靠的系统里使用消费者 94/ T- b3 ?) ]6 k: ?8 ?* G
; r0 m6 v* I- X8 M9 d1 K4 H6.5.1 消费者的可靠性配置 95
4 o6 z( `0 F6 E: E5 B. m' ?& u' \8 V8 \6 A
6.5.2 显式提交偏移量 95
+ c9 M1 q& m3 m0 c8 N1 ~+ d, r. T+ T, s. W- N5 ^- k; N
6.6 验证系统可靠性 97: G+ c, w+ y3 N
3 I, \. n7 j s% J0 O$ Y8 L, R
6.6.1 配置验证 98
, p8 b" I0 r6 d" h5 Q
4 R+ D2 M4 B* x+ H/ |6.6.2 应用程序验证 98 G/ S# g1 ?3 k4 k: `, B0 V
" S5 [0 P( |, R& T ^4 f6.6.3 在生产环境监控可靠性 99
5 H( U( V7 e" d/ B8 }7 [9 i( p2 h6 B0 O
6.7 总结 100" S- N3 N8 i& q2 R# x
W5 l3 q0 c) Q' ]7 `3 i第 7 章 构建数据管道 101& d. U7 k: ^$ T( S7 s6 p+ n$ Y
7 U% Z) o- u* N" k- k1 K/ g0 _
7.1 构建数据管道时需要考虑的问题 102
; q2 @9 [* \+ A' V! t* y8 p
6 f# m3 l: @- x, ~6 W* u% c% T/ h7.1.1 及时性 102! t X; {; [5 k7 O' _: G" A1 T' o
# g* _% Q8 ]) G6 H) P2 P N
7.1.2 可靠性 102. V" f2 A* z5 d. ]8 H- a& b! g7 p
5 _: a% w, G1 ?* \8 x7.1.3 高吞吐量和动态吞吐量 103
3 v7 Y" r* H' k4 o; o5 ~/ m; [& L5 z; I. s1 y ^/ [
7.1.4 数据格式 103! e& j1 L% r$ E
; G( T% L$ M! H3 {( o8 a. D7.1.5 转换 1045 C W- w4 ~" h2 ~$ D
# g( B/ T; g! G- h
7.1.6 安全性 1046 m9 B; L$ y$ ^' W2 {8 j
1 w! i6 v. d7 K* n/ Y" W7.1.7 故障处理能力 104/ K3 D+ P. f7 F, `
5 w Y6 C! g+ d. I: Z/ U
7.1.8 耦合性和灵活性 1059 a: |" W" M/ q& u+ R
( R+ M' U9 O% Z6 y3 W. c1 d7.2 如何在Connect API和客户端API之间作出选择 105
+ E7 S& w* W! `% l0 F
5 m- o$ |, I' ]! W; N, W1 ^- t7.3 Kafka Connect 106
& [. a+ o- a; I" \, h, O' R9 ?* m; k. q+ ^# X
7.3.1 运行Connect 106
- H$ G3 p: X& F- b* t# K0 x1 a0 a: \/ D
7.3.2 连接器示例——文件数据源和文件数据池 107
2 D& _; N4 y- J7 |+ u8 ]
/ R k3 O0 I) ^9 N1 U0 Z7.3.3 连接器示例——从MySQL到ElasticSearch 109; H" D9 K# y0 k5 F
W+ {% o& D: t
7.3.4 深入理解Connect 114
6 n% d- w5 w5 J% M# K N6 G
* l2 ^# P6 ?& L$ B: I6 `7.4 Connect之外的选择 116+ ^+ N* ^1 O# ?* Q7 ^1 R* {' `
$ d0 p' W0 G: ^2 m/ s: `7.4.1 用于其他数据存储的摄入框架 116
0 X4 w }/ X, ~. [. {
5 C' q) K9 \ Q7.4.2 基于图形界面的ETL工具 117
; j, {6 B' h( I P0 V$ N& r& {
% F1 j9 l1 `1 n0 H2 R S* S7.4.3 流式处理框架 117
/ O' O7 Q: t4 e5 M$ V+ J' R) y. }5 j3 F
7.5 总结 117# h2 F; F+ b) f- V, m
{1 x3 s# f! }* S' e8 O第 8 章 跨集群数据镜像 118
) K5 [, C. D6 O! [2 j$ x$ a9 \$ w
8.1 跨集群镜像的使用场景 118
# Q- @8 e4 M% [; i1 q6 d9 g: P c
7 ?8 L$ I$ f8 ?1 j+ y- S9 j8.2 多集群架构 119
5 e& h9 ^- |4 K: i( u) ~/ {& l! s; ?
8.2.1 跨数据中心通信的一些现实情况 119, c+ n& h5 N$ l: ^; z' c2 ]7 e1 B! J
; y0 ?' ^# `# F
8.2.2 Hub和Spoke架构 120" A3 U9 x+ f/ ]! p( y- X" O
9 Z' r, L6 Q; ?) o$ n6 ^2 |
8.2.3 双活架构 121+ ?1 {. ?: b/ L
/ @4 S, M7 G y' S8 D+ Y8.2.4 主备架构 123
: y/ [0 L. c5 a
9 R2 B0 f+ V5 a/ v9 X8.2.5 延展集群 127$ R u$ |+ E/ H6 O# G6 `
5 c h. |2 S4 U+ ]! u# i0 ?7 V8.3 Kafka的MirrorMaker 128+ }& l$ v: _& M n! ?# w
& L' K& T( D5 C* V! N8 c% O' N
8.3.1 如何配置 129# A- u) v# i- D5 G" D
' v8 N3 `& D' I* |" Q+ I$ o, e. y8.3.2 在生产环境部署MirrorMaker 130; P7 m4 A! |' k2 R( c
0 v! Z. Q0 `2 i/ s8.3.3 MirrorMaker调优 132$ L& F6 q: c8 {2 F, l# Z
2 F1 B. d2 S( Y" o9 P/ o2 j8.4 其他跨集群镜像方案 134
* C3 o4 [3 ]+ { @" |8 y
# Y; s6 }, m# @; O. ?6 M0 ?/ D' m8.4.1 优步的uReplicator 134; i5 O7 x: x+ @. T
+ G# R6 T% [" `9 C/ f+ Y
8.4.2 Confluent的Replicator 1359 [! K: h" d/ o" {4 L
5 b7 }, [' q5 N0 Q$ e8 S" `0 E& K. e
8.5 总结 1353 I! I. x8 m' e/ Q6 b, U
0 p- _- C9 D% X& ?5 j$ u第 9 章 管理Kafka 136
* G' c( w8 R. g, M1 R% W
- |# ~" D" d, ~9.1 主题操作 136
P% s' I! U) Y* o( \: {; C& w5 t& R5 C4 C6 B# i* H
9.1.1 创建主题 1376 j3 Q: U, o# G" o' H
! S' @( I0 W4 x: e( E7 t9.1.2 增加分区 138
$ A# b$ r; \" |* ?' g
0 _) _+ H9 N9 r/ H! b* D7 V; R c! i9.1.3 删除主题 138
# n) R7 J- J8 A8 A; p) B- \- [% n' D7 `, Q
9.1.4 列出集群里的所有主题 139* ?% A, ]8 r. C
( W; o7 O1 s: c# U4 h, b$ A
9.1.5 列出主题详细信息 139
; v0 F* i9 h! B) F/ P
- `2 o/ b& G0 Q9 S$ N9.2 消费者群组 140 u$ a9 f1 V! g8 I$ c3 Y
9 I- O' k, c9 Y/ o9 v2 R
9.2.1 列出并描述群组 140 F. x$ G/ f4 K. V, B
) g3 w# v' O" o* k* q/ g' s* n
9.2.2 删除群组 142
- Y4 h/ o, [) @5 h% g: ~4 Q9 y) y7 V/ x Z: d6 \
9.2.3 偏移量管理 142
6 [) c S* L+ C6 j" n8 H6 T$ U: H( G3 W5 U& M
9.3 动态配置变更 143. g3 |9 C( L+ a& u) g) ^
3 M; g( D" t" r. c {1 |( p
9.3.1 覆盖主题的默认配置 143
$ l+ y! p6 {- o3 R$ z; u: J4 u4 A T& J5 V- D/ u% n y% I$ R, d: |
9.3.2 覆盖客户端的默认配置 1459 Q+ f0 M! B3 w& n
5 }; p4 L5 P1 g) S9.3.3 列出被覆盖的配置 145" @* c6 ^4 A- C5 X( y
7 h! C# a! c X8 X- c. r! _
9.3.4 移除被覆盖的配置 146
+ W. w# l! D! }5 T* }( v. X5 Z# E* Z% H/ N
9.4 分区管理 146
4 K, ^7 `9 U ~7 ?$ @( b
7 ~8 a! B# T6 {+ v9.4.1 的首领选举 146: _- w0 ]3 m" _
6 v5 K& g; o5 r1 T2 r
9.4.2 修改分区副本 1472 H5 |& r q* u5 J
% l# G3 c' T5 }4 x2 N
9.4.3 修改复制系数 150
/ F# _6 e( Q- ~: D7 l. Y5 _1 P( d( w$ d8 P1 Y4 l
9.4.4 转储日志片段 151) ]+ a6 e/ `3 B0 G4 C. H
; ~6 k# k% B# b/ H! L
9.4.5 副本验证 152# B7 Q8 s. ]* t7 [: u3 C
) E3 K5 P* E2 i9 m3 W) K; G
9.5 消费和生产 153$ u& k$ D: J. C/ ?* Q" W( _
2 u& {7 G: h) K0 f
9.5.1 控制台消费者 153
* G+ B% h% m2 K. M. X$ s
0 K! @. V {' _* N" C9.5.2 控制台生产者 155
; L8 q- d5 _; n: \' U% j) h4 z' i$ l( w* O& }) b" e
9.6 客户端ACL 157
* |5 Y `( f6 `0 Z5 ]
- J U- J# o6 O/ H9.7 不安全的操作 1575 `; ^5 c" n! ~& k( V7 B" {* J1 \
7 _3 r8 ?. w4 Z. M# H% P k9.7.1 移动集群控制器 1571 v# _' w/ U. q, ]! v+ c' H. F
3 B4 }# [; J% E# Q9.7.2 取消分区重分配 157
* D5 w1 L3 O! Q- v W; H- a. @4 @+ S
. U% m" t+ {$ l9.7.3 移除待删除的主题 158; r) g+ n' e% Q( B
J5 X7 T5 m% M! ]! M9.7.4 手动删除主题 158
/ q& p6 N2 J/ X2 ?! n
5 _' z0 m6 `/ j0 d9.8 总结 159
. _) E+ `: w0 U* u. O9 l' q4 S
$ `$ W1 ]0 x* f( u. ~: ~第 10 章 监控Kafka 160
8 e S* W7 K! y( z9 O: P y6 K. s4 S/ \: @) A% o
10.1 度量指标基础 160+ ^2 x& I; O$ e. U. w
% }& h: y0 K/ q) u10.1.1 度量指标在哪里 160. \' @$ u. {1 X1 `! e3 _, l3 S
: c- c0 m$ g; V6 R H5 z. J. m10.1.2 内部或外部度量 1610 a+ j/ ` D' G
$ Q+ v2 F" K3 X10.1.3 应用程序健康检测 161
, C) N8 M8 Q1 e, \; R3 M/ y+ [6 S
10.1.4 度量指标的覆盖面 161
! Y5 g+ v0 d& K, j; `2 s
6 }+ u6 `; Z7 F { z10.2 broker的度量指标 162. Y5 M6 Y" y% y5 s- X6 \' n' e
$ m9 \+ T1 h5 j/ ~3 C5 \
10.2.1 非同步分区 162
, w- P( o, c% o7 r' K+ n) y
9 ~8 ~: s6 z9 w7 d10.2.2 broker度量指标 166; V5 O% D9 C: N3 R: L% i# G1 B
; N- Y' J4 G2 p5 Z10.2.3 主题和分区的度量指标 173- H# I9 M4 Q4 T. ~8 W/ R$ r' d0 V3 Q
1 d8 q4 ^. m2 c) \( G \" @
10.2.4 Java虚拟机监控 174
5 |! V, N3 ~# d* H: B5 H7 q: G$ a( \0 ?$ p" e* G8 ^
10.2.5 操作系统监控 175
. n/ a+ z, e$ I% ?* t. |
T u3 {8 h$ a% w" n+ C10.2.6 日志 176! V" ~/ G8 r( t$ ]5 y
) | C3 K) q( a; N2 [% v10.3 客户端监控 1770 ]# O- Z: E0 u% R' m; M
1 j! p( e; q: j5 F# m! g
10.3.1 生产者度量指标 177- h8 H Y0 W) B' v. a# G
* G3 G& R& [; J( d; _- F
10.3.2 消费者度量指标 179: ]5 r9 ]* F3 A$ o* X1 a
) E2 G5 E) o2 \10.3.3 配额 181
0 t2 F* P1 ~1 T) a; b$ M5 m# W
2 O5 S: E, X) p$ T( {+ K10.4 延时监控 182
' G5 J3 U3 p1 `! T j1 ~# B
% M/ m9 v% i$ F9 c10.5 端到端监控 183
' O. Y) K9 G# D& i. g6 l" J. E" |$ m# i" p8 H/ g
10.6 总结 183
% n8 K& d& J. O, W6 T
7 t9 j# r8 \1 v3 R6 G第 11 章 流式处理 184
8 a: G. Y* X4 J$ w5 Y
; E% g. f+ \. U* r% b+ U+ h& S H11.1 什么是流式处理 185
; l+ {+ K7 i9 }4 w6 [
$ W6 z, B7 ]- q11.2 流式处理的一些概念 186 W. l; \% Q! Y" l8 O. ~3 {% s V
3 O3 a6 [+ \; H, ]" {2 u11.2.1 时间 187
$ P/ c- y) O; Q f& H) p4 J0 d3 }5 Q, G% @) ~
11.2.2 状态 188
5 E1 }, I' H7 D: Q4 r3 T1 ?% C: L& n, u: `8 I% @' {9 L9 ~6 s( r
11.2.3 流和表的二元性 1880 Q1 i" h I% e P6 e8 Q6 s3 E
+ e& g' L* |" {% n/ f11.2.4 时间窗口 189# m- y0 r& x' g( G6 ~3 d
$ j3 P$ m ?+ f$ Z' X% [11.3 流式处理的设计模式 1905 P" g \: @# w1 t
5 t+ k" h; _% s/ E, M11.3.1 单个事件处理 191
# v8 V8 B& D3 b" a1 F
. x* s, p5 n" h8 s, a( e11.3.2 使用本地状态 1911 ]5 U! ]" b3 f$ M
* H+ c7 w: `- O, v: [4 a11.3.3 多阶段处理和重分区 193
" t: Y3 @# E6 @ h3 e* G. g2 n8 z( G+ s
11.3.4 使用外部查找——流和表的连接 1930 V: _% v" r' @ }# i
# L- P( b( P5 j' s% g* ]11.3.5 流与流的连接 195
4 x7 d. l4 i8 b& D/ ?0 s$ x8 |! g5 P8 f- M5 T% P
11.3.6 乱序的事件 195# r/ o1 [+ k! f/ q! i
" w. ?" k4 V4 L; B( U11.3.7 重新处理 196( |0 T$ f* C; V+ U4 q# h
, m) a+ J1 n/ P( I& W' f" R11.4 Streams示例 197
, Y) b @& X8 z: F# D+ c
* q% q" _8 ]2 ~11.4.1 字数统计 197
. {- z0 Z: K1 \' V8 T( g% D5 e" i8 s$ N9 X: {
11.4.2 股票市场统计 199
' R; T$ z" O! V: A9 I" G: L
& P/ W& n: i6 X! V* Q11.4.3 填充点击事件流 201
+ e: {) X8 ~8 x$ u7 s5 r* m3 L2 D5 _& q
11.5 Kafka Streams的架构概览 202% a+ g+ @0 C( F4 B, I) M: A
% A+ O! R% g- W3 Z* y$ p4 u
11.5.1 构建拓扑 2021 l4 ^5 h6 N: v2 \5 g1 \5 R1 p
java8.com0 S! V% w1 f4 m; ~1 C: C+ h, S1 K
11.5.2 对拓扑进行伸缩 203# F$ ~ S; q7 k+ q9 h+ J
9 K) ]: R! I! z, `+ Z l- @. P7 h
11.5.3 从故障中存活下来 205
4 U0 `( u. N2 _0 O( b
7 j9 L) V% R9 s: p, I11.6 流式处理使用场景 205" Q! l0 z+ I7 Y9 f( e
/ C4 Z# q% `& R0 |8 @" \
11.7 如何选择流式处理框架 2065 N% \! F9 X$ H4 z2 r+ ]/ n
* |: f5 n1 t7 p3 @" p11.8 总结 2088 B2 |! x' |" I( _ ?
* J! F9 _# {: ]
附录A 在其他操作系统上安装Kafka 209) L9 p- E3 X. w- p; E! q
, q# T) E0 i/ H4 P- y+ O+ K- `
作者介绍 214) G4 L0 }. @& ~. i) \+ l
4 a* i; u1 G0 D- F, ~) {0 a6 D& B( b- c封面介绍 2142 o6 i0 E7 h& n% |3 d. x/ o
百度云盘下载地址(完全免费-绝无套路):
: W2 t; I! m5 C: V: i p |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|