RabbitMQ 基础教程(1) - Hello World

RabbitMQ 基础教程(1) - Hello World

注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。

如果你喜欢我的文章,可以关注我的私人博客:http://blog-qeesung.rhcloud.com/

RabbitMQ是一个message broker,消息的生产者(producer)负责生产消息,然后将消息传入传入queue(消息队列),消费者(consumer)从消息队列中取出消息进行处理。

简单来说,消息队列就像邮局一样,我们将信封(消息)投递到邮局的信筒,然后信差根据信封上面的地址将信封投递到对应的地址(消费者)。

如下所示:

                              queue

+---------------+ +--+--+--+--+--+--+--+ +---------------+
| producer |-----> |m1|m2| ... | | | |------>| consumer |
+---------------+ +--+--+--+--+--+--+--+ +---------------+

安装RabbitMQ

RabbitMQ是基于Erlang来开发的,首先安装Erlang的运行环境

安装Erlang

Erlang官网下载并安装

安装RabbitMQ

RabbitMQ官网下载并安装

配置RabbitMQ

博主其实也是RabbitMQ小白,命令行工具不太熟悉,庆幸的是RabbitMQ为我们提供web配置页面,但是要进行一些简单的配置。

  1. 打开RabbitMQ Command Prompt 或 直接通过cmd进入到RabbitMQ Server的安装目录下的rabbitmq_server-*/sbin路径

  2. 执行下面的命令:

rabbitmq-plugins.bat enable rabbitmq_management
rabbitmq-service.bat stop
rabbitmq-service.bat install
rabbitmq-service.bat start

  1. 最后在http://localhost:15672/就可以访问RabbitMQ为我们搭建起来的Web服务器,初始化用户名和密码是guest和guest

Hello World 例子

RabbitMQ支持多种语言,包括Python,PHP,nodejs等等,我们这里的例子就采用Nodejs。

安装RabbitMQ库

npm install amqplib

这里我们首先将消息推入队列,然后消费者从队列中去除消息进行消费。

生产消息

var amqp = require('amqplib/callback_api');

// 连接上RabbitMQ服务器
amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello';

// 声明队列,然后将队列中的消息持久化取消ch.assertQueue(q, {durable: false}); // 将字符串存入Buffer中,并推入队列ch.sendToQueue(q, new Buffer('Hello World!'));console.log(" [x] Sent 'Hello World!'");

});
});
/
$ node rabbit-producer.js
[x] Sent 'Hello World!'
*/
现在消息已经发送到RabbitMQ的队列中

消费消息

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello';

// 声明已经存在的队列ch.assertQueue(q, {durable: false});console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", q);// 监听队列上面的消息ch.consume(q, function(msg) {  console.log(" [x] Received %s", msg.content.toString());}, {noAck: true});

});
});
/
$ node rabbit-consumer.js
[] Waiting for messages in hello. To exit press CTRL+C
[x] Received Hello World!
/

在本文中知识介绍了RabbitMQ的一些基础知识,RabbitMQ还有一些复杂东西,我们将会在后面的文章中一一介绍。

关键字:JavaScript, node.js, rabbitmq

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部