|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《RabbitMQ实战:高效部署分布式消息队列》 f* Y* x, D; w/ S8 b) Y
java电子书推荐理由:如何使用RabbitMQ消息通信服务器,构建和管理用不同语言编写的可伸缩应用。这很容易上手。你将学习消息队列的工作原理以及RabbitMQ是如何适用的。然后,你将通过许多案例来探索实践当中的可扩展性和互操作性问题。
6 i$ q# G6 ~9 l/ h* y学习要点:
, `2 W" E$ P. C% X) h% X7 d2 D1、学习基本消息通信设计模式
! o8 M6 l: I% q) ~; y2、使用模式来满足按需扩展
7 Q& @7 {4 H7 l" v. q3、整合PHP编写的前端和用任何语言编写的后端
8 L# {) s% j0 x, m, T9 |: i8 i4、在30分钟内实现发布/订阅的告警服务2 j$ \" w$ S6 m
5 、配置RabbitMQ内建集群% m2 ~) R- ]% F& ^6 u4 R$ n4 f
6、 监控、管理、扩展并调试RabbitMQ" P$ N! o- M6 ]2 O: Y
5 `8 G: m! P$ p+ {
作者:(美)维德拉(Videla ,A.), (美)威廉姆斯(Williams,J.J.W.) 著,汪佳南 译: u$ m3 [! @2 C1 @4 x
出版社:电子工业出版社. {9 R" [$ d- R0 x
出版时间:2015-10-012 h, T; ]$ D X3 P0 W8 w& T
! r3 U, s% U5 K
' K e4 C# O" @: u
' \/ p6 J3 H1 E( T8 E7 s: a
2 A! U/ T2 C/ b( ^8 m' }0 {8 ]
6 j2 D* y i# d K3 P, \
java电子书目录:) Q* i, y, w6 S( C1 u( Q4 k
. Q% u3 f; y3 P' ?6 O
: i' s0 ~* V; ^ V7 u7 {
第1章 天降奇兵1! R, }+ g/ {$ a; g- g
1.1 住在别人的地下城堡 3
* R2 W- f, r2 N- {1.2 救世主AMQP 5
4 t- L/ N0 H# u1.3 RabbitMQ简史 5! `, r5 ?( \% d& [1 X6 y
1.4 百里挑一 8
! z( h& J6 {, l, n. n1.5 在UNIX系统上安装RabbitMQ 87 r/ b. }* h H) b" f+ a$ E
1.5.1 为什么环境很重要——生活在Erlang 的世界里 9! l* G5 V3 X. ^2 l: t
1.5.2 获取安装包 9
( g. F' S" n0 R, n$ c5 K1.5.3 设置文件夹结构 9# a9 W5 E& Y, D# S. V
1.5.4 首次运行Rabbit 10; ?/ T/ b, C, l; a: B$ P) |
1.6 总结 12 ?/ V% d+ ?! Q8 I
第2章 理解消息通信13! M, U# n: L, |
2.1 消费者和生产者(这可不是经济学课程哦) 14
' Q8 V9 n+ ?7 W2.2 从底部开始构造:队列 17
! a! f% V6 n: I( a2.3 联合起来:交换器和绑定 22
+ s' b5 Z( u3 [* u2.4 多租户模式:虚拟主机和隔离 27& X. b$ A' ]7 ?% l1 S2 C
2.5 我的消息去哪儿了呢?持久化和你的策略 28
$ X) y3 L. _: x4 c4 x2.6 把所有内容结合起来:一条消息的一生 329 M5 G6 {& _9 A' C5 u6 X% s
2.7 使用发送方确认模式来确认投递 37
+ J3 @( P6 Y# y* |, [2.8 总结 40
/ @0 k+ w F1 C; m+ D第3章 运行和管理Rabbit 42: |( E* z8 o" A( p+ L4 m
3.1 服务器管理 43
* E# y, _, z$ L) Q. R6 \3.1.1 启动节点 439 O! D1 r) k: V
3.1.2 停止节点 45
& |! O, U" r/ R/ C* Z3.1.3 关闭和重启应用程序:有何差别 465 r8 m* f4 S# u! M4 U2 @! l
3.1.4 Rabbit 配置文件 46
7 c( ~0 P* S5 p+ K, `+ J. [3.2 请求许可 486 J: k9 E8 y- G* Q
3.2.1 管理用户 49; n, b" f+ W( k) r1 Z
3.2.2 Rabbit 的权限系统 50& p. J9 z- S# T
3.3 检查 54
! I6 N7 r8 u3 E. J# n3.3.1 查看数据统计 54
6 R# f" T* y: J! A; ~. \3.3.2 理解RabbitMQ 日志 593 ^9 w; B1 ]" k" e' ~
3.4 修复Rabbit:疑难解答 63
4 X4 y" E6 o/ |由badrpc、nodedown 和其他Erlang 引起的问题 63
- h; l; g: `/ ]- ]! j+ U0 c3.5 总结 68
9 k; U0 y2 Y$ @+ t第4章 解决Rabbit相关问题:编码与模式69
, B! l- N2 O3 k7 K4 c4.1 解耦风雨路:谁将我们推向消息通信 70! c5 x- b* M! Q9 l- F" d
4.1.1 异步状态思维(分离请求和动作) 70& j8 f3 _1 P. O. x8 B J$ P
4.1.2 提供扩展性:没有负载均衡器的世界 737 H! y6 ~7 `; J
4.1.3 零成本API :语言不应成为枷锁 73! u8 _) R d" M5 l+ A0 |# V
4.2 发后即忘模型 74
3 o, T# h. j( ?4 U6 v0 D Q2 B5 q3 s! w+ @4.2.1 发送告警 75
% W2 O, w9 _) H I& S4.2.2 并行处理 84
% @4 I4 C8 [7 z& A& T( C; T# t4.3 别忘了:用RabbitMQ实现RPC并等待响应 92
2 |' x. J0 I- I- t4.3.1 私有队列和发送确认 93
% a+ a0 d7 d( f! M% I4.3.2 使用reply_to 来实现简单的JSON RPC 932 G- W0 @. h! e* A
4.4 总结 98/ J3 h0 {8 M9 @ F5 ~
第5章 集群并处理失败99
# L1 I* y5 G3 M0 o+ m1 }/ Z3 [8 s5.1 开足马力:RabbitMQ集群 1008 e5 J \( p! c: p! ]0 o
5.2 集群架构 101
& S+ d( ^% @% I' K" ?9 |% K* W( `/ ]5.2.1 集群中的队列 101
5 b; t$ G2 x6 t- {5.2.2 分布交换器 1032 Z$ @# A! ?. A# N/ M
5.2.3 是内存节点还是磁盘节点 104
- `/ }& i5 x9 i5.3 在你的笔记本电脑上设置集群 106
* P7 z ^; P* E, F# L9 z6 K8 s5.4 将节点分布到更多的机器上 110
" h; ^3 l+ ^7 O+ W. ]9 x* N5.5 升级集群节点 114
( q& k- z. T3 i% z# Q& r( E5.6 镜像队列和保留消息 1152 d0 g( j. X& g$ u _& K
5.6.1 声明并使用镜像队列 115: e7 P* D( d& k; {' N" V5 r
5.6.2 镜像队列工作原理 1181 W3 h: N$ {7 I& h8 p. U* m
5.7 总结 120
( _: Q2 t1 e& \" P7 W% P2 \3 p第6章 从故障中恢复121$ G D! P: ? g5 `5 `; n
6.1 为Rabbit做负载均衡 122
E. [3 @- W, j2 B/ g' ]6.1.1 安装HAProxy 124
; p/ _' C. d7 M6.1.2 配置HAProxy 125
$ G) I5 r$ O, t- s6.2 连接丢失和故障转移 127/ J& ?1 `% f5 h) b/ ^9 c
6.3 总结 134, v, [! `. m& b e0 d. V" G9 ^) A
第7章 warren和Shovel:故障转移和复制 1357 j0 C; f2 f5 P- f- Q
7.1 warren:另一种集群方式 136
8 Q& F4 g. f& c* K2 Z: n7.2 设定负载均衡器——基于主/从的集群 138
$ a- l/ u1 l" k& N7.3 远距离通信和复制 142
% _) J* _: c$ U8 p7 Q5 W x7.3.1 给Rabbit 装备Shovel :Shovel 插件介绍 142
" | _" W5 _. @7.3.2 安装Shovel 145
$ x. U8 H9 q C, y* S7.3.3 配置并运行Shovel 1469 z6 k# h$ Q1 B; [. w
7.4 总结 152
5 \& g1 k, |$ Y6 T6 i, `$ {第8章 从Web端管理RabbitMQ 154
6 ?- j$ l" R1 C- R8.1 超越rabbitmqctl:RabbitMQ Management插件 155& t4 T, W! v% h+ S, U5 e
8.1.1 为何需要Management 插件 155
& u4 T3 B# a9 L+ d' L5 K8.1.2 Management 插件功能 155
& Y% h" T( d8 u$ X J- T1 ~& W+ I/ }8.1.3 启用Management 插件 156& s6 e s J( F7 c C4 ^$ [0 h# b
8.2 从Web控制台来管理RabbitMQ 158
8 C) F+ ?( ^9 \: t% R- j8.2.1 监控Erlang VM 158
7 p$ V/ A# P1 N6 M' R9 b( Z6 q. o8.2.2 从JSON 文件导入配置 159. A* Y1 S0 w, A$ X7 l3 [
8.3 从Web控制台管理用户 160
( H; s& `! o* H0 b. t& _8.3.1 创建用户 161$ r" E% g, C) R- u& _9 H2 M x2 f
8.3.2 管理用户的权限 162
/ `3 J: a5 B. @ h) z8.4 从Web控制台管理交换器和队列 163
3 \1 c' {1 [# Z4 t% W! N8.4.1 列出队列信息 165
# a& L5 q- N. ~! B. Z# |; y3 d8.4.2 创建队列 166. j) H9 h% C8 z: P& o
8.5 回到命令行 168
" I, P& h$ w4 O8.5.1 为什么需要另一个CLI 168
8 I* M: i; ^7 R8 b+ d) Z$ ~8 f8.5.2 CLI 管理:一种更简单的方式 170
: |9 o9 y: T7 i5 D- r5 E7 Y/ u0 w5 \8.5.3 安装rabbitmqadmin 脚本 170
6 D6 o O7 P6 P8 Z3 }9 _0 ]8.5.4 清空队列、创建交换器等 171
, G; C' u. \* k. A8.6 总结 172
6 z. u, ~. z/ E7 E/ q- ~1 H: L* `第9章 使用REST API控制Rabbit 173: A& I0 t, G$ v/ t3 z
9.1 能用RabbitMQ REST API做什么 175
$ _% l8 H* o7 s( k3 N9.2 对客户端授权访问 177& k9 ?7 K" O! _
9.3 访问数据统计 178
; ], t0 @% t0 Y7 o9.4 自动化vhost和用户配置 1813 y$ H1 Z& e+ w; M
9.5 总结 .186: E- A4 D' I! T& A% }' m
第10章 监控187
0 t* N) x; t& J10.1 监控RabbitMQ:密切关注你的warren 1882 i& E1 w. y& T8 O* O0 o: n! J6 m
10.1.1 为Nagios 编写健康检测 188
1 ^2 `7 d" f/ H10.1.2 使用AMQP 模拟检测来确认RabbitMQ 是否运行 190
W) V. n& Q. [3 ]5 {+ c' v$ D4 u10.1.3 使用REST API 来检测 193
" N+ v. h1 v+ L10.1.4 监控配置文件修改 1964 D' X. V. q# }. |3 J
10.1.5 监控集群状态 201* `, s( _; J1 @6 [; I* L3 E
10.2 确保消费者正常工作 206% ?- X0 Y6 t$ h5 `, {7 T0 ^" p
10.2.1 通过AMQP 监控队列等级 208) D1 Q8 J$ V, Y% _8 j* a( W5 H2 P
10.2.2 使用REST API 来监控队列级别 212! O/ @6 N# T0 B. m2 N) d
10.2.3 建立队列的消息计数基准经验法则 215' n# D9 L& b1 g i; w* o& ]" C7 u! D
10.3 总结216
5 P( q" D1 T* z, u2 w5 d第11章 提升性能,保障安全217
* z3 U) y" Z3 {8 j' l$ \$ @$ \11.1 对速度的需求 218
E% |$ n" k5 P* `; u' r& i9 t11.1.1 消息持久化 218; o9 w* P8 l% b Q1 t
11.1.2 消息确认 219
z3 o. F! ?" [ K11.1.3 路由算法和绑定规则 219& q, L' I4 ^( S" ~; e) h( }5 e
11.1.4 投递消息 221
. Y k! X x: p11.2 内存使用率和进程限制 223
# K3 t/ O1 k7 U7 n4 o' U11.2.1 内存使用率 223
: i/ U0 p; [" _7 A% {11.2.2 Erlang 进程计数 2267 J3 q) X3 b6 ^; b4 p7 h
11.3 SSL连接 ..227$ W1 F" J3 Y+ B7 O
11.3.1 SSL 证书.228
6 ^" u& Q) l- M11.3.2 设置证书颁发机构 ..229" u% w% K5 r( W( ~
11.3.3 生成根证书 233
0 O2 }. }' k% b8 y$ u+ Q0 B11.3.4 生成服务器端证书 234; H/ u$ S- ^" B% Q- A7 }
11.3.5 生成客户端证书 235
, [8 s& D9 A z9 q0 o8 C11.3.6 启用RabbitMQ 的SSL 监听器 2365 _! R+ B0 i6 b Z Q2 E
11.3.7 测试你的RabbitMQ SSL 设置 237
: _, [& q/ H) G, [5 U" G11.4 总结 2390 @! b% j, n7 I
第12章 聪明的Rabbit:扩展RabbitMQ241 I( i" _! t: e' u% ]: h
12.1 RabbitMQ插件 2424 F+ n. I. o" V& S" b$ d- S
12.1.1 你可以用插件做什么 242$ q0 p, @* x! G" J7 X L# `% _
12.1.2 在哪里可以找到插件 244( W3 V+ u: M, _3 [! Y# j
12.1.3 安装插件 244! o( s& A. L A {
12.1.4 移除插件 2458 L! u% y6 r! ^2 k0 k
12.2 制作你自己的插件 2470 K0 D m- t- I) D% v L0 }6 O
12.2.1 获取RabbitMQ Public Umbrella 2482 W# g5 O3 D8 m" I7 T3 Q
12.2.2 设置文件夹结构 249
( h6 l% x& @: p1 k* g12.2.3 包含插件构建系统 250/ j! S! A% R( v( \+ ~& \/ b; g3 I
12.2.4 创建Erlang 应用文件 250
& x1 S; z! t# I; b |. j5 E12.3 创建自定义交换器模块 252
( q4 g. _. X( Z- ^. z; K; g12.3.1 将交换器注册到RabbitMQ 254
+ e V" ~$ \1 U12.3.2 实现交换器behaviour 2579 l: a8 D6 E5 L
12.3.3 编译自定义交换器 264
' [8 s, b$ ^* q) Y12.3.4 测试你的插件 267/ l4 f/ y) e& x' h1 R& O0 Y
12.4 总结 271
a8 j* O! f* v6 u: I8 @附录A 在Java和.NET上使用Rabbit 273 ^. A+ w" g( A8 }4 t* ^$ U
附录B 在线资源302
5 ~, }6 O. l% z% f8 U: ]附录C 在Windows上安装RabbitMQ 3079 z$ f* k9 C g: s' |( Q+ R
: w# k* k) t: c( m4 n$ f
; b! s8 v, `. h2 i2 m6 w百度网盘下载地址链接(百度云)检索下载地址:" l9 S1 T" y$ ~' ~. X
1 O5 I* e1 m; L' ?# t6 r) a
6 _3 g: b6 V" N0 g' X
% e) n$ E: ?% \
3 N/ Z3 w5 b/ {, U/ B' I3 e+ W
$ n$ N7 u! @0 K/ q" a E; H- ` |
|