分享
RabbitMQ实战指南.pdf
下载文档

ID:2351523

大小:3MB

页数:348页

格式:PDF

时间:2023-05-08

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
RabbitMQ 实战 指南
内 容 简 介 本书从消息中间件的概念和 RabbitMQ 的历史切入,主要阐述 RabbitMQ 的安装、使用、配置、管理、运维、原理、扩展等方面的细节。本书大致可以分为基础篇、进阶篇和高阶篇三个部分。基础篇首先介绍 RabbitMQ的基本安装及使用方式,方便零基础的读者以最舒适的方式融入到 RabbitMQ 之中。其次介绍 RabbitMQ 的基本概念,包括生产者、消费者、交换器、队列、绑定等。之后通过 Java 语言讲述了客户端如何与 RabbitMQ建立(关闭)连接、声明(删除)交换器、队列、绑定关系,以及如何发送和消费消息等。进阶篇讲述 RabbitMQ的 TTL、死信、延迟队列、优先级队列、RPC、消息持久化、生产端和消费端的消息确认机制等内容,以期读者能够掌握 RabbitMQ 的使用精髓。本书中间篇幅主要从 RabbitMQ 的管理、配置、运维这三个角度来为读者提供帮助文档及解决问题的思路。高阶篇主要阐述 RabbitMQ 的存储机制、流控及镜像队列的原理,深入地讲述 RabbitMQ 的一些实现细节,便于读者加深对 RabbitMQ 的理解。本书还涉及网络分区的概念,此内容可称为魔鬼篇,需要掌握前面的所有内容才可理解其中的门道。本书最后讲述的是 RabbitMQ 的一些扩展内容及附录,供读者参考之用。本书既可供初学者学习,帮助读者了解RabbitMQ 的具体细节及使用方式、原理等,也可供相关开发、测试及运维人员参考,给日常工作带来启发。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 RabbitMQ 实战指南/朱忠华著.北京:电子工业出版社,2017.11 ISBN 978-7-121-32991-3.R .朱 .JAVA 语言程序设计指南 .TP312.8-62 中国版本图书馆CIP 数据核字(2017)第264324 号 责任编辑:陈晓猛 印 刷:三河市华成印务有限公司 装 订:三河市华成印务有限公司 出版发行:电子工业出版社 北京市海淀区万寿路173 信箱 邮编 100036 开 本:7879802 1/16 印张:21.75 字数:417 千字 版 次:2017 年11 月第1 版 印 次:2017 年11 月第1 次印刷 定 价:79.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至。本书咨询联系方式:010-51260888-819,。前 言 初识 RabbitMQ 时,我在网上搜寻了大量的相关资料以求自己能够快速地理解它,但是这些资料零零散散而又良莠不齐。后来又寄希望于RabbitMQ 的相关书籍,或许是它们都非出自国人之手,里面的陈述逻辑和案例描述都不太符合我自己的思维习惯。最后选择从头开始自研RabbitMQ,包括阅读相关源码、翻阅官网的资料以及进行大量的实验等。平时我也有写博客的习惯,通常在工作中遇到问题时会结合所学的知识整理成文。随着一篇篇的积累,也有好几十篇的内容,渐渐地也就有了编撰成书的想法。本书动笔之时我曾信心满满,以为能够顺其自然地完成这本书,但是写到四分之一时,发现并没有想象中的那么简单。怎样才能让理解领悟汇聚成通俗易懂的文字表达?怎样才能让书中内容前后贯通、由浅入深地阐述?有些时候可能知道怎样做、为什么这么做,而没有反思其他情形能不能做、怎样做。为了解决这些问题,我会反复对书中的内容进行迭代,对某些模糊的知识点深耕再深耕,对某些案例场景进行反复的测试,不断地完善。在本书编写之时,我常常回想当初作为小白之时迫切地希望能够了解哪些内容,这些内容又希望以怎样的形式展现。所以本书前面几章的内容基本上是站在一个小白的视角来为读者做一个细腻的讲解,相信读者在阅读完这些内容之后能够具备合理使用 RabbitMQ 的能力。在后面的章节中知识点会慢慢地深入,每阅读一章的内容都会对RabbitMQ 有一个更加深刻的认知。本书中的所有内容都具备理论基础并全部实践过,书中的内容也是我在工作中的实践积累,希望本书能够让初学者对 RabbitMQ 有一个全面的认知,也希望有相关经验的人士可以从本书中得到RabbitMQ 实战指南 IV 一些启发,汲取一些经验。内容大纲 本书共11 章,前后章节都有相关的联系,基本上按照由浅入深、由表及里的层次逐层进行讲解。如果读者对其中的某些内容已经掌握,可以选择跳过而翻阅后面的内容,不过还是建议读者按照先后顺序进行阅读。第 1 章主要针对消息中间件做一个摘要性介绍,包括什么是消息中间件、消息中间件的作用及特点等。之后引入RabbitMQ,对其历史和相关特点做一个简要概述。本章最后介绍RabbitMQ 的安装及生产、消费的使用示例。第2 章主要讲述RabbitMQ 的入门知识,包括生产者、消费者、队列、交换器、路由键、绑定、连接及信道等基本术语。本章还阐述了RabbitMQ 与AMQP 协议的对应关系。第 3 章主要介绍 RabbitMQ 客户端开发的简单使用,按照一个生命周期对连接、创建、生产、消费及关闭等几个方面进行宏观的介绍。第 4 章介绍数据可靠性的一些细节,并展示 RabbitMQ 的几种已具备或衍生的高级特性,包括TTL、死信队列、延迟队列、优先级队列、RPC 等,这些功能在实际使用中可以让某些应用的实现变得事半功倍。第 5 章主要围绕 RabbitMQ 管理这个主题展开,包括多租户、权限、用户、应用和集群管理、服务端状态等方面,并且从侧面讲述rabbitmqctl 工具和rabbitmq_management 插件的使用。第6 章主要讲述RabbitMQ 的配置,以此可以通过环境变量、配置文件、运行时参数(和策略)等三种方式来定制化相应的服务。第 7 章主要围绕运维层面展开论述,主要包括集群搭建、日志查看、故障恢复、集群迁移、集群监控这几个方面。第 8 章主要讲述 Federation 和 Shovel 这两个插件的使用、细节及相关原理。区别于第 7 章中集群的部署方式,Federation 和Shovel 可以部署在广域网中,为RabbitMQ 提供更广泛的应用空间。第9 章介绍RabbitMQ 相关的一些原理,主要内容包括RabbitMQ 存储机制、磁盘和内存告警、流控机制、镜像队列。了解这些实现的细节及原理十分必要,它们可以让读者在遇到问题时能够透过现象看本质。前 言 V 第10 章主要围绕网络分区进行展开,具体阐述网络分区的意义,如何查看和处理网络分区,以及网络分区所带来的影响。第11 章主要探讨RabbitMQ 的两个扩展内容:消息追踪及负载均衡。消息追踪可以有效地定位消息丢失的问题。负载均衡本身属于运维层面,但是负载均衡一般需要借助第三方的工具HAProxy、LVS 等实现,故本书将其视为扩展内容。读者讨论 由于作者水平有限,书中难免有错误之处。在本书出版后的任何时间,若你对本书有任何的疑问,都 可 以 通 过 发 送 邮 件 给 作 者,也 可 以 到 作 者 的 个 人 博 客http:/ 首先要感谢我身处的平台,让我有机会深入地接触RabbitMQ。同时也要感谢我身边的同事,正因为有了你们的鼓励和帮助,才让我能够迅速成长,本书的问世,离不开与你们在工作中积累的点点滴滴。感谢在我博客中提问、留言的网友,有了你们的意见和建议才能让本书更加完善。感谢博文视点的编辑们,本书能够顺利、迅速地出版,多亏了你们的敬业精神和一丝不苟的工作态度。最后还要感谢我的家人,在我占用绝大部分的业余时间进行写作的时候,能够给予我极大的宽容、理解和支持,让我能够全身心地投入到写作之中。朱忠华 RabbitMQ 实战指南 VI 读者服务 轻松注册成为博文视点社区用户(),扫码直达本书页面。提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。页面入口:http:/ 目 录 第 1 章 RabbitMQ 简介 1 1.1 什么是消息中间件 2 1.2 消息中间件的作用 3 1.3 RabbitMQ 的起源 4 1.4 RabbitMQ 的安装及简单使用 6 1.4.1 安装 Erlang 7 1.4.2 RabbitMQ 的安装 8 1.4.3 RabbitMQ 的运行 8 1.4.4 生产和消费消息 10 1.5 小结 14 第 2 章 RabbitMQ 入门 15 2.1 相关概念介绍 16 2.1.1 生产者和消费者 16 2.1.2 队列 18 2.1.3 交换器、路由键、绑定 19 2.1.4 交换器类型 21 2.1.5 RabbitMQ 运转流程 23 RabbitMQ 实战指南 VIII 2.2 AMQP 协议介绍 26 2.2.1 AMQP 生产者流转过程 27 2.2.2 AMQP 消费者流转过程 29 2.2.3 AMQP 命令概览 30 2.3 小结 32 第 3 章 客户端开发向导 33 3.1 连接 RabbitMQ 34 3.2 使用交换器和队列 36 3.2.1 exchangeDeclare 方法详解 37 3.2.2 queueDeclare 方法详解 39 3.2.3 queueBind 方法详解 41 3.2.4 exchangeBind 方法详解 42 3.2.5 何时创建 43 3.3 发送消息 44 3.4 消费消息 46 3.4.1 推模式 46 3.4.2 拉模式 49 3.5 消费端的确认与拒绝 50 3.6 关闭连接 52 3.7 小结 54 第 4 章 RabbitMQ 进阶 55 4.1 消息何去何从 56 4.1.1 mandatory 参数 56 4.1.2 immediate 参数 57 4.1.3 备份交换器 58 4.2 过期时间(TTL)60 目 录 IX 4.2.1 设置消息的 TTL 60 4.2.2 设置队列的 TTL 62 4.3 死信队列 63 4.4 延迟队列 65 4.5 优先级队列 67 4.6 RPC 实现 68 4.7 持久化 72 4.8 生产者确认 74 4.8.1 事务机制 74 4.8.2 发送方确认机制 77 4.9 消费端要点介绍 84 4.9.1 消息分发 85 4.9.2 消息顺序性 87 4.9.3 弃用 QueueingConsumer 88 4.10 消息传输保障 90 4.11 小结 91 第 5 章 RabbitMQ 管理 92 5.1 多租户与权限 93 5.2 用户管理 97 5.3 Web 端管理 99 5.4 应用与集群管理 105 5.4.1 应用管理 105 5.4.2 集群管理 108 5.5 服务端状态 111 5.6 HTTP API 接口管理 121 RabbitMQ 实战指南 X 5.7 小结 130 第 6 章 RabbitMQ 配置 131 6.1 环境变量 132 6.2 配置文件 136 6.2.1 配置项 137 6.2.2 配置加密 140 6.2.3 优化网络配置 142 6.3 参数及策略 146 6.4 小结 151 第 7 章 RabbitMQ 运维 152 7.1 集群搭建 153 7.1.1 多机多节点配置 154 7.1.2 集群节点类型 158 7.1.3 剔除单个节点 160 7.1.4 集群节点的升级 162 7.1.5 单机多节点配置 163 7.2 查看服务日志 164 7.3 单节点故障恢复 172 7.4 集群迁移 173 7.4.1 元数据重建 174 7.4.2 数据迁移和客户端连接的切换 183 7.4.3 自动化迁移 185 7.5 集群监控 189 7.5.1 通过 HTTP API 接口提供监控数据

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开