Nodejs - RabbitMQ

这里我们来看看如何在Nodejs上使用rabbitmq消息通道,消息通道主要解决RPC服务调用的持久化问题,当然了,还有其它类似的需求,比如可以作为日志的收集,还可以用来作聊天消息中心等。

《Nodejs - RabbitMQ》

使用指南

环境

node --version
v8.11.0

安装Rabbitmqamqplib

npm install amqplib --save
# 或者
yarn add amqplib

使用demo

const topic = 'hello';
var amqp = require('amqplib/callback_api');
function publisher(conn) {
    conn.createChannel(on_open);
    function on_open(err, ch) {
        if (err != null) bail(err);
        ch.assertQueue(topic);
        ch.sendToQueue(topic, new Buffer('something to do'));
    }
}
function consumer(conn) {
    var ok = conn.createChannel(on_open);
    function on_open(err, ch) {
        if (err != null) bail(err);
        ch.assertQueue(topic);
        ch.consume(topic, function(msg) {
            if (msg !== null) {
                console.log('consumer',msg.content.toString());
                ch.ack(msg);
            }
        });
    }
}
amqp.connect('amqp://admin:admin@localhost', function(err, conn) {
    consumer(conn);
    publisher(conn);
});

信赖docker rabbitmq

docker-compose.yml

version: '2'  #"登录容器请执行:rabbitmq-plugins enable rabbitmq_management 才可使用WEB管理页面"
services:
  rabbitmq:
    image: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    hostname: rabbit
    environment:
      RABBITMQ_DEFAULT_VHOST: /
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin

运行结果

node index.js 
consumer something to do

《Nodejs - RabbitMQ》

    原文作者:前端开发
    原文地址: https://www.jianshu.com/p/ce283c9bcedf
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞