主编推荐语
本书从消息中间件的概念和RabbitMQ的历史切入,主要阐述RabbitMQ的安装、使用、配置、管理、运维、原理、扩展等方面的细节。
内容简介
《RabbitMQ实战指南》大致可以分为基础篇、进阶篇和高阶篇三个部分。
基础篇首先介绍RabbitMQ的基本安装及使用方式,方便零基础的读者以最舒适的方式融入到RabbitMQ之中。其次介绍RabbitMQ的基本概念,包括生产者、消费者、交换器、队列、绑定等。之后通过Java语言讲述了客户端如何与RabbitMQ建立(关闭)连接、声明(删除)交换器、队列、绑定关系,以及如何发送和消费消息等。
进阶篇讲述RabbitMQ的TTL、死信、延迟队列、优先级队列、RPC、消息持久化、生产端和消费端的消息确认机制等内容,以期读者能够掌握RabbitMQ的使用精髓。中间篇幅主要从RabbitMQ的管理、配置、运维这三个角度来为你提供帮助文档及解决问题的思路。
高阶篇主要阐述RabbitMQ的存储机制、流控及镜像队列的原理,深入地讲述RabbitMQ的一些实现细节,便于读者加深对RabbitMQ的理解。此外,本书还涉及网络分区的概念,此内容可称为魔鬼篇,需要掌握前面的所有内容才可理解其中的门道。最后讲述的是RabbitMQ的一些扩展内容及附录,供你参考之用。
目录
- 版权信息
- 内容简介
- 前言
- 内容大纲
- 读者讨论
- 致谢
- 读者服务
- 第1章 RabbitMQ简介
- 1.1 什么是消息中间件
- 1.2 消息中间件的作用
- 1.3 RabbitMQ的起源
- 1.4 RabbitMQ的安装及简单使用
- 1.4.1 安装Erlang
- 1.4.2 RabbitMQ的安装
- 1.4.3 RabbitMQ的运行
- 1.4.4 生产和消费消息
- 1.5 小结
- 第2章 RabbitMQ入门
- 2.1 相关概念介绍
- 2.1.1 生产者和消费者
- 2.1.2 队列
- 2.1.3 交换器、路由键、绑定
- 2.1.4 交换器类型
- 2.1.5 RabbitMQ运转流程
- 2.2 AMQP协议介绍
- 2.2.1 AMQP生产者流转过程
- 2.2.2 AMQP消费者流转过程
- 2.2.3 AMQP命令概览
- 2.3 小结
- 第3章 客户端开发向导
- 3.1 连接RabbitMQ
- 3.2 使用交换器和队列
- 3.2.1 exchangeDeclare方法详解
- 3.2.2 queueDeclare方法详解
- 3.2.3 queueBind方法详解
- 3.2.4 exchangeBind方法详解
- 3.2.5 何时创建
- 3.3 发送消息
- 3.4 消费消息
- 3.4.1 推模式
- 3.4.2 拉模式
- 3.5 消费端的确认与拒绝
- 3.6 关闭连接
- 3.7 小结
- 第4章 RabbitMQ进阶
- 4.1 消息何去何从
- 4.1.1 mandatory参数
- 4.1.2 immediate参数
- 4.1.3 备份交换器
- 4.2 过期时间(TTL)
- 4.2.1 设置消息的TTL
- 4.2.2 设置队列的TTL
- 4.3 死信队列
- 4.4 延迟队列
- 4.5 优先级队列
- 4.6 RPC实现
- 4.7 持久化
- 4.8 生产者确认
- 4.8.1 事务机制
- 4.8.2 发送方确认机制
- 4.9 消费端要点介绍
- 4.9.1 消息分发
- 4.9.2 消息顺序性
- 4.9.3 弃用QueueingConsumer
- 4.10 消息传输保障
- 4.11 小结
- 第5章 RabbitMQ管理
- 5.1 多租户与权限
- 5.2 用户管理
- 5.3 Web端管理
- 5.4 应用与集群管理
- 5.4.1 应用管理
- 5.4.2 集群管理
- 5.5 服务端状态
- 5.6 HTTP API接口管理
- 5.7 小结
- 第6章 RabbitMQ配置
- 6.1 环境变量
- 6.2 配置文件
- 6.2.1 配置项
- 6.2.2 配置加密
- 6.2.3 优化网络配置
- 6.3 参数及策略
- 6.4 小结
- 第7章 RabbitMQ运维
- 7.1 集群搭建
- 7.1.1 多机多节点配置
- 7.1.2 集群节点类型
- 7.1.3 剔除单个节点
- 7.1.4 集群节点的升级
- 7.1.5 单机多节点配置
- 7.2 查看服务日志
- 7.3 单节点故障恢复
- 7.4 集群迁移
- 7.4.1 元数据重建
- 7.4.2 数据迁移和客户端连接的切换
- 7.4.3 自动化迁移
- 7.5 集群监控
- 7.5.1 通过HTTP API接口提供监控数据
- 7.5.2 通过客户端提供监控数据
- 7.5.3 检测RabbitMQ服务是否健康
- 7.5.4 元数据管理与监控
- 7.6 小结
- 第8章 跨越集群的界限
- 8.1 Federation
- 8.1.1 联邦交换器
- 8.1.2 联邦队列
- 8.1.3 Federation的使用
- 8.2 Shovel
- 8.2.1 Shovel的原理
- 8.2.2 Shovel的使用
- 8.2.3 案例:消息堆积的治理
- 8.3 小结
- 第9章 RabbitMQ高阶
- 9.1 存储机制
- 9.1.1 队列的结构
- 9.1.2 惰性队列
- 9.2 内存及磁盘告警
- 9.2.1 内存告警
- 9.2.2 磁盘告警
- 9.3 流控
- 9.3.1 流控的原理
- 9.3.2 案例:打破队列的瓶颈
- 9.4 镜像队列
- 9.5 小结
- 第10章 网络分区
- 10.1 网络分区的意义
- 10.2 网络分区的判定
- 10.3 网络分区的模拟
- 10.4 网络分区的影响
- 10.4.1 未配置镜像
- 10.4.2 已配置镜像
- 10.5 手动处理网络分区
- 10.6 自动处理网络分区
- 10.6.1 pause-minority模式
- 10.6.2 pause-if-all-down模式
- 10.6.3 autoheal模式
- 10.6.4 挑选哪种模式
- 10.7 案例:多分区情形
- 10.8 小结
- 第11章 RabbitMQ扩展
- 11.1 消息追踪
- 11.1.1 Firehose
- 11.1.2 rabbitmq_tracing插件
- 11.1.3 案例:可靠性检测
- 11.2 负载均衡
- 11.2.1 客户端内部实现负载均衡
- 11.2.2 使用HAProxy实现负载均衡
- 11.2.3 使用Keepalived实现高可靠负载均衡
- 11.2.4 使用Keepalived+LVS实现负载均衡
- 11.3 小结
- 附录A 集群元数据信息示例
- 附录B /api/nodes接口详细内容
- 附录C 网络分区图谱
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。