RabbitMQ高可用性集群镜像实施方案 rabittmq教程

RabbitMQ高可用性集群镜像实施方案

在我们使用rabbitmq作为消息服务时,在服务负载不是很大的情况下,一般我们只需要一个rabbitmq节点便能为我们提供服务,可这难免会发生单点故障,要解决这个问题,我们便需要配置rabbitmq的集群和镜像,以下便是使用两台服务器进行rabbitmq集群和镜像的实施步骤。 1、环境准备 a、两台安装有rabbitmq实例的主机(假定主机ip分别为192.168.1.2、1...
阅读全文
RabbitMQ 三种Exchange 编程技术 rabittmq教程

RabbitMQ 三种Exchange

Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。  Java代码   Channel channel = connect...
阅读全文
RabbitMQ消息队列(九):Publisher的消息确认机制 rabittmq教程

RabbitMQ消息队列(九):Publisher的消息确认机制

       在前面的文章中提到了queue和consumer之间的消息确认机制:通过设置ack。那么Publisher能不到知道他post的Message有没有到达queue,甚至更近一步,是否被某个Consumer处理呢?毕竟对于一些非常重要的数据,可能Publisher需要确认某个消息已经被正确处理。       在我们的系统中,我们没有是实现这种确认,也就是说,不管Message是否...
阅读全文
RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer) rabittmq教程

RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)

     什么是ProtoBuf?      一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。      它可以作为RabbitMQ的Message的数据格式进行传输,由于是...
阅读全文
RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC) rabittmq教程

RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)

在云计算环境中,很多时候需要用它其他机器的计算资源,我们有可能会在接收到Message进行处理时,会把一部分计算任务分配到其他节点来完成。那么,RabbitMQ如何使用RPC呢?在本篇文章中,我们将会通过其它节点求来斐波纳契完成示例。 1. 客户端接口 Client interface 为了展示一个RPC服务是如何使用的,我们将创建一段很简单的客户端class。 它将会向外提供名字为call的...
阅读全文
RabbitMQ消息队列(六):使用主题进行消息分发 rabittmq教程

RabbitMQ消息队列(六):使用主题进行消息分发

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

RabbitMQ消息队列(五):Routing 消息路由

上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。 1. Bindings绑定 上篇文章中我们是这么做的绑定: channel.queue_bind(exchange=exchange_name, queue=queue_name) ...
阅读全文
RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe) rabittmq教程

RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)

上篇文章中,我们把每个Message都是deliver到某个Consumer。在这篇文章中,我们将会将同一个Message deliver到多个Consumer中。这个模式也被成为 "publish / subscribe"。     这篇文章中,我们将创建一个日志系统,它包含两个部分:第一个部分是发出log(Producer),第二个部分接收到并打印(Consumer)。 我们将构建两...
阅读全文
RabbitMQ消息队列(三):任务分发机制 rabittmq教程

RabbitMQ消息队列(三):任务分发机制

在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。 当有Consumer需要大量的运算时,RabbitMQ Server需要一定的分发机制来balance每个Consumer的load。试想一下,对于web applicat...
阅读全文
RabbitMQ消息队列(二):”Hello, World“ rabittmq教程

RabbitMQ消息队列(二):”Hello, World“

本文将使用Python(pika 0.9.8)实现从Producer到Consumer传递数据”Hello, World“。 首先复习一下上篇所学:RabbitMQ实现了AMQP定义的消息队列。它实现的功能”非常简单“:从Producer接收数据然后传递到Consumer。它能保证多并发,数据安全传递,可扩展。 和任何的Hello world一样,它们都不复杂。我们将会设计两个程序,一...
阅读全文
RabbitMQ消息队列(一): Detailed Introduction 详细介绍 rabittmq教程

RabbitMQ消息队列(一): Detailed Introduction 详细介绍

1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,...
阅读全文
Loading...