二.Work Queues(using the Java Client) 走起   在第上一个教程中我们写程序从一个命名队列发送和接收消息.在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工作者(worker)之间. 背后的主要思想工作队列(又名:任务队列)是为了避免立即做一个资源密集型任务,不得不等待它完成.相反,我们安排的任务要做.我们封装任务作为消息并将其发送到一个队列.工作进程在后台运行将流行的任务和最终执行的工作.当您运行许多worker的任务将在他们之间共享.这个概念是特别…
柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重新回到经典“Hello world!”(The simplest thing that does something )时代,RabbitMQ 支持N多种客户端(client),这里无法一一讲解,暂定java client,有时间的情况下,在弥补一下. 事先,先普及一下图标(我们会在下面的事例中,会…
柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装.配置与监控 一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMware® Workstation 10.0.1 build Linux系统:CentOS6.5 rabbitMQ官网下载:http://www.rabbitmq.com/download.html Erlang的官网下载: http://www.erlang.org/download.html 2)…
一.MQ(Message Queue) 即 消息队列,一般用于应用系统解耦.消息异步分发,能够提高系统吞吐量.MQ的产品有很多,有开源的,也有闭源,比如ZeroMQ.RabbitMQ. ActiveMQ.Kafka/Jafka.Kestrel.Beanstalkd.HornetQ.Apache Qpid.Sparrow.Starling.Amazon SQS.MSMQ等,甚至Redis也可以用来构造消息队列.至于如何取舍,取决于你的需求. 由于工作需要和兴趣爱好,曾经写过关于RabbitMQ的系…
一.基础概念详细介绍 1.引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题. 消息服务擅长于解决多系统.异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC).本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一. 2.RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.Rabb…
二.Remote procedure call (RPC)(using the Java client) 三.Client interface(客户端接口) 为了展示一个RPC服务是如何使用的,我们将创建一段很简单的客户端class. 它将会向外提供名字为call的函数,这个call会发送RPC请求并且阻塞,直到收到RPC运算的结果.代码如下: fibonacci_rpc = FibonacciRpcClient() result = fibonacci_rpc.call(4) print "f…
二.Publish/Subscribe(发布/订阅)(using the Java Client) 为了说明这个模式,我们将构建一个简单的日志系统.它将包括两个项目: 第一个将发出日志消息 第二个将接收并打印它们. 注:从本质上讲,发表日志消息广播给所有的接收者. 下面让我们脑中带几个问题,让我们一步一步去解决: 如果我把消息分配给所有的消费者,我们将怎么做呢? 三.Exchanges(交换机) 让我们快速复习我们前面的教程:: 一个队列是存储消息的缓冲区. 消费者是一个用户应用程序接收消息.…
二.Topic(主题) (using the Java client) 上一篇文章中,我们进步改良了我们的日志系统.我们使用direct类型转发器,使得接收者有能力进行选择性的接收日志,,而非fanout那样,只能够无脑的转发. 为了在我们的系统中实现上述的需求,我们需要学习稍微复杂的主题类型的转发器(topic exchange). 三.Topic exchange(主题转换) 主题类型的转发器的消息不能随意的设置选择键(routing_key),必须是由点隔开的一系列的标识符组成. 标识符可…
二.Routing(路由) (using the Java client) 在前面的学习中,构建了一个简单的日志记录系统,能够广播所有的日志给多个接收者,在该部分学习中,将添加一个新的特点,就是可以只订阅一个特定的消息源,也就是说能够直接把关键的错误日志消息发送到日志文件保存起来,不重要的日志信息文件不保存在磁盘中,但是仍然能够在控制台输出,那么这便是我们这部分要学习的消息的路由分发机制. 三.Bindings(绑定) 在前面的学习中已经创建了绑定(bindings),代码如下: channel…
根据研究,今年的EDM邮件营销的邮件发送量比去年增长了63%,许多方法可以为你收集用户数据,这些数据可以帮助企业改善自己在营销中的精准度,相关性和执行力. 最近的一项研究表明,中国800强企业当中超过一半的企业仍然使用过去的经验和直觉进行决策.只有11%的企业用数据来支持这些决定,而“数据”在这些企业中仍是不重要的资源. 目前大部分发送的邮件可以用两个词来诠释,一个是“批量”,另一个是“爆炸”,而在用户那里,他们只感觉到了“炸”——没错,他们在被这一大堆不相关的邮件狂轰滥炸,变得焦头烂额,从而对…