基本信息
作者: 杨开元
丛书名: 云栖社区系列
出版社:机械工业出版社
ISBN:9787111600251
上架时间:2018-6-11
出版日期:2018 年6月
开本:16开
版次:1-1
所属分类:计算机
目录
推荐序
前言
第1章 快速入门1
1.1 消息队列功能介绍1
1.1.1 应用解耦1
1.1.2 流量消峰2
1.1.3 消息分发3
1.2 RocketMQ简介4
1.3 快速上手RocketMQ4
1.3.1 RocketMQ的下载、安装和配置 5
1.3.2 启动消息队列服务6
1.3.3 用命令行发送和接收消息6
1.3.4 关闭消息队列6
1.4 本章小结7
第2章 生产环境下的配置和使用8
2.1 RocketMQ各部分角色介绍8
2.2 多机集群配置和部署9
2.2.1 启动多个NameServer和Broker10
2.2.2 配置参数介绍11
2.3 发送/接收消息示例13
2.4 常用管理命令15
2.5 通过图形界面管理集群21
2.6 本章小结22
第3章 用适合的方式发送和接收消息23
3.1 不同类型的消费者23
3.1.1 DefaultMQPushConsumer的使用23
3.1.2 DefaultMQPushConsumer的处理流程25
3.1.3 DefaultMQPushConsumer的流量控制28
3.1.4 DefaultMQPullConsumer30
3.1.5 Consumer的启动、关闭流程32
3.2 不同类型的生产者33
3.2.1 DefaultMQProducer 34
3.2.2 发送延迟消息36
3.2.3 自定义消息发送规则36
3.2.4 对事务的支持37
3.3 如何存储队列位置信息38
3.4 自定义日志输出42
3.5 本章小结44
第4章 分布式消息队列的协调者45
4.1 NameServer的功能45
4.1.1 集群状态的存储结构46
4.1.2 状态维护逻辑47
4.2 各个角色间的交互流程48
4.2.1 交互流程源码分析48
4.2.2 为何不用ZooKeeper50
4.3 底层通信机制50
4.3.1 Remoting模块51
4.3.2 协议设计和编解码54
4.3.3 Netty库56
4.4 本章小结56
第5章 消息队列的核心机制57
5.1 消息存储和发送57
5.2 消息存储结构58
5.3 高可用性机制60
5.4 同步刷盘和异步刷盘61
5.5 同步复制和异步复制62
5.6 本章小结63
第6章 可靠性优先的使用场景64
6.1 顺序消息64
6.1.1 全局顺序消息64
6.1.2 部分顺序消息65
6.2 消息重复问题67
6.3 动态增减机器67
6.3.1 动态增减NameServer67
6.3.2 动态增减Broker69
6.4 各种故障对消息的影响70
6.5 消息优先级72
6.6 本章小结73
第7章 吞吐量优先的使用场景74
7.1 在Broker端进行消息过滤74
7.1.1 消息的Tag和Key74
7.1.2 通过Tag进行过滤75
7.1.3 用SQL表达式的方式进行过滤75
7.1.4 Filter Server方式过滤77
7.2 提高Consumer处理能力78
7.3 Consumer的负载均衡80
7.3.1 DefaultMQPushConsumer的负载均衡80
7.3.2 DefaultMQPullConsumer的负载均衡81
7.4 提高Producer的发送速度83
7.5 系统性能调优的一般流程85
7.6 本章小结87
第8章 和其他系统交互88
8.1 在SpringBoot中使用RocketMQ88
8.1.1 直接使用88
8.1.2 通过Spring Messaging方式使用90
8.2 直接使用云上RocketMQ91
8.3 RocketMQ与Spark、Flink对接93
8.4 自定义开发运维工具93
8.4.1 开源版本运维工具功能介绍94
8.4.2 基于Tools模块开发自定义运维工具95
8.5 本章小结96
第9章 首个Apache中间件顶级项目97
9.1 RocketMQ的前世今生97
9.2 Apache顶级项目(TLP)之路98
9.3 源码结构99
9.4 不断迭代的代码100
9.5 本章小结102
第10章 NameServer源码解析103
10.1 模块入口代码的功能103
10.1.1 入口函数103
10.1.2 解析命令行参数104
10.1.3 初始化NameServer的Controller105
10.2 NameServer的总控逻辑106
10.3 核心业务逻辑处理107
10.4 集群状态存储109
10.5 本章小结111
第11章 最常用的消费类112
11.1 整体流程112
11.1.1 上层接口类112
11.1.2 DefaultMQPushConsumer的实现者114
11.1.3 获取消息逻辑116
11.2 消息的并发处理118
11.2.1 并发处理过程118
11.2.2 ProcessQueue对象121
11.3 生产者消费者的底层类122
11.3.1 MQClientInstance类的创建规则122
11.3.2 MQClientInstance类的功能124
11.4 本章小结127
第12章 主从同步机制128
12.1 同步属性信息128
12.2 同步消息体130
12.3 sync_master和async_master132
12.4 本章小结134
第13章 基于Netty的通信实现135
13.1 Netty介绍135
13.2 Netty架构总览136
13.2.1 重新实现ByteBuffer136
13.2.2 统一的异步 I/O接口137
13.2.3 基于拦截链模式的事件模型138
13.2.4 高级组件139
13.3 Netty用法示例140
13.3.1 Discard服务器140
13.3.2 查看收到的数据144
13.4 RocketMQ基于Netty的通信功能实现145
13.4.1 顶层抽象类145
13.4.2 自定义协议148
13.4.3 基于Netty的Server和Client151
13.5 本章小结152
↑折 叠
著 者:(美)Gavin M. Roy(加文·罗伊)
作 译 者:汪佳南,郑天民
出版时间:2018-06 千 字 数:302
版 次:01-01 页 数:252
开 本:16开
装 帧:
I S B N :9787121341809
换 版:
所属分类:科技 >> 计算机 >> 网络与互联网
纸质书定价:¥79.0
本书对 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
评分
评分
评分
评分
评分
评分
评分
评分
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.qciss.net All Rights Reserved. 图书大百科 版权所有