新書推薦:
《
亚洲戏剧史·南亚卷
》
售價:HK$
143.4
《
中国历代竹器图谱与数字活化
》
售價:HK$
557.8
《
EDA技术与设计(第2版)
》
售價:HK$
85.0
《
揉碎浪漫(全两册)
》
售價:HK$
70.3
《
古籍善本
》
售價:HK$
537.6
《
人民币国际化报告2024:可持续全球供应链体系与国际货币金融变革
》
售價:HK$
87.4
《
道德经新注 81幅作者亲绘哲理中国画,图文解读道德经
》
售價:HK$
143.4
《
清俗纪闻
》
售價:HK$
98.6
|
編輯推薦: |
绝大多数应用程序的核心都有一个虚拟交换机,用于在服务器、程序和服务之间快速传递消息。RabbitMQ是一个高效且易于部署的消息队列服务器,它可以轻而易举地处理各种情形下的消息通信,不论是网络初创公司还是大型企业系统。
本书能够教会你如何使用RabbitMQ消息通信服务器,构建和管理用不同语言编写的可伸缩应用。这很容易上手。你将学习消息队列的工作原理以及RabbitMQ是如何适用的。然后,你将通过许多案例来探索实践当中的可扩展性和互操作性问题。*后,你将学习如何将Rabbit打造成一部运作良好的机器,以应对24×7×365的无间断工作环境。
本书包以下内容
□ 学习基本消息通信设计模式
□ 使用模式来满足按需扩展
□ 整合PHP编写的前端和用任何语言编写的后端
□ 在30分钟内实现发布订阅的告警服务
□ 配置RabbitMQ内建集群
□ 监控、管理、扩展并调试RabbitMQ
本书是为那些熟悉Python、PHP、Java、.NET或者任何其他现代编程语言的开发者编写的。无须任何RabbitMQ经验。
|
內容簡介: |
本书对RabbitMQ做了全面、翔实的讲解,体现了两位专家的真知灼见。本书首先介绍了有关MQ的历史,然后从基本的消息通信原理讲起,带领读者一路探索RabbitMQ的消息通信世界。这当中不仅包含了针对单台RabbitMQ服务器和RabbitMQ集群的讲解,还教导读者如何使用各种工具来进行监控。
本书内容浅显易懂,文笔风趣幽默。书中包含了丰富的、可以运行的示例程序源代码,读者可以自行下载并运行,这种亲身实践有助于加深对相关主题的理解。对于初学者来说,这样的编排非常适用。对于那些有一定RabbitMQ使用经验的读者来说,本书不仅可以巩固消息通信基本原理,同时也可加深对RabbitMQ高级特性的理解,譬如如何编写RabbitMQ插件。相信处于RabbitMQ探索之旅不同阶段的读者都能从本书获益。
本书适合有一定工作经验的开发者或者架构师阅读,也可以作为RabbitMQ运维工作的参考手册。
|
關於作者: |
Alvaro Videla是一名专门从事基于MQ应用程序的开发者和架构师。
Jason J.W. Williams是消息通信服务供应商DigiTar公司的CTO,他领导着设计与开发工作。
|
內容試閱:
|
译者序
笔者从事互联网行业已五年有余,经历过大大小小十几个项目,其中包括金融领域方面的交易系统、医疗护理信息系统,再到后来的**第三方软件供应商。这些项目不仅为我带来了丰富的阅历,更让我认识到软件开发的根本就在于降低软件复杂性。因此,我们需要采用可复用的软件设计模式,选取合适的软件构件来搭建自己的系统。这当中就用到了消息队列。
各位读者可能对消息队列并不陌生。消息队列提供一个异步通信协议,消息的发送者不用一直等待,直到消息被成功处理;而是立即返回。消息被暂存于队列当中,
对消息感兴趣的消费者会订阅消息并处理它们。那么,在什么样的场景下需要使用消息队列呢?其中之一就是系统集成。这些系统可能是公司的遗留系统,抑或是第三方维护的系统。集成的方法有很多,其中之一是让这些系统往数据库的某几张表写入数据,然后让新的系统定时地去轮询并取出数据进行处理。这已经具备了消息队列通信的雏形:其中的数据库表就是消息队列,它定义了消息的标准结构,并暂存待处理的消息。对于小型系统和简单的需求来讲,这样的解决方案没什么问题,并且足够应付了。但是随着日后业务需求的扩张,接入的系统越来越多,对于消息通信的需求也变得越来越复杂:
1. 你需要将同一条消息发送给多个感兴趣的系统,同时又需要让系统只接受符合特定模式的消息。
2. 你开始觉得系统当中的同步处理方式严重影响了吞吐量,你想把用户订单处理、消息通知等都修改成异步处理的方式。
3. 你开始关注系统的高可用性。同时你还想实时观测系统当中订单消息的处理速率,以便及时应对峰值压力。
通过使用标准的消息队列系统就可以轻松处理以上问题。当然它们提供的功能远不止这些。市面上有很多开放源码的消息队列系统,包括JBoss Messaging、JORAM、Apache ActiveMQ、Sun Open Message Queue、Apache Qpid、RabbitMQ,等等。其中就有本书讨论的RabbitMQ。它实现了AMQP 协议,并且遵循Mozilla Public License 开源协议。它支持多种编程语言,可以方便地和Spring 集成。*重要的一点是,使用消息队列并不是“杀鸡焉用牛刀”的问题,而是一种未雨绸缪,随着系统不断演进,你终将从消息队列中获益。
翻译一本书绝非易事。在此,我要感谢给予我帮助的赵震一和陈祥奎夫妇,你们是我的挚友与伯乐。感谢电子工业出版社的编辑张春雨和李云静,是你们的细心指导保证了本书的翻译质量。*后感谢我的女友,你是我的精神支柱,在你的陪伴和支持下,我得以全心全意地完成工作。
由于时间仓促,文中难免有不足之处,希望读者海涵,也希望各位能和我一样从中收获知识和快乐,谢谢大家。
汪佳南
2015 年9 月于杭州
序
欢迎阅读本书。如果你像我一样,你很有可能在想:“我是否应该从头开始阅读呢?”唉,市面上的技术书籍琳琅满目,但并不是所有的图书都值得花费时间关注。所以请让我邀你继续往下阅读,看看下面这份说明是否合你的胃口:
你想要通过一种实用的方法来学习推技术、流数据,以及其他消息通信模式。
你想要获得专家级别的RabbitMQ 技能,包括在设计方面和生产环境运行方面的**实践。
换句话说,本书不仅仅是一本RabbitMQ 指南。它会为你讲解能覆盖多种使用场景的基本设计模式。它展现了为何越来越多的应用开始使用这些模式,以及哪些“可以做”、哪些“不能做”。
这些模式是怎样的呢?如果你曾经有想法将系统绘成一幅信息流或者网络图,而非栈的形式,那么你可能正在使用,或者正准备使用消息通信。你可能一直在考虑数据投递、非阻塞操作或者推送通知。或者,你想使用发布 订阅模式、异步处理或是工作队列。所有这些模式构成了众所周知的消息通信(messaging)。
消息通信是一种至关重要的能力:它使得软件应用可以相互连接并得以扩展。应用程序们既可以像一个巨大应用中的组件一样相互连接起来,也可以连接用户的设备和数据。消息通信从本质上来说是异步的,因为它通过分隔了数据的发送和接收来解耦应用。*奇妙的地方在于该连接模式可以在任何规模下以相同的方式工作。
规模是关键点。互联网无处不在,它作为应用程序投递的基础,使得规模在应用程序设计中成为关键因素。我们已经无法停留在小规模的思考方式上。*近,术语“大数据”(big data)已经变得非常流行。不过相较于*近几年来说,所有事物都往大的方向发展了。
举例来说,移动连接设备的数量很快就将超过地球上人口的数量。当我编写本书时,Facebook 正准备IPO。CTO Bret Taylor 说道:“如果Mark Zuckerberg 在宿舍编写Facebook 的时候这些技术就已经成熟的话,那么现在的Facebook 就已经是一个移动应用了。”
花点时间想想。大多数应用曾经都是这样运作的:加载文档或者从数据库获取数据,做一些处理,并将结果写入磁盘。将来的应用程序会更像Facebook :总是在线,并且托管在云端,在任何地方都能访问。输入和处理是连续且自动的,并即时输出用户想要的过滤信息流。
如果不采用一系列专门的设计模式的话,那么这些级别的自动化、可访问性和伸缩性都无从谈起。在本书中你就能学到这些模式。作为现代消息通信技术发起者之一,Derek Collison 将消息通信描述为“移动的数据”,这一点令人印象深刻。很难想象有什么应用是不需要移动数据的。因此,消息通信无处不在。
这本书可以让你立即上手。消息通信模式将以可运行代码的形式展现在你面前。作者也会帮助你在自己的系统上运行起来。在Jason J. W. Williams 和Alvaro Videla的帮助下,你就能零距离接触那些拥有多年运行大规模RabbitMQ 系统经验的专家了。本书是他们将经验分享给社区这一杰出工作的成果。
在对RabbitMQ 有了一点感觉之后,不管你使用何种语言编写程序,都能很容易地在广大RabbitMQ 用户社区里寻求到帮助并找到更多示例。这使得RabbitMQ成为能满足你消息通信需求的**选择。
希望你已经被我吊起了胃口,准备翻开下一页继续阅读。书中会有关于消息和RabbitMQ 的一切,作者将会为你揭开它们的神秘“面纱”。
Alexis Richardson
Rabbit Technologies 公司创始人和前任CEO
VMware 云应用平台高级总监
|
|