RabbitMQ从入门到精通


[架构设计] RabbitMQ消息队列(九):Publisher的消息确认机制 专家

有没有一种机制能保证Publisher能够感知它的Message有没有被处理的?答案肯定的。 唯一能够保证消息不会丢失的方式是利用事务机制 -- 令 channel 处于 transactional 模式、向其 publish 消息、执行 commit 动作。在这种方式下,事务机制会带来大量的多余开销,并会导致吞吐量下降 250% 。为了补救事务带来的问题,引入了 confirmation 机制(即 Publisher Confirm)。 为了使能 confirm 机制,client 首先要发送...

RabbitMQ 消息队列 ack 消息确认

anzhsoft 2014-03-20 13:28 阅读(16068) 评论(2)

[架构设计] RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer) 专家

什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 它可以作为RabbitMQ的Message的数据格式进行传输,由于是结构化的数据,这样就极大的方便了Consumer的数据高效处理。当然了你可能说使用XML不也可以吗?与XML相比,ProtoBuf...

RabbitMQ 消息队列 Google Protocol Buff ProtoBuf

anzhsoft 2014-02-24 15:29 阅读(8377) 评论(0)

[架构设计] RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC) 专家

在云计算环境中,很多时候需要用它其他机器的计算资源,我们有可能会在接收到Message进行处理时,会把一部分计算任务分配到其他节点来完成。那么,RabbitMQ如何使用RPC呢?在本篇文章中,我们将会通过其它节点求来斐波纳契完成示例。...

RabbitMQ 消息队列 Message Queue RPC 远程调用

anzhsoft 2014-02-23 21:37 阅读(12707) 评论(7)

[架构设计] RabbitMQ消息队列(六):使用主题进行消息分发 专家

在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统。Consumer可以监听不同severity的log。但是,这也是它之所以叫做简单日志系统的原因,因为是仅仅能够通过severity设定。不支持更多的标准。 比如syslog unix的日志工具,它可以通过severity (info/warn/crit...) 和模块(auth/cron/kern...)。这可能更是我们想要的:我们可以仅仅需要cron模块的log。 为...

RabbitMQ 消息队列 Message Queue 正则表达式 topic exchange

anzhsoft 2014-02-23 16:29 阅读(11548) 评论(0)

[架构设计] RabbitMQ消息队列(五):Routing 消息路由 专家

上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。 1. Bindings绑定     上篇文章中我们是这么做的绑定: channel.queue_bind(exchange=exchange_name, queue=queue_na...

RabbitMQ 消息队列 Message Queue binding

anzhsoft 2014-02-21 20:04 阅读(13112) 评论(0)

[架构设计] RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe) 专家

上篇文章中,我们把每个Message都是deliver到某个Consumer。在这篇文章中,我们将会将同一个Message deliver到多个Consumer中。这个模式也被成为 "publish / subscribe"。 这篇文章中,我们将创建一个日志系统,它包含两个部分:第一个部分是发出log(Producer),第二个部分接收到并打印(Consumer)。 我们将构建两个Consumer,第一个将log写到物理磁盘上;第二个将log输出的屏幕。...

RabbitMQ 消息队列 Message Queue exchange

anzhsoft 2014-02-21 19:38 阅读(15072) 评论(0)

[架构设计] RabbitMQ消息队列(三):任务分发机制 专家

在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。 当有Consumer需要大量的运算时,RabbitMQ Server需要一定的分发机制来balance每个Consumer的load。试想一下,对于web application来说,在一个很多的HTTP request里是没有时间来处理复杂的运算的,只能通过后台的一些工作线程来完...

RabbitMQ Message Queue 消息队列 持久化 数据丢失

anzhsoft 2014-02-21 17:59 阅读(20750) 评论(13)

[架构设计] RabbitMQ消息队列(二):”Hello, World“ 专家

本文将使用Python(pika 0.9.8)实现从Producer到Consumer传递数据”Hello, World“。 首先复习一下上篇所学:RabbitMQ实现了AMQP定义的消息队列。它实现的功能”非常简单“:从Producer接收数据然后传递到Consumer。它能保证多并发,数据安全传递,可扩展。 和任何的Hello world一样,它们都不复杂。我们将会设计两个程序,一个发送Hello world,另一个接收这个数据并且打印到屏幕。 整体的设计如下图:...

RabbitMQ MQ 消息队列 pika

anzhsoft 2014-02-20 21:15 阅读(21483) 评论(4)

[架构设计] RabbitMQ消息队列(一): Detailed Introduction 详细介绍 专家

对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统或者(subsystem or Component or submodule)。那么这些模块的如何通信?这和传统的IPC有很大的区别。传统的IPC很多都是在单一系统上的,模块耦合性很大,不适合扩展(Scalability);如果使用socket那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如: 1)信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据如何方式丢失? 2)如何降低发送者和接收者的耦...

消息队列 Message Queue RabbitMQ 模块间通信 系统内部通信

anzhsoft 2014-02-20 20:13 阅读(32661) 评论(6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值