blog icon indicating copy to clipboard operation
blog copied to clipboard

RabbitMQ 入门笔记

Open chunpu opened this issue 6 years ago • 0 comments

一键安装 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!'))
}()

参考文档

  • https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html

chunpu avatar Dec 04 '18 15:12 chunpu