深入RabbitMQ[PDF][168.37MB]
内容简介
本书对 RabbitMQ 这一业界主流的消息中间件做了全面介绍,给出了如何使用 RabbitMQ 构建消息通信系统的方法和实践。本书从 AMQP 协议出发,深入介绍各种消息属性,给出 RabbitMQ 在发送和消费消息上的特性和*实践,并阐述基于 RabbitMQ 所特有的交换器组件实现灵活的消息路由机制。同时,本书也讨论了如何利用 RabbitMQ 强大的集群机制实现分布式环境下的消息通信,并展示了如何在 RabbitMQ中,使用其他传输协议以及数据库集成等功能来实现各种定制化需求。本书的读者对象为从事互联网行业中各种分布式和服务化系统开发的研究人员、高等院校计算机相关专业的研究生和本科生,以及广大的 IT 爱好者。
目录
第一篇 RabbitMQ和应用程序体系结构
第1章 RabbitMQ基础 3
1.1 RabbitMQ特性以及好处 4
1.1.1 RabbitMQ与Erlang 5
1.1.2 RabbitMQ与AMQP 6
1.2 谁在使用RabbitMQ,在怎么用 7
1.3 松耦合架构的优势 8
1.3.1 解耦你的应用 10
1.3.2 解耦数据库写入 11
1.3.3 无缝添加新功能 12
1.3.4 复制数据与事件 12
1.3.5 多主(Multi-Master)互联化数据与事件 13
1.3.6 高级消息队列模型 14
1.4 小结 16
第2章 使用AMQ协议与Rabbit进行交互 18
2.1 AMQP作为一种RPC传输机制 19
2.1.1 启动会话 20
2.1.2 调整正确的信道 20
2.2 AMQP RPC帧结构 21
2.2.1 AMQP帧组件 21
2.2.2 帧类型 22
2.2.3 将消息编组成帧 23
2.2.4 方法帧结构 24
2.2.5 内容头帧 26
2.2.6 消息体帧 26
2.3 使用协议 27
2.3.1 声明交换器 27
2.3.2 声明队列 28
2.3.3 绑定队列到交换器 29
2.3.4 发布消息到RabbitMQ 29
2.3.5 从RabbitMQ中消费消息 30
2.4 用Python编写消息发布者 32
2.5 从RabbitMQ中获取消息 36
2.6 小结 37
第3章 消息属性详解 38
3.1 合理使用属性 39
3.2 使用content-type属性创建显式的消息契约 41
3.3 通过gzip和content-encoding属性压缩消息大小 43
3.4 使用message-id和correlation-id引用消息 45
3.4.1 Message-id 45
3.4.2 Correlation-id 45
3.5 创建时间:timestamp属性 46
3.6 消息自动过期 47
3.7 使用delivery-mode平衡速度和安全性 48
3.8 使用app-id和user-id验证消息来源 49
3.8.1 app-id 50
3.8.2 user-id 51
3.9 使用type属性获取明细 51
3.10 使用reply-to属性实现动态工作流 52
3.11 使用消息头自定义属性 53
3.12 优先级属性 54
3.13 不能使用的属性:cluster-id/reserved 54
3.14 小结 55
第4章 消息发布的性能权衡 58
4.1 平衡投递速度与可靠投递 59
4.1.1 如果没有保证机制我们能期待什么 60
4.1.2 使用mandatory设置,RabbitMQ将不接受不可路由消息 62
4.1.3 发布者确认作为事务的轻量级替代方法 64
4.1.4 使用备用交换器处理无法路由的消息 66
4.1.5 基于事务的批量处理 68
4.1.6 使用HA队列避免节点故障 70
4.1.7 HA队列与事务 72
4.1.8 通过设置delivery-mode为2将消息持久化到磁盘 72
4.2 RabbitMQ回推 75
4.2.1 使用rabbitpy来检测连接状态 77
4.2.2 使用管理API管理连接状态 77
4.3 小结 78
第5章 消费消息,避免拉取 79
5.1 对比Basic.Get 和Basic.Consume 80
5.1.1 Basic.Get 80
5.1.2 Basic.Consume 82
5.2 优化消费者性能 84
5.2.1 使用no-ack模式实现更快的吞吐量 85
5.2.2 通过服务质量设置控制消费者预取 86
5.2.3 消费者使用事务 89
5.3 拒绝消息 90
5.3.1 Basic.Reject 90
5.3.2 Basic.Nack 91
5.3.3 死信交换器 92
5.4 控制队列 94
5.4.1 临时队列 94
5.4.2 永久队列 97
5.4.3 任意队列设置 99
5.5 小结 99
第6章 消息路由模式 101
6.1 通过direct交换器路由消息 102
6.1.1 创建应用架构 103
6.1.2 创建RPC工作者 107
6.1.3 编写简单的RPC发布者 110
6.2 通过fanout交换器广播消息 115
6.2.1 修改面部检测消费者 116
6.2.2 创建一个简单的图片哈希消费者 117
6.3 使用topic交换器有选择地路由消息 119
6.4 使用headers交换器有选择地路由消息 122
6.5 交换器性能基准 124
6.6 交换器间路由 125
6.7 使用一致性哈希交换器路由消息 127
6.8 小结 131
第二篇 管理数据中心或云中的RabbitMQ
第7章 RabbitMQ集群 135
7.1 集群简介 136
7.1.1 集群和管理界面 137
7.1.2 集群节点类型 138
7.1.3 集群和队列行为 139
7.2 集群设置 142
7.2.1 虚拟机设置 143
7.2.2 向集群中添加节点 144
7.3 小结 147
第8章 跨集群的消息分发 148
8.1 联合交换器和联合队列 149
8.1.1 联合交换器 149
8.1.2 联合队列 152
8.2 创建RabbitMQ虚拟机 153
8.2.1 创建首个实例 153
8.2.2 复制EC2实例 159
8.3 连接上游节点 162
8.3.1 定义联合中的上游节点 162
8.3.2 定义策略 164
8.3.3 利用上游集合 167
8.3.4 双向联合交换器 170
8.3.5 使用联合来升级集群 171
8.4 小结 173
第三篇 集成与定制
第9章 使用替代协议 177
9.1 MQTT和RabbitMQ 178
9.1.1 MQTT协议 178
9.1.2 通过MQTT发送消息 182
9.1.3 MQTT订阅者 184
9.1.4 MQTT插件配置 187
9.2 STOMP和RabbitMQ 189
9.2.1 STOMP协议 190
9.2.2 发布消息 191
9.2.3 消费消息 195
9.2.4 配置STOMP插件 198
9.2.5 在Web浏览器中使用STOMP 199
9.3 通过HTTP进行无状态发布 200
9.3.1 statelessd的由来 200
9.3.2 使用statelessd 201
9.3.3 运营架构 202
9.3.4 通过statelessd来发布消息 203
9.4 小结 203
第10章 数据库集成 205
10.1 PostgreSQL扩展:pg_amqp 206
10.1.1 安装pg_amqp扩展 207
10.1.2 配置pg_amqp扩展 209
10.1.3 通过pg_amqp发送消息 210
10.2 监听PostgreSQL通知 212
10.2.1 安装PostgreSQL LISTEN交换器 213
10.2.2 基于策略的配置 215
10.2.3 创建交换器 217
10.2.4 创建并绑定测试队列 217
10.2.5 通过NOTIFY发送消息 218
10.3 将消息存入InfluxDB中 219
10.3.1 InfluxDB的安装与设置 220
10.3.2 安装InfluxDB存储交换器 222
10.3.3 创建测试交换器 223
10.3.4 测试交换器 224
10.4 小结 227
附录 准备就绪 228
A.1 安装VirtualBox 228
A.2 安装Vagrant 230
A.3 设置Vagrant虚拟机 233
A.4 确认安装 234
A.5 小结 236
文档截图
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
- 1尚硅谷前端学科全套视频[AVI][130.72GB]
- 2深入理解php:高级技巧、面向对象与核心技术(原书第3版) 【PDF】
- 3开发高质量PHP框架与应用的实际案例解析【PDF】
- 4响应式Web图形设计 ([美]Christopher Schmitt) 中文【PDF】
- 5响应式Web设计:HTML5和CSS3实践指南【PDF】
- 6响应式Web设计:HTML5和CSS3实战 第2版 (本·弗莱恩) 中文【PDF】
- 7Axure RP8 实战手册 网站和APP原型制作案例精粹(小楼一夜听春语) 试读版【PDF】【15.4MB】
- 8[马上学Android]安卓开发视频教程
- 9Android开发视频教程
- 10PHP100视频教程
- 1Java编程思想On Java 8[PDF][中文][英文][源码][15.31MB]
- 2PostgreSQL实战 (谭峰等著)【PDF】【221.29MB】
- 3【机器学习】菜菜的sklearn课堂(1-12全课)[PDF][源码][157.45MB]
- 4UNREAL ENGINE 4蓝图完全学习教程[PDF][66.67MB]
- 5加密与解密(第4版)[PDF][光盘源码][1.15GB]
- 6Qt 5.9 C++开发指南[PDF][276.26MB]
- 7Python数据分析与应用PPT、教案、实训数据、习题答案[PPT][142.49MB]
- 8数据中台:让数据用起来[PDF][12.80MB]
- 9计算机网络:自顶向下方法(第7版) 【PDF】【英文】【17.46MB】
- 10大话5G:走进万物互联新时代【PDF】【37.31MB】