|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《RabbitMQ实战:高效部署分布式消息队列》
6 X- c" N! g7 N, q' @, Wjava电子书推荐理由:如何使用RabbitMQ消息通信服务器,构建和管理用不同语言编写的可伸缩应用。这很容易上手。你将学习消息队列的工作原理以及RabbitMQ是如何适用的。然后,你将通过许多案例来探索实践当中的可扩展性和互操作性问题。
. P$ L) z9 B- h$ ]& |1 l8 p; e* D学习要点:
8 W7 C4 f/ c! r7 E3 s1、学习基本消息通信设计模式' R0 S# P7 J% U7 H) t. o
2、使用模式来满足按需扩展1 J1 @7 `; f5 f1 C; k
3、整合PHP编写的前端和用任何语言编写的后端# X3 Z, J1 k, P; z1 M( S+ I
4、在30分钟内实现发布/订阅的告警服务
9 H' \; ^3 {2 ?& @0 x8 Z6 B5 、配置RabbitMQ内建集群) @0 T" B6 ?5 m( o3 a3 D% C3 [
6、 监控、管理、扩展并调试RabbitMQ8 [" U" q, L. s4 S+ m$ |1 O
/ |9 C; Q: K0 d" J/ `
作者:(美)维德拉(Videla ,A.), (美)威廉姆斯(Williams,J.J.W.) 著,汪佳南 译0 X$ ^3 T) V# J5 h( d
出版社:电子工业出版社, L, ?( d, u) H$ Z" V* w m2 r5 s
出版时间:2015-10-01; x! _! ^) a( e4 ?
* P' y2 y$ A$ b. R' i9 z! |
% o0 Q7 H1 I; u1 @6 r: q' j) _
3 `% a2 J: P' \8 |1 Z3 {+ Q
) Q" H! e/ u _! `4 {7 R8 b; _
/ T# y. o7 U) kjava电子书目录:
& q) Q& Y" Z6 [. y: P7 U0 m. O
f/ a) A4 ?8 Y. B3 g' B
5 D+ Q2 P9 t9 J3 o. N+ J第1章 天降奇兵1& ^* l" w5 k) {7 ]+ `9 D
1.1 住在别人的地下城堡 3% r( b$ Y# x: m1 v1 G8 _/ S4 N
1.2 救世主AMQP 5+ O' ~$ z/ s7 F
1.3 RabbitMQ简史 5
8 t# X% I6 B& R9 d5 R1.4 百里挑一 8' y- O1 G1 p7 [; J
1.5 在UNIX系统上安装RabbitMQ 8
' Y6 j9 s1 x- k% n: r Y1 e1.5.1 为什么环境很重要——生活在Erlang 的世界里 91 \- u! x% [- {. T1 ^' C
1.5.2 获取安装包 93 h- \ h$ o i' q0 f6 U) ]. p
1.5.3 设置文件夹结构 9
7 @% R0 K# @8 c1.5.4 首次运行Rabbit 10* q! N/ ^5 f- q
1.6 总结 126 M) f0 V% l8 A. ~$ t7 }
第2章 理解消息通信13' C! P* R3 }$ Z; i, C
2.1 消费者和生产者(这可不是经济学课程哦) 14
: }" n* d ]0 N L5 ~4 O2.2 从底部开始构造:队列 17
5 N8 b$ \( v' n- l% I* p2.3 联合起来:交换器和绑定 22' F' f( z+ j, r) [0 C3 ]
2.4 多租户模式:虚拟主机和隔离 27
/ B" O8 t) f k4 u, U, p2.5 我的消息去哪儿了呢?持久化和你的策略 28: o; ~" l* o" B" `) ^$ D
2.6 把所有内容结合起来:一条消息的一生 32
2 N$ j" V/ E5 V2.7 使用发送方确认模式来确认投递 37
. x7 [0 ? i! }. f1 d2 M- R5 r2.8 总结 40
- p, A- ]1 a- J第3章 运行和管理Rabbit 42
- \) h2 k. R/ E3.1 服务器管理 43
& x# [' `4 _- H* F3.1.1 启动节点 43$ S% J3 O' x8 n$ b4 p
3.1.2 停止节点 45: S" F t3 e6 [0 n6 i3 ]5 S! ]2 D
3.1.3 关闭和重启应用程序:有何差别 46
2 K1 A$ i1 K4 E& {% I4 H3.1.4 Rabbit 配置文件 46- ^7 ]: R8 N$ r' B& S* m F+ |
3.2 请求许可 48% f5 d1 U: R, d" s+ v/ N& G# t
3.2.1 管理用户 49
3 h7 w6 ]8 k. [' ^( X3 ^! d! X3.2.2 Rabbit 的权限系统 50
7 P7 ?# D' C/ i# m3 K6 P3.3 检查 54, J/ x o" g- ]* z: w8 \
3.3.1 查看数据统计 548 _; i$ J0 Y0 W5 Z
3.3.2 理解RabbitMQ 日志 59
1 w: N( r8 R! D% g$ X3.4 修复Rabbit:疑难解答 639 x" \, \6 J) R2 X
由badrpc、nodedown 和其他Erlang 引起的问题 63) ~, J# A: u7 G$ J6 M. G" q: }
3.5 总结 68! L( b: R) D+ Q
第4章 解决Rabbit相关问题:编码与模式69
7 S# R% q5 T- I4 ?2 a( u( u4.1 解耦风雨路:谁将我们推向消息通信 708 `+ {% l1 ~' v9 I( W' a
4.1.1 异步状态思维(分离请求和动作) 70
; ^9 ?+ @ h& [( a4.1.2 提供扩展性:没有负载均衡器的世界 73
6 H' ^% c8 V8 y; d4.1.3 零成本API :语言不应成为枷锁 73! w/ g9 M7 l/ ^( Q: V4 Q* T, z; {
4.2 发后即忘模型 74
% }3 c) d% Q# U: G3 T4.2.1 发送告警 753 J) C7 d: ] n! ~ d. ?: [: u+ h
4.2.2 并行处理 841 B# Z* v' |: h# Y, f
4.3 别忘了:用RabbitMQ实现RPC并等待响应 92
3 I+ w' a) x; q4.3.1 私有队列和发送确认 93
4 k& j* Y$ e6 Z0 S* f# ` |4.3.2 使用reply_to 来实现简单的JSON RPC 93
$ M. X" _- `, A2 w. U0 I2 A4.4 总结 98
, O9 B* |3 |+ I S& R第5章 集群并处理失败999 W* f1 {; T" O% [0 b
5.1 开足马力:RabbitMQ集群 100
* B3 z7 i# `& C4 B5.2 集群架构 101
; {! n: p2 ~5 K5.2.1 集群中的队列 1012 Q- j; [+ `" k
5.2.2 分布交换器 1034 R8 ]1 o' g5 {6 D* A- W6 X- N
5.2.3 是内存节点还是磁盘节点 1040 s# Q9 G; n9 Z" x9 P. r+ r" C
5.3 在你的笔记本电脑上设置集群 106
6 p& x3 U0 k/ ^5.4 将节点分布到更多的机器上 110. H- s2 V$ T4 s. B6 |) A; T! B
5.5 升级集群节点 114
# `& w2 j: V3 K( v, N8 P5.6 镜像队列和保留消息 1158 ?! w! r+ y3 G8 V
5.6.1 声明并使用镜像队列 115
) t& t! g& d6 w/ Y5.6.2 镜像队列工作原理 118: P/ H# @# l; V& [& ?
5.7 总结 120
6 M% q% E4 F, x$ n: A: ?7 f第6章 从故障中恢复1211 f2 Y a/ H" k4 M. |; J
6.1 为Rabbit做负载均衡 122! M& S T; u3 Y
6.1.1 安装HAProxy 124
# g- c" C; O/ e6.1.2 配置HAProxy 1254 Y" F$ v1 G5 N9 M* X8 a) q0 Q
6.2 连接丢失和故障转移 127& Y. r z; l2 r; G ~$ w1 p& i ]# y
6.3 总结 134
, f8 |0 F$ j. Y; G# T: X第7章 warren和Shovel:故障转移和复制 1351 M: j( t+ p* C" ^' h ~# O s
7.1 warren:另一种集群方式 1367 S* d2 D& o& S" R- |. Q
7.2 设定负载均衡器——基于主/从的集群 1388 d3 n1 i! ?; r4 O6 J3 k6 T
7.3 远距离通信和复制 142
9 ?# s' {( J/ N3 J! D) I7.3.1 给Rabbit 装备Shovel :Shovel 插件介绍 142
0 h1 L7 x# z5 s: S, y7.3.2 安装Shovel 145% a* [6 e7 }6 W
7.3.3 配置并运行Shovel 146
) v) U' E9 `+ k1 @- R- g) }/ J7.4 总结 1522 X9 J& R" S9 a; w8 w3 G
第8章 从Web端管理RabbitMQ 154
5 m0 e. S2 R9 k: m, L7 X8.1 超越rabbitmqctl:RabbitMQ Management插件 155
/ X; h7 x( ~, j9 p7 I8.1.1 为何需要Management 插件 1559 f# C% F7 A" `3 G8 p4 J; W( i5 ^& c
8.1.2 Management 插件功能 155
, m. q$ S3 A8 D8.1.3 启用Management 插件 156
+ d% X( g* `) ]$ J8.2 从Web控制台来管理RabbitMQ 1584 W* u- T1 j. \% S
8.2.1 监控Erlang VM 158
# _6 x8 A/ ~9 F6 c, a+ G8.2.2 从JSON 文件导入配置 159
# B, K6 S# h) t8.3 从Web控制台管理用户 160
0 k; c" w% u2 ?" v+ E/ n" ?8.3.1 创建用户 1616 y8 l) C" }! h4 y3 I& E' s
8.3.2 管理用户的权限 162' |5 j0 E& g5 G! J0 ]- i
8.4 从Web控制台管理交换器和队列 1639 q$ K& C( p9 @/ V' p* k
8.4.1 列出队列信息 165
3 w* L, H5 [: j& B! v L N8.4.2 创建队列 166 |; @& n5 w5 J8 t! O% N* V: \, a
8.5 回到命令行 1689 u; W8 m3 l0 _+ p3 w
8.5.1 为什么需要另一个CLI 168
7 ?9 z& n+ e; ^" B# E; y! m8.5.2 CLI 管理:一种更简单的方式 1709 q9 J1 E: Q# z6 j
8.5.3 安装rabbitmqadmin 脚本 170
6 j+ b! b; l d: w0 |8.5.4 清空队列、创建交换器等 171
4 B# t5 E0 j4 @8 W& L8 ~4 l8.6 总结 1722 [0 x, s& m& B: p/ F
第9章 使用REST API控制Rabbit 173# k) u. e: ?( k# H5 P e9 U
9.1 能用RabbitMQ REST API做什么 175
$ n5 L$ n# c3 o/ A& Q9.2 对客户端授权访问 177
" H$ b( H# q+ _9.3 访问数据统计 178
& u1 x. j; Z. |7 B: ?! W9 Z9.4 自动化vhost和用户配置 181
) G7 n' N3 r* a2 I' D- b0 e: i, l9.5 总结 .1866 M; U7 l1 W/ p- m$ K, K6 p
第10章 监控187
U, H& ^ I& P) t10.1 监控RabbitMQ:密切关注你的warren 1883 S# R+ f6 ?% u, a& J1 I
10.1.1 为Nagios 编写健康检测 188
8 g; \3 h2 p. T& Z- Z% M& P10.1.2 使用AMQP 模拟检测来确认RabbitMQ 是否运行 190: N0 H h: e9 b3 l5 b$ X
10.1.3 使用REST API 来检测 193
! ~6 N" v6 y& N! d9 w10.1.4 监控配置文件修改 1961 Z6 v$ x) d8 O' V" @' W( i
10.1.5 监控集群状态 201
8 c" f2 _. `3 s; @3 C4 W10.2 确保消费者正常工作 206
4 L8 d" a: p3 h& U$ V, `10.2.1 通过AMQP 监控队列等级 208
- l( Y6 @4 o' i8 U8 ^# d. ~# ?10.2.2 使用REST API 来监控队列级别 2129 t$ M! o. M. h. {+ _* P+ j
10.2.3 建立队列的消息计数基准经验法则 2159 |3 n% U) }1 q" m
10.3 总结216
. U/ [% E; f0 r- F0 j第11章 提升性能,保障安全217- b- y6 p. S, e9 Y
11.1 对速度的需求 218
0 y4 W. {8 D/ ]/ o11.1.1 消息持久化 218 }2 i# M' N* Q
11.1.2 消息确认 2193 @- {7 b3 R H5 U2 K- a
11.1.3 路由算法和绑定规则 219
" Q2 l# u/ r4 Z; F: Q11.1.4 投递消息 221% x+ ^( ~, O6 D
11.2 内存使用率和进程限制 223
+ e1 G( |4 l4 E# y; {11.2.1 内存使用率 223
' w' K" h" T. e3 U; R8 ?1 z5 |11.2.2 Erlang 进程计数 226) Q& I+ ~ w- e4 s5 i
11.3 SSL连接 ..227! d8 x- g7 q1 f4 U/ l5 {
11.3.1 SSL 证书.228
, P- E! H8 h$ W9 \8 V11.3.2 设置证书颁发机构 ..229+ ?, |4 I. M& K: `1 r$ ]
11.3.3 生成根证书 233
" \* G8 [/ a2 o" X3 v8 P11.3.4 生成服务器端证书 234
2 n1 U$ l/ w# T/ [: M11.3.5 生成客户端证书 235
8 I$ G' r* Y6 U! }+ ~' z11.3.6 启用RabbitMQ 的SSL 监听器 2367 N5 I" d, e9 L/ d/ u; q% m
11.3.7 测试你的RabbitMQ SSL 设置 237& F D1 x1 b! P I9 s
11.4 总结 239
& X+ t4 |* w, |# A7 T5 A第12章 聪明的Rabbit:扩展RabbitMQ2414 D- U. ]& q. ~( q. V- G8 z, E
12.1 RabbitMQ插件 242
+ v7 D: T# d) ?7 z* [. N/ Y12.1.1 你可以用插件做什么 242
" ?3 t* u- Y3 f2 \- V12.1.2 在哪里可以找到插件 244
$ X6 C, l. k r, @12.1.3 安装插件 2440 D* H4 f+ f# s1 i
12.1.4 移除插件 245
. U) G$ Q! I/ x12.2 制作你自己的插件 2476 h, F8 j! m/ s
12.2.1 获取RabbitMQ Public Umbrella 248& ~& B; y% _* ?
12.2.2 设置文件夹结构 249
- D+ \* h1 Q5 }/ l12.2.3 包含插件构建系统 250/ @; o7 `2 _3 I4 t+ ^
12.2.4 创建Erlang 应用文件 250
1 [# }+ |* r1 h0 r _# G4 L12.3 创建自定义交换器模块 252& V- B" ?# o+ T/ s0 F6 o
12.3.1 将交换器注册到RabbitMQ 254
1 M/ q: F1 o' e12.3.2 实现交换器behaviour 2572 l2 d# W) x3 D0 P, a0 }" O
12.3.3 编译自定义交换器 264. k; D- h7 `& Q
12.3.4 测试你的插件 267! w2 M/ t% F9 ]6 F4 @8 i' [6 n
12.4 总结 271
9 B1 ^% v5 ~9 M% n附录A 在Java和.NET上使用Rabbit 273
+ H& ?$ {$ a' c- z& n) B9 [; x4 R/ p附录B 在线资源302
+ A8 L9 } ~8 f g; O8 p附录C 在Windows上安装RabbitMQ 307
. S% [) `, X* {5 F+ w+ j8 A: E) J! P) S' R- l- c9 r- }$ Y7 I
& ], z- d( k6 J' q* Y' t9 D! B) K
百度网盘下载地址链接(百度云)检索下载地址:/ G# G; U7 h# g5 a* I( n
* c. L+ } W# T
7 ?6 [* k3 p4 P; v: f% Y7 D# K
4 p6 W0 O8 ^, p' m3 c6 V8 J' v
2 G- ^5 p; |. r+ T8 h$ G
; N# [- t0 V3 @& i/ Y' k- U6 u- ^2 z5 `
|
|