RabbitMQ 入门笔记

@chunpu 2018-12-04 15:59:20发表于 chunpu/blog

一键安装 RabbitMQ

docker run -d --name rabbit -p 5672:5672 rabbitmq

Nodejs 调用

RabbitMQ 有 Node.js 官方支持

npm install amqplib

服务端 amqp-server.js

const queue = 'tasks'

const amqplib = require('amqplib')

!async function init() {
  var connect = await amqplib.connect('amqp://localhost')
  var channel = await connect.createChannel()
  await channel.assertQueue(queue)
  // 此处必须是 callback 不是 Promise, 因为这里相当于事件 handler, 可以执行很多次
  return await channel.consume(queue, data => {
    console.log('get message:', data.content.toString())
  }, {noAck:true})
}()

客户端 amqp-client.js

const queue = 'tasks'

const amqplib = require('amqplib')

!async function init() {
  var connect = await amqplib.connect('amqp://localhost')
  var channel = await connect.createChannel()
  await channel.assertQueue(queue)
  return await channel.sendToQueue(queue, Buffer.from('hello!'))
}()

参考文档