rabbitmq
Somnus_小凯
永远相信美好的事情,即将发生
展开
-
RabbitMQ 实战教程(一)
MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。RabbitMQ是信息传输的中间者。本质上,他从生产者接收消息,转发这些消息给消费者。换句话说,RabbitMQ能够按根据你指定的规则进行消息转发、缓冲、和持久化。在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从...原创 2016-10-11 15:55:11 · 21964 阅读 · 2 评论 -
RabbitMQ 实战教程(二) 工作队列
工作队列的主要任务:避免立刻执行资源密集型任务,然后必须等待其完成。相反地,我们进行任务调度,我们把任务封装为消息发送给队列。工作进行在后台运行并不断的从队列中取出任务然后执行。当你运行了多个工作进程时,任务队列中的任务将会被工作进程共享执行。这样的概念在web应用中极其有用,当在很短的HTTP请求间需要执行复杂的任务。准备工作我们使用Thread.sleep来模拟耗时的任务。现...原创 2016-10-11 15:56:48 · 1716 阅读 · 0 评论 -
RabbitMQ 实战教程(三) 发布/订阅
在上一个教程中,我们实现了工作队列,一个任务只会发给一个Worker。在这一篇教程,我们将做一些完全不同的改变,我们将提供一个信息给多个消费者。这种模式被称为“发布/订阅”。为了说明这种模式,我们将建立一个简单的日志系统。这个系统将由两个程序组成,第一个将发出日志消息,第二个将接收并处理日志消息。在我们的日志系统中,每一个运行的接收程序的副本都会收到日志消息。交换器(Exchanges...原创 2016-10-11 15:59:07 · 1144 阅读 · 0 评论 -
RabbitMQ 实战教程(四) 路由
在本教程中,我们将添加一个功能,让日志接收者能够订阅部分消息。例如,我们将能够直接将错误写入日志文件(以节省磁盘空间),仍然能够在控制台上打印所有的日志消息。绑定(Bindings)在上一个教程中,我们已经使用过绑定。类似下面的代码channel.queueBind(queueName, EXCHANGE_NAME, "");绑定表示转发器与队列之间的关系。我们也可以简单的...原创 2016-10-11 16:06:03 · 1082 阅读 · 0 评论 -
RabbitMQ 实战教程(五) 主题
虽然使用direct类型的转发器,改善了我们的日志系统。但是仍然存在一些局限性:它不能够基于多重条件进行路由选择。我们有可能希望不仅根据日志的级别,而且想根据日志的来源进行订阅。为了在我们的系统中实现上述的需求,我们需要了解一个更复杂的转发器:topic类型的转发器。主题转发(Topic exchange)使用topic类型的转发器,不能随意的设置选择键(routing_key),必须...原创 2016-10-11 16:07:48 · 1036 阅读 · 0 评论 -
Linux CentOs下安装RabbitMQ教程
1. 安装erlang 安装依赖环境yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel下载最新 Erlang 19.0wget http://erlang.org/download/otp_src_19.0.tar.gz解原创 2017-01-04 14:16:29 · 854 阅读 · 0 评论