深入RabbitMQ - (EPUB全文下载)
文件大小:1.58 mb。
文件格式:epub 格式。
书籍内容:
深入RabbitMQ
第一篇 RabbitMQ和应用程序体系结构
第1章 RabbitMQ基础
第2章 使用AMQ协议与Rabbit进行交互
第3章 消息属性详解
第4章 消息发布的性能权衡
第5章 消费消息,避免拉取
第6章 消息路由模式
第二篇 管理数据中心或云中的RabbitMQ
第7章 RabbitMQ集群
第8章 跨集群的消息分发
第三篇 集成与定制
第9章 使用替代协议
第10章 数据库集成
附录 准备就绪
第一篇 RabbitMQ和应用程序体系结构
在本书第一篇的内容中,我们将探讨AMQ协议的结构。它描述了应用程序是如何与RabbitMQ进行通信的。我们还会深入消息本身,利用消息头、优先级等功能来增强消息交互。我们将探索性能权衡,在稳定性、事务安全性与不确保这些因素的高性能吞吐量者之间达成平衡。另外,我们将研究不同的交换器类型以及它们各自的运作方式。
第1章 RabbitMQ基础
本章概要:
· RabbitMQ特性
· 为什么RabbitMQ正在成为消息通信架构的一种主流选择?
· 高级消息队列(Advanced Messaging Queuing)模型的基本要素,该模型构成了RabbitMQ的基础
无论你的应用是位于云端还是位于自身的数据中心,RabbitMQ是一种轻量级的、功能非常强大的工具,可用来构建十分简单抑或异常复杂的分布式软件架构。作为一款消息中间件,在本章中你将学习RabbitMQ在处理和解决问题时如何为你提供强大的灵活性。你将了解一些公司对RabbitMQ的使用方式,同时掌握RabbitMQ的关键特性,正是这些关键特性促使RabbitMQ成为时下最流行的消息代理服务器(message broker)之一。
1.1 RabbitMQ特性以及好处
RabbitMQ拥有众多特性和好处,我们把最重要的列举如下:
■ 开源——RabbitMQ最初是由LShift、LTD和Cohesive FT三家合伙的RabbitMQ科技公司联合开发的,目前归属于Pivotal 软件公司,并且以Mozilla公共协议进行发布。作为一款由Erlang语言开发的开源软件项目,RabbitMQ具有自由度以及灵活性,而作为一款产品其背后则有Pivotal的大力支撑。活跃在RabbitMQ社区的开发者和工程师们能够贡献强化特性和附加功能,而Pivotal则提供商业支持以及作为产品持续发展的坚强后盾。
■ 平台和供应商无关性——作为实现了具有平台和供应商无关性的高级消息队列协议(Advanced Message Queuing Protocol,AMQP)规范的一种消息代理服务器,RabbitMQ为几乎全部开发语言提供了客户端工具并能运行在所有主流计算机平台上。
■ 轻量级——RabbitMQ是轻量级的,运行RabbitMQ核心功能以及诸如管理界面的插件只需要不到40MB内存。请注意往队列中添加消息可能会增加其内存使用量。
■ 面向大多数现代语言的客户端开发库——作为代理服务器,RabbitMQ提供了一种引人注目的编程模式,其客户端开发库的目标是支持绝大多数编程语言并能运行于多个平台。当你通过编程与RabbitMQ进行通信时,不受任何供应商或开发语言的限制。事实上,当由不同语言实现的应用程序之间需要交互时,把RabbitMQ当作核心组件的场景并不少见。RabbitMQ为不同的开发语言之间进行跨操作系统和环境的数据共享提供了一种有用的桥梁,这些语言包括Java、Ruby、Python、PHP、JavaScript和C#等。
■ 灵活控制消息通信的平衡性——在消息吞吐量和性能上,RabbitMQ提供了一种灵活性用于控制这两者在可靠消息通信上的平衡。因为它并不是一种“适合所有场景”的应用,消息在投递之前可以指定为是否持久化到硬盘;如果在一个集群中,队列可以被设置成高可用,即消息会存储在多台服务器中确保在某台服务器宕机时不会丢失。
■ 高延迟性环境插件——因为不是所有的网络拓扑和架构都是一样的,RabbitMQ既支持在低延迟环境下的消息通信机制,也提供了针对如互联网的高延迟环境下的插件。这就使得RabbitMQ可以在同一个本地网络或者在跨越多个数据中心的共享互联(federated)机制下构建消息集群。
■ 第三方插件——作为应用集成的一个关键要素,RabbitMQ提供了灵活的插件系统。例如,当需要RabbitMQ进行数据库直接写入时,就可以使用第三方插件把消息直接存储到数据库中。
■ 多层安全——在RabbitMQ的多个层次中包含着安全性设计。客户端连接可以通过使用SSL通信和客户端证书验证以提高安全性。在虚拟主机(virtual-host)层可以管理用户访问,从而在较高层次实现消息和资源的隔离。另外,通过配置可以使用正则表达式模式匹配的方式控制从队列中读取消息和把消息写入交换器的过程。最后,使用插件可与类似LDAP的外部认证系统进行集成。
本章后续内容会对上述所列功能进行详细阐述,但在这里我想先强调RabbitMQ中的两个最基本的特性:实现语言(Erlang)和所基于的模型(高级消息队列模型),该模型提供了定义RabbitMQ中大多数专业术语和行为的规范。
1.1.1 RabbitMQ与Erlang
作为一款高性能、稳定且支持集群化的消息代理服务器,RabbitMQ无疑是构建大规模消息架构的核心组件,并在一些重要应用环境中占有一席之地。RabbitMQ基于Erlang语言开发,该语言是20世纪80年代中后期由Ericsson计算机科学实验室设计的面向电信行业的函数式编程语言。Erlang被设计成一种分布式、高容错的软实时系统,用于构建99.999%可用性的应用系统。作为一种开发语言和运行时系统,Erlang专注于节点之间消息通信的轻量级进程,提供了状态无关的高并发性。
实时系统 实时系统(Real-Time System)可以是一种硬件平台、软件平台,或者两者兼有,用于满足针对某个事件必须返回响应的需求。软实时系统则 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 深入RabbitMQ - (EPUB全文下载)