基本信息
【插图】

编辑推荐
本书既可供初学者学习,帮助读者了解RabbitMQ的具体细节及使用方式、原理等,也可供相关开发、测试及运维人员参考,给日常工作带来启发。
内容简介
计算机书籍
《RabbitMQ实战指南》从消息中间件的概念和RabbitMQ的历史切入,主要阐述RabbitMQ的安装、使用、配置、管理、运维、原理、扩展等方面的细节。《RabbitMQ实战指南》大致可以分为基础篇、进阶篇和高阶篇三个部分。基础篇首先介绍RabbitMQ的基本安装及使用方式,方便零基础的读者以最舒适的方式融入到RabbitMQ之中。其次介绍RabbitMQ的基本概念,包括生产者、消费者、交换器、队列、绑定等。之后通过Java语言讲述了客户端如何与RabbitMQ建立(关闭)连接、声明(删除)交换器、队列、绑定关系,以及如何发送和消费消息等。进阶篇讲述RabbitMQ的 TTL、死信、延迟队列、优先级队列、RPC、消息持久化、生产端和消费端的消息确认机制等内容,以期读者能够掌握RabbitMQ的使用精髓。《RabbitMQ实战指南》中间篇幅主要从RabbitMQ 的管理、配置、运维这三个角度来为读者提供帮助文档及解决问题的思路。高阶篇主要阐述RabbitMQ的存储机制、流控及镜像队列的原理,深入地讲述RabbitMQ的一些实现细节,便于读者加深对RabbitMQ的理解。《RabbitMQ实战指南》还涉及网络分区的概念,此内容可称为魔鬼篇,需要掌握前面的所有内容才可理解其中的门道。《RabbitMQ实战指南》最后讲述的是RabbitMQ的一些扩展内容及附录,供读者参考之用。
作译者
目录
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
2.2 AMQP协议介绍 26
2.2.1 AMQP生产者流转过程 27
2.2.2 AMQP消费者流转过程 29
前言
平时我也有写博客的习惯,通常在工作中遇到问题时会结合所学的知识整理成文。随着一篇篇的积累,也有好几十篇的内容,渐渐地也就有了编撰成书的想法。
本书动笔之时我曾信心满满,以为能够顺其自然地完成这本书,但是写到四分之一时,发现并没有想象中的那么简单。怎样才能让理解领悟汇聚成通俗易懂的文字表达?怎样才能让书中内容前后贯通、由浅入深地阐述?有些时候可能知道怎样做、为什么这么做,而没有反思其他情形能不能做、怎样做。为了解决这些问题,我会反复对书中的内容进行迭代,对某些模糊的知识点深耕再深耕,对某些案例场景进行反复的测试,不断地完善。
在本书编写之时,我常常回想当初作为小白之时迫切地希望能够了解哪些内容,这些内容又希望以怎样的形式展现。所以本书前面几章的内容基本上是站在一个小白的视角来为读者做一个细腻的讲解,相信读者在阅读完这些内容之后能够具备合理使用RabbitMQ的能力。在后面的章节中知识点会慢慢地深入,每阅读一章的内容都会对RabbitMQ有一个更加深刻的认知。
本书中的所有内容都具备理论基础并全部实践过,书中的内容也是我在工作中的实践积累,希望本书能够让初学者对RabbitMQ有一个全面的认知,也希望有相关经验的人士可以从本书中得到一些启发,汲取一些经验。
内容大纲
本书共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存储机制、磁盘和内存告警、流控机制、镜像队列。了解这些实现的细节及原理十分必要,它们可以让读者在遇到问题时能够透过现象看本质。
第10章主要围绕网络分区进行展开,具体阐述网络分区的意义,如何查看和处理网络分区,以及网络分区所带来的影响。
第11章主要探讨RabbitMQ的两个扩展内容:消息追踪及负载均衡。消息追踪可以有效地定位消息丢失的问题。负载均衡本身属于运维层面,但是负载均衡一般需要借助第三方的工具--HAProxy、LVS等实现,故本书将其视为扩展内容。
读者讨论
由于作者水平有限,书中难免有错误之处。在本书出版后的任何时间,若你对本书有任何的疑问,都可以通过 zhuzhonghua.ideal@qq.com 发送邮件给作者,也可以到作者的个人博客http://blog.csdn.net/u013256816留言,向作者阐述你的建议和想法。如若收到相关信息,作者都会回复。